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.

[参考译文] TMS320F28388D:当 DATA/BSS 变大时、我的程序从调试器运行、但不从闪存运行

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/941685/tms320f28388d-when-data-bss-get-large-my-program-runs-from-the-debugger-but-not-from-flash

器件型号:TMS320F28388D

大家好、TI 和 TI 社区、

我注意到、当我的程序复杂性增加(文本/数据增加很多)时、它将不再从闪存开始、即使 Code Composer Studio 在运行闪存配置时没有问题。

我可以使用 LED_ex1_blinky 示例通过进行一些简单的更改来重现问题。

我在 TI 控制卡评估板上的 CPU1上运行。 我使用的是 CCS 10和 TI 编译器20.2.2。 但问题似乎与工具无关、我使用 CCS 9和编译器20.2.1复制了它

我更改链接器命令文件、使其合并 RAMLS0 - RAMLS4、因此我有更大的连续存储器供链接器放置.text、.bss 等 我将所有内容都放在这个 RAM 区域中、并且不会从编译或链接中收到警告。

然后、我只需声明一个全局变量、并在 Blinky 循环中对其进行写入。 如果我使这个全局变量占用0x1f6f 字、并使用 CCS 将程序加载到闪存中、我可以对电路板进行下电上电、它将从闪存开始、这可以通过闪烁的灯来证明。

如果我使全局变量大于一个字(0x1f70字)、它将从调试器进行编译、链接和运行。 但在下电上电时不会运行。

我怀疑我对链接器命令文件的修改不够充分、但我不知道我缺少什么。 相关文件已附加-我已将其扩展名更改为.txt、以满足上传 tool.e2e.ti.com/.../2063.led_5F00_ex1_5F00_blinky.ce2e.ti.com/.../2838x_5F00_FLASH_5F00_lnk_5F00_cpu1_5F00_cmd.txte2e.ti.com/.../1f6f_5F00_works_5F00_map.txte2e.ti.com/.../1f70_5F00_fails_5F00_map.txt 的要求

非常感谢您的帮助。

一切都很棒

镍氢电池

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

    Nicholas、您好!

    您可能需要在 code_start 中禁用 WD (在 f2838x_codestartbranch.asm 文件中将"WD_disable .set 0"更改为"WD_disable .set 1")、以确保在初始化变量时 WD 不会超时。

    如果您仍有问题、请尝试此操作并告知我们。

    此致、

    Vivek Singh

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

    那是可行的。 我可能永远不会想到这一点!

    谢谢 Vivek。

    镍氢电池