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/TMS320F280049C:CLA -在调试模式下显示变量

Guru**** 2939420 points

Other Parts Discussed in Thread: TMDSHSECDOCK

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/875194/ccs-tms320f280049c-cla---display-variables-in-debug-mode

器件型号:TMS320F280049C
主题中讨论的其他器件:TMDSHSECDOCK

工具/软件:Code Composer Studio

您好!

我将使用 安装在 TMDSHSECDOCK 上的 F280049 controlCARD 以及 Code Composer Studio 版本:9.1.0.00010。

我想了解如何轻松调试 CLA。 为此、我使用了 CLA_ex3_background_Nesting_task 项目。 然后、我添加了一些放置在差分 RAM 中的变量(CPUTOCLAMSGRAM、CLATOCPUMSGRAM、CPU 和 CLA 之间的共享 LSRAM、仅针对 CPU 的 LSRAM)。 这些变量在 Cla1Task1函数中的每个循环或主循环中递增、正如您在下面的代码中看到的那样。

变量声明

主循环

Cla1Task1.


然后、我尝试使用表达式窗口(在连接和加载符号之后)在调试模式下可视化变量。 一个表达式窗口链接到 CPU 调试上下文、另一个窗口链接到 CLA 调试上下文。 我还使用存储器浏览器将 RAM 可视化、地址 @0x1480 (MSGRAM 起始地址)或@0x9000 (RAM LS2的起始地址-> Cla1DataRam)

我可以在 CPU 调试窗口中几乎按预期实时显示变量。 但是、即使在分步模式中、我也无法在 CLA 调试窗口中显示变量。 但是、我可以使用内存浏览器访问内存。 请查看下图。

它是预期的运行模式还是我忘记了什么?

为什么不能显示 MsgRAM?

