部件号: CCSTUDIO
您好、
我有一个 C28x MCU 的自管理 makefile 工程、我将尝试在 CCS 20.3.1 中简化调试过程。
目前、为了运行调试会话、我需要执行以下步骤:
- 通过 CLI 上的 makefile(或通过 tasks.json 中定义的任务)构建和加载应用程序
- 打开调试面板
- 导入工程的目标配置文件(一次性)。
- 启动一个较少的工程调试会话(这会在 tasks.json 中加载)。
- 将调试器连接到目标。
- 从我的*。out 文件加载符号
- 将断点设置为`main ()`
- 运行目标。
我希望自动执行步骤 4 到 8、这样调试对我和我的团队来说就不会太麻烦了。 此外,我们真的想让它成为一个可移植的解决方案,既可以在存储库中管理,也可以通过配置文件轻松复制(粘贴在我们的 Wiki 或类似文件中)。
到目前为止、我已经尝试过几件事、以及关于每件事的问题:
在`launch.json` file 中定义会话。
根据此页面中的信息: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html
我创建了如下所示的启动配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug myProject",
"type": "ccs-debug",
"request": "launch",
"targetConfig": "/path/to/project/target_configs/bh560v2.ccxml",
"connections": [
{
"name": "Blackhawk XDS560v2-USB System Trace Emulator IcePick_C_0",
"cores": [
{
"name": "C28xx_CPU1",
"program": "/path/to/project/build/out/myProject.out",
"autoConnect": true,
"loadSymbolsOnly": true
}
]
}
]
}
]
}
但是、运行此启动程序似乎只能完成上述步骤 4、而不是完成步骤 4-6。 运行时、我仍然必须连接目标并加载符号文件、然后才能设置断点并开始运行应用。
这里是否遗漏了一些东西、或者这种技术上是否可行?
脚本控制台
这似乎是有希望的、而且即将成为一个全面的解决办法、其中有几个问题:
- 直接在 CCS 中使用脚本控制台意味着您仍需要以 ORDEER 方式执行命令来启动调试会话。 这样做很快就会变得麻烦。
- 使用文件加载选项更好、但仍然需要您手动选择要运行的.js 文件、然后确保包括导航到工程根目录的命令、因为 CWD 位于`consoleMain.js`位置。
使用这种方法是否有办法使用初始化脚本自动调用脚本控制台、类似于.gdbinit 或.bashrc 文件的方式? 或者、可以在 tasks.json 或 launch.json 中将其作为操作来调用?
通过 CLI 编写脚本命令
与上述内容类似、看起来我们可以使用提供的 run.bat/sh 运行自定义脚本。 然后、我们好像可以使用`D .launchCCS ()`打开图形调试会话。 这似乎效果很好、可以将整个内容打包成脚本或作为 makefile 中的目标。 但最大的问题是如果 CCS 已打开、则会失败。 具体来说、错误是由于两个 CCS 实例打开了相同的“工作区“或文件夹所致。 由于我们可能已经打开了 CCS 以在打开调试会话之前查看源代码、因此我们需要在执行该操作之前关闭窗口... 不理想。
在我看来、`launchCCS ()`函数缺少一个选项是附加到已经存在的 CCS 过程。 这是存在的东西还是可能以其他方式得到这种行为? 或者、您是否可以深入了解如何控制以这种方式启动 CCS 时打开的文件夹?
谢谢!
