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.

[参考译文] TMS320F280049:何处放置断点

Guru**** 2546020 points
Other Parts Discussed in Thread: SFRA, TMS320F280049

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1067514/tms320f280049-where-to-put-break-point

部件号:TMS320F280049
“线程:SFRA”中讨论的其它部件

大家好,我有几个关于休息点的问题:

1.在这个简单的函数中,我可以在828上放置断点,但不能在825和827上放置断点。 为什么会这样? 断点的规则是什么?

2.下面设置的中断点根本不会停止程序,当我在启动后点击“运行”时,它会直接运行在这些中断点。

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

    您好,

    [引用 userid="487996" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/c2000 -微控制器-论坛/1067514/tms320f280049-where - to -put - break point ]1.在这个简单的函数中,我可以在第828行中放置断点,但不能在825和827行中。 为什么会这样? 断点的规则是什么?

    此函数似乎正在闪存中,调试器正在尝试设置硬件断点。 请注意,可用的硬件断点数量有限。 当您用完时,它会将硬件断点设置为禁用(灰度显示,如825和827)。 当您用完时,您应该收到有关此问题的通知,您是否收到了以下链接中描述的一些错误消息?

    https://dev.ti.com/tirex/explore/node?node=AFxRAHEqhlcitK5yopkNoA__FUz-xrs__LATEST

    [引用 userid="487996" url="~支持/微控制器/C2000 -微控制器组/CC2000 /f/C2000 -微控制器-论坛/1067514/tms320f280049-从何处到何处中断点"] 2.下面设置的中断点根本不会停止程序,当我在启动后点击“运行”时,它会在这些中断点运行[。]

    我发现您在这种情况下使用的是软件断点。 此功能是 RAM 还是闪存? 如果是 RAM,您是否在目标停止时设置了这些断点? 如果是,您能否确认这些行 应该已执行?

    谢谢

    Ki

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

    您好,Ki,  

    非常感谢您的回复。

    1.我可以输入多少个小时/小时断点? 这是假设有“错误消息”的链接,我不知道要查找什么?

    2.设置断点时,我只双击行的左侧,有时是 H/W 类型,有时是软件类型。 这让我感到困惑,是否有一份关于断点的文件?  

    该代码被下载到闪存中,但在 device_init()函数中,它会将一些代码复制到 RAM 中。 所附的代码是将程序从闪存复制到 RAM 的代码,以及 linker.cmd 文件。 RAM 中似乎只有 sfra/ISR/DCL 函数。 所以,对于你的问题,我尝试在计划中提出休息点的部分是在 Flash 中。

     在运行前进入调试模式时,我设置了这一点(程序员指向 main()的第一行)。 有什么区别?

    #ifdef 闪烁
    //
    //将时间关键代码和闪存设置代码复制到 RAM。 这包括
    //以下函数:InitFlash();
    //
    //函数 LoadStart,RamfunctsLoadSize 和 RamfunctsRunStart 符号
    //由链接器创建。 请参阅设备的.cmd 文件。
    //
    Memcpy (&RamfunctsRunStart,&RamfunctsLoadStart,(size_t)&RamfunctsLoadSize);

    memcpy (&isrcodefunctionsRunStart,&isrcodefunctionsLoadStart,
    (size_t)&isrcodefunctionsLoadSize);
    #endif

    这来自 linker.cmd 文件:

    章节

    codegstart:>开始,页面=0,对齐(4)
    text:>> flash_BANK0_SEC1 | flash_BANK0_sec2 | flash_BANK0_SEC3,第=0页,align(4)
    cinit:> flash_BANK0_SEC0,第=0页,align(4)
    init_array:> flash_BANK0_SEC0,第页=0,align(4)
    .switch:> flash_BANK0_SEC0,第=0页,align(4)
    .const:> flash_BANK0_SEC0,第=0页,align(4)
    重置:>重置,页面=0,类型= DSECT /*未使用,*/

    stack:> RAMM1,第=1页
    数据:> RAMLS0LS1,第=1页
    .bss:> RAMLS0LS1,第= 1页
    sysmem:> RAMGS2,第=1页




    TI.ramfunc

    -l sfra_F32_TMO_eabi.lib
    }
    堡垒

    }负载= flash_BANK0_SEC6,
    RUN = RAMGS0GS1,
    load_start (ramfunctsLoadStart),
    load_size (ramfunctsLoadSize),
    load_end (ramfunctsLoadEnd),
    run_start (运行启动),
    run_size (ramfunctsRunSize),
    run_end (运行环境),
    页面=0,对齐(4)

    SFRA_F32_Data:> RAMLS0LS1,对齐=64,第=1页

    FPUMATHTables:> FLASH _BANK0_SEC11,第=0页

    刮擦板:> RAMLS0LS1,第= 1页
    .bss_CLA:> RAMLS0LS1,第= 1页
    controlVariables:> RAMLS0LS1,第=1页

    .const_CLA:负载= flash_Bank1_SEC8_9_10,
    RUN = RAMLS2LS3LS4LS5,
    run_start (ClA1ConstRunStart),
    load_start (ClA1ConstLoadStart),
    load_size (Cla1ConstLoadSize),
    页面= 0




    等码功能
    骰子
    }负载= flash_Bank1_SEC8_9_10,
    RUN = RAMLS2LS3LS4LS5,
    load_start (isrcodefunctionsLoadStart),
    load_size (isrcodefunctionsLoadSize),
    load_end (isrcodefunctionsLoadEnd),
    run_start (isrcodefunctionsRunStart),
    run_size (isrcodefunctionsRunSize),
    run_end (isrcodefunctsRunEnd),
    页面=0,对齐(4)

    /* CLA 特定部分*/
    Cla1Prog:load = flash_Bank1_SEC8_9_10,
    RUN = RAMLS2LS3LS4LS5,
    load_start (ClA1ProgLoadStart),
    run_start (ClA1ProgRunStart),
    load_size (Cla1ProgLoadSize),
    页面=0,对齐(4)


    }

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

    嗯...页面在浏览器中未正确打开。 它应该如下所示:

    此直接链接是否有效?

    https://software-dl.ti.com/ccs/esd/documents/troubleshooting_no-aet-resources.html

    [引用 userid="487996" url="~ë/support/icros/c2000-icroms-group/c2f/c2000-microms-forum/1067514/tms320f280049-where-to-put-break-point/3952562#3952562"]1. 我可以输入多少个小时/小时断点?

    它因设备而异,但我相信 F280049支持的设备比通常的28x 设备多。 可能是8?

    [引用 userid="487996" url="~/support/icles/c2000微控制器-组/c2000 /f/c2000微控制器-论坛/1067514/tms320f280049 -从哪里可以放置断点/3952562#3952562"]2.当设置断点时,我只需双倍单击软件的左侧,某些类型是硬件/软件的次数。 这让我感到困惑,是否有一份关于断点的文件?  [/引用]

    调试器将读取调试器内存映射,以确定内存是闪存还是 RAM。 如果闪烁,则会设置硬件断点。 如果是 RAM,它将设置 SW 断点。

    [引用 userid="487996" url="~ë/support/intrles/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1067514/tms320f280049-从何处到何处断点/3952562#3952562]I 在 运行(主程序员输入的要点)前进入调试模式时设置此点。 有什么区别?

    我相信调试器会期待 RAM 中的代码。 如果在将代码复制到 RAM 之前尝试设置断点,则可能是问题所在。 您是否能够共享项目+可执行文件? 如果您不想公开分享,请与我开始私人 E2E 对话。

    谢谢

    Ki

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

    您好,Ki,

    我无法打开网页,也 无法通过 CCS>资源管理器打开网页。

    我对整个项目进行压缩, 如何将其发送给您?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="487996" url="~/support/icros/c2000-icroms-group/c2f/c2000-iclms -forume/1067514/tms320f280049-where-to-pote-point/3952606#3952606"]我无法打开网页,也无法 通过 CCS >资源管理器打开网页。[/squote ]

    它必须与您的本地网络有一定的冲突。 您在公司网络上吗? 如果是,您可以尝试查看是否可以在不在公司网络上加载这些页面?

    [引用 userid="487996" url="~ë/support/naprogs/c2000-icroms-group/c2f/c2000-微控制器-forum/1067514/tms320f280049-where-to-pote-point/3952606#3952606"]我压缩整个项目, 如何将其发送给您?

    请与我开始私人 E2E 对话。

    谢谢

    Ki

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

    此问题已脱机解决。 有多个问题。 首先是在调试会话启动之前设置了一些断点,因此与任何调试环境都没有关联。 第二个原因是,正在使用的一个扩展启用了大量优化,这将影响源代码级调试可见性。