Thread 中讨论的其他器件:CC2650、 SYSBIOS
工具/软件:TI-RTOS
我遇到固件卡在 WFI 指令中的问题(ARM 等待中断)。
当器件被重新连接至调试器时、它会正确地移动到下一条指令并更新时钟、尽管它们显然都是错误的(即、超过了它们应该在上面过期的节拍)。
在论坛中阅读、这种情况的唯一可能发生方式是、如果在调用任何 WFI 指令之前中断已经被暂停。 我们的电路板非常简单、没有外部外设、问题也出现在 SensorTag 上。
所有堆栈、堆、ICALL 资源都正常、ROV 中没有超限和错误。
在 RTOS 源树(tirtos_cc13xx_cc26xx_2_20_01_08)中进行搜索我唯一可以找到明确引用 WFI 指令的位置的位置是电源管理代码中、特别是对于我们来说、在 STANDBY 函数中。
编译器版本似乎没有太大的差异、但我们按照文档中的说明进行操作、我们的 BLE 堆栈(2_02_01_18)正在使用5.2.6进行编译、该应用本身具有15.12.5.LTS。
我已经用一个尝试调试这个问题的定制函数替代了待机函数、但我真的不知道我在寻找什么-是否有一种方法可以测试中断是否被禁用、所以我可以跳过 WFI 指令直到下次我 处于空闲循环中、希望它会复位? 调试非常困难(或者生成一个简单的程序来重新生成它)。
其他人对 WFI 指令可能生成的其他位置有任何见解、因此我可以对其进行检测?
