您好!
使用 SDK 6.20和 TI Clang 编译器单步执行驱动程序代码(例如 GPIO_init())需要执行哪些步骤?
使用空项目:
- 编译器没有优化
- 除其他外、我在全局范围内定义了 DRIVERLIB_NOROM、以防万一。
- 我还尝试为 driverlib 添加符号、以防使用 driverlib (我不认为是这样?)
尝试单步进入 GPIO_init(),CCS 无法找到 C 文件,如下所示:
调试器在函数处停止:

尝试单步执行、在汇编中设置断点、显示未找到文件:

显示项目的包含项:

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.
您好!
使用 SDK 6.20和 TI Clang 编译器单步执行驱动程序代码(例如 GPIO_init())需要执行哪些步骤?
使用空项目:
尝试单步进入 GPIO_init(),CCS 无法找到 C 文件,如下所示:
调试器在函数处停止:

尝试单步执行、在汇编中设置断点、显示未找到文件:

显示项目的包含项:

尊敬的 Martin:
您的第三个映像中显示的包含仅是使用的包含路径、即可以使用#include 指令包含的文件。 这并不意味着所有文件都将被编译。
默认示例将使用预编译的驱动程序库、并且不会从源代码构建驱动程序。 使用此库时、无法调试源代码。 如果要调试源代码、则需要编译并链接要调试的特定源文件。 通过将源文件(.c)添加到项目中、CCS 将自动编译并链接此文件。
要将文件添加到工程中、您可以将文件从 Windows 文件资源管理器拖到 CCS 中的工程中。 它将询问您是要链接还是复制文件(两者都可以正常工作)
此致、
尼古拉伊
您使用的是哪个 CCS 版本? 旧版 CCS 上的 TI Clang 编译输出存在已知问题。 如果您使用的是较旧版本(CCS 12.x 之前)、请更新您的 CCS 版本。
谢谢
Ki
我使用 CCS 12.1和 SDK 6.20空示例重现了相同的问题。
GPIO_init()来自 drivers_cc26x2.a 库。 编译的逆时针不包含任何源调试信息。 gcc 编译的。 这解释了为什么我在使用逆时针编译库时无法步入 GPIO_init()。 此库可能未使用适当的 compielr 选项构建以生成完整的调试符号。 这似乎是一个已知的疏忽,因为 SDK 6.30中的逆时针编译库*DONE*包含源调试符号,我可以在那里单步进入 GPIO_init()。 请尝试使用 SDK 6.30并查看问题是否已解决。
谢谢
Ki
谢谢 Ki、我可以看到6.30工作正常、谢谢您! 对于此主题上发生的其他海报、本地编译的库应确保 发出 DWARF 调试信息(https://software-dl.ti.com/codegen/docs/tiarmclang/compiler_tools_user_guide/migration_guide/mapping_armcl_options_to_tiarmclang/controlling_dwarf_debug_info.html):)
