工具/软件:
我正在使用 CCS 版本12.8.1为 TI Hercules 处理器 RM48L952进行编译、汇编、链接和调试代码。 TI 的 Hercules 微控制器开发套件中运行了处理器。
我已经使用开发环境近一年了,它是稳定的,在所有其他方面都运行良好.
最后一个链接添加了 ThreadX、它是使用 ARM FuSa 工具链和适用于嵌入式 FuSa 的 ARM FuSa 编译器 Arm编译器6.16.2 LTS 构建为静态库。
TI CCS 调试器中所有方面的代码执行都正常工作。 在调试器中调试 ARM asm 源代码时、这只是 CCS 调试器不显示的问题。 ThreadX 的 ARM C/C++源代码正确显示在 CCS 调试器中。
++++++++++++++++++++++++++++++++++++++++++++++++++
示例:
CCS 调试器中 ARM 静态库的单步 C/C++代码工作正常。 在 ThreadX 静态库中的 asm 函数中执行: "ThreadX_XDER_611.a"、将单步 asm 代码执行到函数_tx_thread_schedule ()中:
因此、在单次 ASM 执行步骤后、"Disassembly"窗口是正确的、但在上面的空白窗口中、我们会看到 CCS 调试器发出的消息:
C:\Users\0xd6e0\workspace_v12_8_1\IslandDER\Debug\IslandDer.out:{3}Kip_Leitner{4}处没有"_TX_thread_schedule()的源
但是、我们可以在"Disassembly"窗口中看到 CCS 具有正确的反汇编代码。 另外,我们还可以看到 ThreadX_XDER_611.a 库中函数符号"_tx_thread_schedule()的符号查找是正确的,因为它显示在"Disassembly"中。 唯一的问题是、我们在源代码窗口中看不到文件内容。
现在、我使用 readelf 确认静态库文件 ThreadX_XDER_611.A 中存在函数_tx_thread_schedule 的符号交叉参考:
readelf 还报告、有关 DWARF-3格式行号的某些数据:
此外、源代码文件也包含在此处的调试器中:
此外、源文件列在 CCS Debugger 中:
您可以看到、显示由 CCS HAL 生成的 asm 代码是可以正常的。 只需复位调试器中的处理器、CCS 调试器即可正确加载中断向量 asm 文件: