主题中讨论的其他器件:HALCOGEN
工具/软件:Code Composer Studio
HALCogen 04.07.00
CCS 8.2.0.7
SPI2将256 16位写入 SPI4、作为从器件的主器件。
在 SPI4上设置 DMA、帧计数为256、元素计数为1.e2e.ti.com/.../5633.CAN_5F00_1_5F00_2.zip
我发送256 16位、然后将 RTI 设置为1ms 并进入无限循环。
为了使 RTI 正常工作、我从 sys_core.h 中调用_enable_interrupts_
我在 RTI 初始化之前添加了一个长延迟。 我在 rtiInit()处放置一个断点;
如果没有_enable_interrupts 行并在 rtiInit()处停止、则 DMA 会成功。
使用_enable_interrupts 行并在 rtiInit()处停止、DMA 不是-或至少显示零。
这似乎是一种奇怪的抢先式错误。 这是 sys_main.c 代码的末尾:
对于(k=0;k<100;k++)延迟();
rtiInit();
rtiEnableNotification (1);//仅启用比较0通知
rtiStartCounter (0);
_enable_interrupt_();//包含此内容,即使代码在 rtiInit()处停止
//在 SPI4上接收到的数据的 DMA 显示没有接收到任何数据。 删除此内容
//并在同一位置停止显示数据 dma'd 正常。
/*用户代码结束*/
while (1);
}