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.

[参考译文] TMS320F280039C:程序无法在 CLA 中运行

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1436288/tms320f280039c-program-cannot-run-in-cla

器件型号:TMS320F280039C

工具与软件:

我需要在 CLA 中运行大约7KB 的代码、因此我在链接文件中重新分配了闪存和 RAM 区域、但程序在 CLA 内存初始化位置直接崩溃。 如何针对这种情况配置链接文件?

上图:程序 停止位置(由 syscfg 生成的代码)

上图:CLA 相关存储器和闪存分配

上图:syscfg 中的存储器分配

上图:链接文件中的 CLA 内存和闪存分配

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

    您好!

    您能确认您使用 EABI 进行编译吗? 要检查此设置、请右键点击工程>> Properties >> Build >> C2000 Compiler 并检查"Summary of flags Set"列表中的--abi=eabi 标志。 另一种测试此情况的方法是在第一个#if 内特意添加一个拼写错误、并确保抛出构建错误-这可以验证链接器是否正在进入预期的条件。  

    您是否还可以尝试改用将存储器分组为连续的 MEMORY 指令、而不是在段内部进行分组? 分配更大的存储器时、这是更好的方法(请参阅 此处的线程)。 为此、只需将两条 LSRAM 存储器指令合并为一条指令(也可将其重命名)、然后将 length 属性设为跨越到 第二个 LSRAM 的末尾。 然后、您可以使用新命名的 MEMORY 指令作为 Cla1Prog 的运行地址。 您也可以对闪存的两个区域执行相同的操作、并将该 MEMORY 指令用于 Cla1Prog 加载。

    此致、

    Delaney