器件型号:TMS320C6713
我有一个在 DSK6713板上运行的原型应用、我要将其转换为使用 DSP/BIOS、我遇到了一个问题、即从 HWI 发布时无法使 SWI 运行。
tcf 配置如下:
bios.HWI.instance("HWI_INT8").fxn = prog.extern ("c_int08");
bios.HWI.instance("HWI_INT8").useDispatcher = 1;
bios.HWI.instance("HWI_INT8").interruptMask ="无";
BIOS.SWI.create ("SWI_PingRcv");
bios.SWI.instance("SWI_PingRcv").order = 1;
bios.SWI.instance("SWI_PingRcv").fxn = prog.extern ("setRcvPing");
bios.SWI.instance("SWI_PingRcv").priority = 1;
BIOS.SWI.create ("SWI_PongRcv");
bios.SWI.instance("SWI_PongRcv").order = 2;
bios.SWI.instance("SWI_PongRcv").fxn = prog.extern ("setRcvPong");
bios.SWI.instance("SWI_PongRcv").priority = 2;
从布置的 SWI 调用的中断例程和函数如下(EDMA 调度程序在 c_int08中断例程中调用 RcvPing 和 RcvPong):
void c_int08 (void)
{
EDMA_intDispatcher ();
返回;
}/*结束 c_int08 */
空 RcvPing()
{
EDMA_intClear (13);
//调用 setRcvPing
Swi_post (&Swi_PingRcv);
// setRcvPing();
}
空 RcvPong()
{
EDMA_intClear (15);
//调用 seetRcvPong
Swi_post (&SWi_PongRcv);
// setRcvPong();
}
使用此设置时、代码似乎会进入到电子邮件中、但如果我注释掉 SWI_POST 调用并取消注释对 setRcvPing 和 setRcvPong 的调用、则代码会正常工作。
是否有任何关于 SWI_POST 调用为何无法正常工作的建议?