请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28384D Thread 中讨论的其他器件:C2000WARE
工具与软件:
我将使用 CM 内核并测试断言处理、但即使我有意在函数调用中使用错误参数、也从未执行___ error_函数。 通过浏览 C2000ware 源、我注意到只有在定义了"调试"符号时才会执行断言、因此我仔细检查了链接器设置、以验证包含库路径和库搜索路径是否指向 C2000ware 安装中 Debug 文件夹中的 driverlib_cm.lib 文件。 编译完成后、我能够在.map 文件中验证是否链接了正确的.lib 文件。 为了强制置位、我正在执行:
IPC_initMessageQueue(IPC_CM_L_CPU1_R, NULL, 0, 0);
第二个参数中的空指针应根据可用的源触发置为有效。
我的错误处理程序当前看起来像:
void __error__(const char *filename, uint32_t line) { __asm(" bkpt #0"); printf("%ul %s", line, filename); while(1); }
我永远不会命中断点或到达 while 循环。 在构建调试预编译库时是否未使用"debug"符号? 这是一个错误、还是 C2000ware 不打算这样分发?