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.

[参考译文] TMS320F28384S:CM -在 RAM 最佳模式下运行

Guru**** 2393725 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1282105/tms320f28384s-cm---running-in-ram-best-pattern

器件型号:TMS320F28384S

您好!
内核上有两个程序:一个引导加载程序和一个应用程序。

引导加载程序从 POR 开始、检查应用程序 CRC 并最终分支到该应用程序。
引导加载程序必须在 RAM 中运行、而应用程序必须在闪存中运行。

我想知道哪种方法是在 RAM 中运行引导加载程序的最佳方法。
从 RAM 引导、还是从闪存引导并将函数分配给 TI.ramfuncs?

由于存在 RAM 和闪存示例配置、我看到了以下不同之处。

1) RAM 示例配置。
-入口点、向量表和其他代码段都分配给 RAM 区域。
-未定义 TI.ramfuncs。
-在 RAM 中设置向量表偏移(Interrupt_setVectorTableOffset())。

在这种情况下、代码所在的位置必须从 RAM 中加载并运行? 何时完成这个复制?

2)闪存示例配置:
-入口点段和其他代码段分配在闪存中。
-有两个矢量表段,一个在闪存(.vftable)中,一个在 RAM (.vtable)中。
- TI.ramfuncs 已定义。
-在闪存中设置向量表偏移(Interrupt_setVectorTableOffset())。

在本例中、为了使引导加载程序在 RAM 中运行、我是否应该在 TI.ramfuncs 中分配所有函数并在 RAM 中设置矢量表偏移?

哪种模式最好?  

谢谢!
卡洛

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

    您好!
    有相关消息吗?

    这是在 RAM 中运行 CM 代码的最佳方式?

    例如、如果是 BOOTMODE_BOOT_TO_S0RAM、则代码会存储在 RAM 中、然后加载并执行?
    负载操作何时发生? 在 c_int00()内的某个点?

    或者、是不是最好使用 bootmode_boot_to_flash_SECTORx 并将所有符号复制到 TI.ramfuncs 段?

    谢谢!
    卡洛