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.

[参考译文] CCS/CC2640R2F:CCS 7.4 .0.0.0015万 无法设置断点

Guru**** 1950750 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/667121/ccs-cc2640r2f-ccs-7-4-0-00015-unable-to-set-breakpoints

部件号:CC2640R2F

工具/软件:Code Composer Studio

您好,

我刚刚从CCS云切换到CCS桌面,因为我在那里遇到了一些问题,但现在桌面版本出现了一个非常类似的问题。 请参阅下面的屏幕截图,我无法设置第581行,第583行和第585行中显示的任何断点。 如果我单击“断点”视图中的断点,它会告诉我没有与该断点关联的汇编代码。 如果我在Disassembly (取消汇编)视图中搜索此点,则不会列出例程'SimpleBLEPeripheral_ws_init'。 此外,许多其他函数未列出,包括主应用程序初始化例程'SimpleBle_Peripheral_init'

但是请注意,此代码正在执行。 按预期正确切换DIO_24。

有什么建议?

此致,

交流

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    交流,

    我在同一个示例项目的链接器.map文件中也找不到这些符号,但快速查看源文件就会发现函数本身是“静态的”,其作用域有限,因此不是全局的。

    但是,我仍在调查调试器为何未将源代码与调试器关联-它可能是错误或设计错误。

    (编辑)我可以在函数上设置断点,该函数是从SimpleBLEPeripheral_taskFxn调用的(请在下面选中)。  

    在这种情况下,这可能是macOS上的问题。 我将报告我的调查结果。  

    此致,
    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Rafael:

    非常感谢您的回答。 更多信息:

    1.今天上午,我在第577和578行添加了另外两个代码行,如下所示,并且能够在第578行上设置断点。  但是,从这一点开始,就会出现问题:我可以将代码行(58.2583万和584)的内容跳过,但不能将代码行(588至591)的内容跳过。 奇怪的是,您可以在"反汇编"视图中看到这些行,但没有与它们关联的源代码行号。 然后,源代码行593和594生成的汇编代码也可以在“拆卸”视图中看到,但“拆卸”视图显示的源代码行号为638和750,这是完全错误的。 因此,我无法在这些行号上设置断点...

    2.关于您对被声明为"静态"的函数的评论,下面的屏幕截图显示了"反汇编"视图中的函数下拉列表。 左侧面板显示了一整组发生在simpleble_peripher.c文件顶部的函数声明-所有声明都是静态的,但只有少数声明出现在Disassembly (分解)下拉列表中。 因此,这不是静态声明的问题。

    此致,

    交流

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    交流,

    似乎有一些特定于macOS如何解码这些静态函数并将其转换为"反汇编"视图- macOS上的断点和函数名称不显示在"反汇编"视图中-下面是与我的相同位置的屏幕截图 Windows屏幕截图。 这是一个错误。

    但是,断点本身正在工作-这是我无法从您的方案中再现的内容。

    断点本身已设置为正确的地址:0x5C

    当我运行它时,它会在那里停机。  

    因此,我不完全确定CCS如何处理您修改的代码。 我找不到您提到的相同函数(SimpleBLEPeripheral_ws_init)。 如果这是您创建的自定义函数,并且您将其定义为“static”,那么是否可以删除静态修饰符并重新生成代码? 也许有了一个全局符号,随着该函数真正全球化,您可以对其正常执行情况有更多的见解。 此外,您可以尝试禁用此特定源文件的优化-只需右键单击它并将优化级别设置为"关闭"。 这应有助于验证优化器对代码的这一部分的影响。   

    我将尝试考虑可能有帮助的其他详细信息,但下面的文章也将提供有关此问题的更多见解:

    http://processors.wiki.ti.com/index.php/Debug_versus_Optimization_Tradeoff 

    希望这能有所帮助,

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    交流,

    在我之前的工作中,我使用的是从Windows主机生成的.out文件,因为CC2460R2F SDK不正式支持macOS。

    但是,今天我按照本文末尾的步骤直接在macOS主机上构建项目。 在此实验中,我能够找到与Windows主机相同的结果-即,"分解"视图正确显示了静态函数的源代码。

    在您的情况下,我强烈建议您看看您是否可以使用其他工作区或测试我之前发送的提示。

    希望这能有所帮助,

    拉斐尔

    ==在macOS ==上构建CC2640R2 DSK的过程

    安装所有依赖关系:
    -打开终端
    -发出命令which python。 默认情况下,它应返回/usr/bin/python
    -发出命令python --version。 必须是2.7 3或更新版本
    -发出命令sudo pip2 install lxml
    请注意,代理设置可能导致此更新失败。
    这是运行软件包的python脚本的必要要求

    安装SDK并导入项目:
    -按照以下线程上的说明下载并安装SDK,并修改python脚本
    e2e.ti.com/.../222.8206万
    -上述线程中缺少的另一个详细信息是设置lib_search.py的执行权限
    -从终端转到上面的线程中提到的目录,然后发出以下命令:chmod a+x lib_search.py

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    拉斐尔

    感谢您的回复。

    >>-发出命令sudo pip2 install lxml <--我不记得在安装python等时发出此命令,因此我再次运行它,它已解决了问题。

    启用优化后,有时代码会四处移动,我无法在优化器移动的代码行上设置断点,但我可以通过降低优化级别或完全禁用它来控制这一点。

    感谢你的帮助。

    此致,
    交流
x 出现错误。请重试或与管理员联系。