感谢你的帮助。

 

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

    您好!

    C28x 与 CLA 上的调试有差异。 在 C28x 上、当单步执行代码时、它会清空整个流水线、而在 CLA 上、它不会清空流水线。

    请参阅培训视频

    https://training.ti.com/c2000-cla-c-compiler-part-4-debugging-ccsv5?context=1135305-1139285-31986

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

    您好!

    感谢你的帮助。 我了解 C28x 与 CLA 的调试有差异。

    但是、我的行为与视频上的行为不同(大约4:40)。 在我的测试期间、CLA 调试期间、"Expressions"选项卡中的变量始终为0。 我不知道为什么。

    此外、您能否向我确认我们是否可以在调试模式下读取 MsgRAM?

    Yann

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

    Yann、

    是的、我可以确认我可以读取 Cla1DataRam 和 Cla1ToCpuMsgRAM 中的变量

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

    JHA、

    在 CLA 调试模式下、您是否有一些想法让我无法可视化数据:  

    * CCS 版本?

    *调试探针?

    *调试配置?

    *其他

    谢谢

    Yann

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

    Yann、

    您是否对 CLA (28004x_CLA_ram_link.cmd)文件的链接器命令文件进行了任何更改?  

    在您的设置中的观察窗口中、变量显示的内容与0x00009001@Program 类似。 这看起来不正确。 应为 0x00009001@数据。

    请检查生成的映射文件。

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

    当然、我从 CLA_ex3_background_Nesting_task 的最后一个项目开始。  

    然后、我添加了用于测试的变量、正如我在第一个帖子中解释的那样。 我还删除了 Cla1Task1中_mdebugstop()的注释。  然后我对其进行了编译。

    这是映射文件的交叉部分。 它看起来是正确的。

    全局数据符号:按数据页排序

    地址数据页名
    ---- -------- ----
    00000400 10 (00000400)_STACK

    00001480 52 (00001480) u16CmpCloop_Cla1ToCpuMsgRAM

    00001500 54 (00001500) u16cmpMainLoop CpuToCla1MsgRAM

    00009000 240 (00009000) u16CmpMainLoop Cla1Data
    00009001 240 (00009000) u16CmpClaloop_Cla1Data

    0000a800 2a0 (0000a800) u16CmpMainLoop 全局变量
    0000a801 2a0 (0000a800) u16CmpClaloop_global

    0000b378 2CD (0000b340)__TI_ENABLE_EXIT_PROFILE_OUTPUT
    0000b37a 2CD (0000b340)__TI_clean_ptr
    0000b37c 2CD (0000b340)_TI_dptors _ptr
    0000b37e 2CD (0000b340)_lock

    0000b380 2ce (0000b380)_unlock

    在闪存、连接到 CLA、加载符号、运行 CPU 和调试 CLA 之后、我得到了相同的结果。 我无法在 CLA 上可视化变量。

    感谢你的帮助

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

    Yann、

    我按照与您相同的顺序执行了操作。

    我需要做的一个额外步骤如下所示:cla_ex3_background_Nesting_task_cla.cla。 我相信您也在这样做、以便能够进行编译。 但只是想与您核实一下。

    extern uint16_t u16CmpClaloop_Cla1Data;
    extern uint16_t u16CmpCloop_Cla1ToCpuMsgRAM;
    extern uint16_t u16CmpClaloop_global;

    另一个区别是我在 Launchpad 和 CCS 9.2上运行。 我认为它应该以相同的方式运行。

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

    是的、我做到了

    我问自己这不是调试探针问题(配置...)。

    您的调试探针似乎是 XDS110、我的调试探针是 XDS100v2。 是否有一些具体配置?

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

    请参阅应用手册中的 JTAG 连接调试

    http://www.ti.com/lit/an/spracf0/spracf0.pdf

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

    您好 Jha、

    我进行了一些额外测试、但没有成功。 我检查了 JTAG 探针。 您可以在测试连接报告下方找到。 您对此报告有何看法? 一些测试尚未完成(下面以粗体显示)

    我还访问以下链接 https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/677001?Start-guide-for-the-above-TMS320-F280049M-Experimenter-s-Kit-for-C2000-Real-Time-Control-Development-Kits

    我真的不知道如何让 JTAG 调试在 CLA 上工作。

    谢谢

    [开始:德州仪器 XDS100v2 USB Debug Probe_0]

    执行以下命令:

    %CCS_base%/common/uscif/dbgjtag -f %boarddatafil文件%-RV -o -F inform、logfile=yes -S pathlength -S integrity

    [结果]


    ---- [打印电路板配置路径名]---------------

    C:\Users\Al-YB2~1\AppData\Local\TEXASI~1\
    CCS\ccs910\0\0\BrdDat\testBoard.dat

    ---- [打印重置命令软件日志文件]-----------------

    此实用程序已选择100或510类产品。
    此实用程序将加载适配器'jioserdesusb.dll'。
    库构建日期为2019年6月3日。
    库构建时间为'15:24:38'。
    库软件包版本为'8.2.0.00004'。
    库组件版本为'35.0.0'。
    控制器不使用可编程 FPGA。
    控制器的版本号为'4'(0x00000004)。
    控制器的插入长度为"0"(0x00000000)。
    此实用程序将尝试重置控制器。
    此实用程序已成功重置控制器。

    ---- [打印重置命令硬件日志文件]-----------------

    扫描路径将通过切换 JTAG TRST 信号进行复位。
    控制器是具有 USB 接口的 FTDI FT2232。
    从控制器到目标的链路是直接的(不带电缆)。
    该软件配置为 FTDI FT2232功能。
    控制器无法监控 EMU[0]引脚上的值。
    控制器无法监控 EMU[1]引脚上的值。
    控制器无法控制输出引脚上的时序。
    控制器无法控制输入引脚上的时序。
    扫描路径链路延迟已精确设置为"0"(0x0000)。

    ---- [用于从 PLL 生成的 JTAG TCLK 输出的日志文件]---

    没有用于对 JTAG TCLK 频率进行编程的硬件。

    ---- [测量最终 JTAG TCLKR 输入的源和频率]----

    没有用于测量 JTAG TCLK 频率的硬件。

    ---- [对 JTAG IR 和 DR 执行标准路径长度测试]-----

    此路径长度测试使用64个32位字的块。

    JTAG IR 指令路径长度测试成功。
    JTAG IR 指令路径长度为6位。

    JTAG DR 旁路路径长度测试成功。
    JTAG DR 旁路路径长度为1位。

    ---- [对 JTAG IR 执行完整性扫描测试]-----

    此测试将使用64个32位字的块。
    该测试将仅应用一次。

    使用0xFFFFFFFF 进行测试。
    扫描测试:1、跳过:0、失败:0
    使用0x00000000执行测试。
    扫描测试:2、跳过:0、失败:0
    使用0xFE03E0E2执行测试。
    扫描测试:3、跳过:0、失败:0
    使用0x01FC1F1D 进行测试。
    扫描测试:4、跳过:0、失败:0
    使用0x5533CCAA 进行测试。
    扫描测试:5、跳过:0、失败:0
    使用0xAACC3355进行测试。
    扫描测试:6、跳过:0、失败:0
    所有值均已正确扫描。

    JTAG IR 完整性扫描测试成功。

    ---- [在 JTAG DR 上执行完整性扫描测试]-----

    此测试将使用64个32位字的块。
    该测试将仅应用一次。

    使用0xFFFFFFFF 进行测试。
    扫描测试:1、跳过:0、失败:0
    使用0x00000000执行测试。
    扫描测试:2、跳过:0、失败:0
    使用0xFE03E0E2执行测试。
    扫描测试:3、跳过:0、失败:0
    使用0x01FC1F1D 进行测试。
    扫描测试:4、跳过:0、失败:0
    使用0x5533CCAA 进行测试。
    扫描测试:5、跳过:0、失败:0
    使用0xAACC3355进行测试。
    扫描测试:6、跳过:0、失败:0
    所有值均已正确扫描。

    JTAG DR 完整性扫描测试成功。

    [结束:德州仪器 XDS100v2 USB 调试探针_0]

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

    Yann、您好!

    这些打印是正常的。

    今天、我在 LaunchPad-F28379D 上尝试了相同的实验、它具有 xds100v2。 使用该仿真器、我会看到与您一样的行为。 此时、我不确定是 JTAG 问题还是 CCS 显示问题、还是 CLA 访问 MsgRam。 我正在咨询 CLA 专家。 我明天会向您提供最新信息。

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

    Yann、

    它看起来存在核心安全问题。 请参阅  

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/699278?TMS320F28377D-CLA1-couldn-t-read-write-to-assigned-LS-memory-#pi320995=2

    在我的代码中、我对链接器命令文件进行了以下更改:

    Cla1Prog      :> RAMLS0,       PAGE = 1.

    此外、对于存储器配置、  

    MemCfg_setLSRAMMasterSel (MEMCFG_Sect_LS0、MEMCFG_LSRAMMASTER_CPU_CLA1);
    MemCfg_setLSRAMMasterSel (MEMCFG_Sect_LS1、MEMCFG_LSRAMMASTER_CPU_CLA1);
    MemCfg_setLSRAMMasterSel (MEMCFG_Sect_LS2、MEMCFG_LSRAMMASTER_CPU_CLA1);
    MemCfg_setCLAMemType (MEMCFG_Sect_LS0、MEMCFG_CLA_MEM_program);
    MemCfg_setCLAMemType (MEMCFG_Sect_LS1、MEMCFG_CLA_MEM_DATA);
    MemCfg_setCLAMemType (MEMCFG_Sect_LS2、MEMCFG_CLA_MEM_DATA);

    进行这些更改后、它将按预期工作。  

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

    您好 Jha、

    我不确定问题是什么以及解决方法是什么。 在我的软件示例中、LSRAM0已设置为 MEMCFG_CLA_MEM_PROGRAM。 唯一的区别是页码、但根据我的看法、它只是链接器内部的信息。 我通过在 LS4中设置 CLA 程序和在 LS5/LS6中设置 CLA RAM 进行了另一项测试、但我遇到了相同的问题。 我的意思是:

    *使用 CLA 调试时、我无法在"Expressions"选项卡中显示所有变量。 它们仍然为0。

    *我无法显示 MSGRAM 中设置的变量。 我收到以下消息:Memory map prevented reading 0x01500@Program / Memory map prevented reading 0x01480@Program

    下面是我的完整项目附件。 感谢您的帮助

    e2e.ti.com/.../cla_5F00_ex3_5F00_background_5F00_nesting_5F00_task.7z

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

    Yann、

    您能试试 CLA C 编译器

    //项目属性-> C2000链接器->高级选项->命令文件
    //预处理->--define

    添加"cla_C"并重新生成项目。

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

    您好 Jha、

    我假设链接器预处理器命令用于链接器。 我的链接器文件中没有"cla_C"、因此它不会产生任何影响。

    当然、我已经进行了测试。 我仍然遇到问题。

    正如您在1月30日12:24am 告诉我的、您能否向我确认  您在具有 xds100v2调试探针的 LaunchPad-F28379D 上遇到了问题(CLA 中无显示和/或无显示 MSGRAM)? 您是如何解决此问题的?

    您是否得到了 CLA 专家的回答?  

    您是否尝试了我的项目?

    您认为如果我重新安装 CCS、可以解决这个问题吗? 我更愿意不采取这种行动,但是...

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

    Yann、

    e2e.ti.com/.../cla_5F00_ex4_5F00_debug_5F00_variable.7z

    是的、我能够使用链接器文件中的更改来运行您的项目。 这是修改后的项目。 可以试试吗?

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

    Yann、

    我在我的设置中再次测试了它。 我将在 Launchpad F28379D 上与 XDS100v2搭配使用、使用 CCS 9.2。 请尝试附加的项目。 它具有与您的链接器命令文件完全相同的文件、并且还有代码文件。 因此、您的设置必须存在其他问题。

    e2e.ti.com/.../2678.cla_5F00_ex4_5F00_debug_5F00_variable.7z

    您使用的是哪个版本的 CCS?

    此外、我还建议您完成我之前发布的 e2e 链接中提到的调试步骤。

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

    有更新吗?  

    您现在是否能够调试 CLA?

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

    您好 Jha、

    很抱歉耽误你的时间、我昨天不能使用。 我没有 Launchpad F28379D、因此无法轻松尝试您的代码。

    我已经尝试过前面的帖子中提到的调试步骤。 我还会向您发送调试探针测试的日志文件。 看起来不错。

    我使用的是 CCS  9.1.0.00010。

    正如您在1月30日12:24am 告诉我的、您能否向我确认  您在具有 xds100v2调试探针的 LaunchPad-F28379D 上遇到了问题(CLA 中无显示和/或无显示 MSGRAM)? 您是如何解决此问题的?

    此致、

    Yann

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

    Yann、

    当时、我的项目中有错误的链接器命令文件。   

     链接器命令文件中的 Cla1Prog 段不在 RAMLS0中。 在您的设置中、情况似乎并非如此。

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

    请访问下面的链接。 它会执行您可以尝试缩小问题范围的各种调试步骤。

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/699278?TMS320F28377D-CLA1-couldn-t-read-write-to-assigned-LS-memory-#pi320995=2

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

    您好 Jha、

    此时、我不知道如何解决这个问题。 因此、我不会使用 CLA 的调试模式和/或不会使用 MsgRAM 存储器。 我稍后会看到我是否有一些时间来解决这个问题。

    感谢您的帮助、

    Yann  

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

    为了供您参考、我安装了 CCS v9.3的最后一个版本、因此重新安装了调试探针。 现在、它按预期工作。

    我不知道我之前安装 CCS v9.1时出现了什么问题。

    因此、我关闭了这个帖子。

    谢谢

    Yann