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.

[FAQ] [参考译文] [常见问题解答] CCS/CC2640R2F:CC26x2:如何将调试器连接到正在运行的目标?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/882926/faq-ccs-cc2640r2f-cc26x2-how-to-connect-the-debugger-to-a-running-target

器件型号:CC2640R2F
主题中讨论的其他器件:CC1312RCC1352RCC1352PCC2642RCC2652PCC2652R

工具/软件:Code Composer Studio

该解决方案适用于 CC26x0和 CC26x2器件(包括 CC2640R2、CC2642R、CC2652R、CC2652P、CC1312R、 CC1352R、CC1352P)。

我已经使用 CCS 9.3对其进行了测试。

如果您希望在几天后查看目标的状态、或者如果您不能在连接调试器的情况下重现崩溃、则将调试器连接到正在运行的目标的可能性会有所帮助。 让我们深入了解一下!

1-     修改 GEL 文件

在一个非常简单的视图中,GEL 文件描述了器件调试器的工作方式(更多详细信息可在 CCS 的帮助中找到)。 默认情况下、GEL 文件要求器件在调试器启动时复位。 希望我们可以修改以下内容:

    a -      标识使用的 GEL 文件

  • 一如既往地启动调试会话
  • (如果需要)、显示调试视图
  • 右键单击程序,即“Open GEL files View (打开 GEL 文件视图)”。
  • 在 GEL 文件列表中、双击相应的 GEL 文件将其打开。 为 CC26x2器件选择 cc26x2.gel。 为 CC26x0器件选择 cc26x0.gel。

 

    >>另一种可能包括查看 GEL 文件的\ccs_base\emulation\gel。

 

    b-     在 startup ()函数中,注释掉执行复位的代码。 如果需要、显式注释将帮助您识别要注释掉的代码。

以下是修改后 startup ()函数的内容:

startup (int major、int minor、int patch)
{
/*初始化内存映射*/
memorymap_init();

/*调试器特定处理*/
if (GEL_MatchesConnection ("../TIXDS.*")=1)
{
GEL_LoadGel ("$(GEL_file_dir)/cc26xx_connect_util.gel");
GEL_LoadGel ("$(GEL_file_dir)/cc26x2_XDS.gel");

定义复位(0);

//发出电路板复位以确保器件处于已知状态
//注意:如果要附加到正在运行的目标而不重置
// 器件、您必须注释掉以下4行:
// if (!GEL_isconnected ())
// {
// GEL_AdvancedReset ("电路板重置");
//}
}
否则 if (GEL_MatchesConnection ("../JLink.*")=1)
{
GEL_LoadGel ("$(GEL_file_dir)/cc26xx_jlink.gel");
}
其他
{
GEL_TextOut ("错误:未知调试器。\n");
返回;
}
}

    C -      保存修改并关闭文件。 停止调试会话。

2-     修改项目的调试配置

点击 CCS 的调试按钮(绿色虫子)后,CCS 将为您执行许多不同的操作。 例如、CCS 加载程序并停止在目标上执行代码。 在本例中,我们不希望 CCS 加载程序(因为我们已经有一个正在运行的程序…)。 同样,我们并不一定要停止在目标上执行代码。
希望 CCS 运行调试会话的方式是高度可配置的。 因此,让我们根据我们的需求调整这些配置。

    A -      在"Debug"按钮的右侧有一个箭头。 单击此箭头并选择“Debug Configurations...”。

    b -     选择您的项目。

    c-      阻止 CCS 加载程序:在“程序”选项卡中,选择正确的“加载选项”

 

 

    D-     阻止 CCS 停止目标:在“Target”(目标)选项卡中,取消选择选项“Hal the target on a connect”(在连接时停止目标)

  

3-     [可选]阻止 CCS 在加载前构建程序。

由于不会加载任何程序、因此在启动调试会话时要求 CCS 构建映像是没有用的。 因此、您可以使用闪存按钮右侧的小箭头禁用此选项。 单击“在加载前构建项目”以禁用该选项

 

您已准备好! 让代码运行、并在需要时使用"Debug"按钮连接正在运行的目标、就像您通常所做的那样。

 

问:现在如何在器件上加载新映像?

答:最简单的方法是使用"Flash"按钮并选择要刷写的映像。 不要忘记手动重建映像(因为我们以前已禁用此选项)。 另一种解决方案是取消我们之前所做的所有配置更改。 第三种解决方案是使用不同版本的 CCS。

 

问:这些配置是否会影响我的所有设备?

答:这取决于修改

  • 在步骤1中所做的修改(GEL 文件修改)会影响使用相同 GEL 文件的所有器件。 换句话说、如果您修改了 cc26x2.gel、它会影响所有 CC26X2和 CC13X2;如果您修改了 cc26x0.gel、则会影响所有 CC26x0和 CC13x0。
    请记住,默认情况下,两个不同的 CCS 版本*不*使用相同的 GEL 文件。
  • 调试配置的修改只影响一个项目