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:codestart 问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1317834/tms320f280039c-codestart-question

器件型号:TMS320F280039C
主题中讨论的其他器件:C2000WARE

大家好、

客户有问题需要您的帮助:

280039C 在个人引导加载程序的跳跃应用程序的过程中发现了问题。

将引导程序放在闪存的前4个扇区中、并将 APP 放在剩余的闪存中

如果应用的 codestart 被设定为0xAFFFE、引导将不能跳转、并且引导仿真将报告以下错误

然后可以成功地向前移动一个或多个地址位、我想询问具体的原因

此致、

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

    Ben、您好!

    之所以会发生此错误、是因为您将输入函数放置在闪存的末尾。 由于启用了预取模式、CPU 将尝试将超出该地址的值预取到无效的存储器空间、这会导致不可纠正的错误。  请参阅 器件 TRM 中的注释、在"闪存模块">"闪存读取接口">"预取模式(6.7.1.2)"下。 器件勘误表文档("存储器:预取有效存储器之外的内容")也对此进行了说明。

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

    尊敬的 Ibukun:

    我仍然不明白。 阅读本部分说明后、由于闪存的预取机制、通常不建议使用闪存的最后16个地址。 但为什么相同的配置能够在280025C 上成功跳转? 它同样被放置在倒数第二个地址位中。 比较这两个闪烁的配置、没有区别。  为什么可以在280039c 中将其放置在0xAFFFD 上?

    此致、

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

    Ben、

    似乎 存在某种边界条件会影响是否激活预取机制并触发错误。 无论如何、在 F28002x 和 F28003x 上、您都不应将可执行代码放入闪存的最后一行。 因此、C2000Ware 中提供的链接器命令文件(例如 device_support/f28003x/common/cmd/28003x_generic_flash_lnk.cmd)会出于此原因显式保留最后一行。

    此致、
    伊袋