This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28384D:C2000ware 在预编译库中断言

Guru**** 1838530 points
Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1437352/tms320f28384d-c2000ware-asserts-in-precompiled-library

器件型号: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 不打算这样分发?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    我浏览了 projectspec、发现 driverlib_cm 项目缺少"--define=debug"选项。  将此报告为错误。  

    为了现在解决这个问题、您可以从 ( \driverlib\f2838x\driverlib_cm)、更新 工程属性以在预定义符号中添加"调试"符号、然后重新编译它。  

    您将必须使用该库重新编译项目

    此致

    Siddharth