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.
工具/软件:Code Composer Studio
此解决方案适用于 CC26x0 和 CC26x2 器件(包括 CC2640R2、CC2642R、CC2652R、CC2652P、CC1312R、CC1352R、CC1352P)。
我已经使用 CCS 9.3 对其进行了测试。
如果您要在几天后查看目标的状态,或无法在连接调试器后重现崩溃,在目标正在运行时连接调试器可能会有所帮助。下面介绍具体步骤!
1 - 修改 GEL 文件
在一个非常简单的视图中,GEL 文件描述了设备调试器的工作方式(更多详细信息可在 CCS 的“Help”中找到)。默认情况下,Gel 文件要求器件在调试器启动时复位。我们可以对此进行修改:
a - 识别所使用的 GEL 文件
>> 另一种方法是在 <CCS directory>\ccs_base\emulation\gel 中查找 GEL 文件。
b - 在 StartUp() 函数中,注释掉执行复位的代码。如果需要,可使用显式注释识别要注释掉的代码。
以下是修改后的 StartUp() 函数的内容:
StartUp(int major, int minor, int patch)
{
/* Initialize memory map */
memorymap_init();
/* Debugger specific handling */
if(GEL_MatchesConnection(".*TIXDS.*")== 1)
{
GEL_LoadGel("$(GEL_file_dir)/cc26xx_connect_util.gel");
GEL_LoadGel("$(GEL_file_dir)/cc26x2_xds.gel");
DefineResets(0);
// Issue Board Reset to ensure device is in a known state
// Note: If you want to attach to a running target without resetting the
// device, you must comment out the following 4 lines:
// if(!GEL_IsConnected())
// {
// GEL_AdvancedReset("Board Reset");
// }
}
else if(GEL_MatchesConnection(".*JLink.*")== 1)
{
GEL_LoadGel("$(GEL_file_dir)/cc26xx_jlink.gel");
}
else
{
GEL_TextOut("Error: Unknown debugger.\n");
return;
}
}
c - 保存修改并关闭文件。关闭调试界面。
2 - 修改工程的“Debug Configuration”
点击 CCS 的“Debug”按钮(绿色虫子)后,CCS 将为您执行许多不同的操作。例如,CCS 将加载程序并停止在目标上执行代码。在我们的示例中,我们不希望 CCS 加载程序(因为我们已经有一个正在运行的程序……)。同样,我们并不一定要停止在目标上执行代码。
可喜的是,CCS 运行调试界面的方式是高度可配置的。因此,我们可根据我们的需求调整这些配置。
a - 在“Debug”按钮的右侧有一个箭头。点击此箭头并选择“Debug Configurations...”。
b - 选择您的工程。
c - 阻止 CCS 加载程序:在“Program”选项卡中,选择正确的“Loading option”
d - 阻止 CCS 停止目标:在“Target”选项卡中,取消选择选项“Hal the target on a connect”
3 - [可选] 禁止 CCS 在加载前构建程序。
由于不会加载任何程序,因此在启动调试会话时要求 CCS 构建image是没有用的。您可以使用“Flash”按钮右侧的小箭头禁用此选项。点击“Build Project Before Load”以禁用此选项
您现已准备就绪!可运行代码,并在需要时使用“Debug”按钮连接正在运行的目标,就像您通常所做的那样。
问:现在如何在设备上加载新映像?
答:最简单的方法是使用“Flash”按钮并选择要刷写的映像。请不要忘记手动重建image(因为我们之前已禁用此选项)。另一个解决方案是撤销我们之前所做的所有配置更改。第三种解决方案是使用不同版本的 CCS。
问:这些配置是否会影响我的所有器件?
答:这取决于修改内容
您好,我目前想在CC26x2 launchpad 蓝牙AOA UI例程运行时调试板子,按照此文章的做法可以成功在不打断代码运行情况下在CCS中查看板子各寄存器的状态和一些全局变量的值。
但此状态下不能进行断点、单步运行等调试,只能添加或者观测一些全局变量,看不到一些想观测的局部变量,也看不到程序暂停时停留的代码位置。这个有办法解决吗?
您好,我们建议您将您的问题发布在以下论坛中,会有专门的工程师为您解答:
https://e2echina.ti.com/support/wireless-connectivity/bluetooth/f/bluetooth-forum