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.

[参考译文] TMS320F28377D:关于".TI.ramfunc""F2837xD_sci_flash_kernel"

Guru**** 2538410 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/943278/tms320f28377d-about-the-ti-ramfunc-setting-in-f2837xd_sci_flash_kernels

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

您好!

F2837xD_sci_flash_kernels 将 CPU2程序代码的 RAM 区域.TI.ramfunc 设置为"M0 RAM"将不起作用、但"D0 RAM"将起作用。
由于 C2000Ware 的版本较旧(1.00.05.00)、我将其更改为最新版本(3.02.00.00)、因此它能够写入 CPU2侧。
我刚刚了解了新旧 F2837xD_sci_flash_kernels 之间的差异、CPU2中.TI.ramfunc 的区域分配给旧版本的 M0 RAM、分配给新版本的 D0 RAM。
但是、另一方面、一些 C2000Ware 样片使用 M0 RAM。 因此、我不知道它为什么不能用于 M0 RAM。

我想知道以下几点:

问题1:我无法将 M0 RAM 用作.TI.ramfunc?
问题2:串行引导时、为什么不能使用它?
问题3:我不能仅将其用于 CPU2?


此致、
H.U

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

    Hidenori、  

    我目前正在对此进行研究、并将很快返回给您。 您是否仅对 CPU2进行编程、或者是否也希望将 M0 RAM 与 CPU1配合使用? 此外、D0 RAM 是否用于其他需要将 M0 RAM 用于.TI.ramfunc 的项目?

    谢谢、

    Anu Biradar

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

    您好!

    请查看 TRM 中的第4.9.3.4节"保留 RAM 和闪存存储器映射"(https://www.ti.com/lit/ug/spruhm8h/spruhm8h.pdf)。

    如本节所述、M0/M1中有一些保留位置(CPU1和 CPU2的保留位置不同)。  我们需要确保内核未使用该空间、因此会更新为使用 Dx (我的笔记本电脑中未安装旧版本、目前无法检查旧的链接器 cmd)。

    谢谢、此致、

    Vamsi

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

    尊敬的 Anu Biradar:Vamsi、

    感谢你的答复。

    所有 M1 RAM 都用作 CPU1和 CPU2的数据区域、其中0x0400至0x077F 用作堆栈、0x0780至0x07FF 用作数据区域(注意:TI-RTOS 未使用)。
    程序代码的 RAM 区域当前被分配给 CPU 的 LS0和 LS1、以及 CLA 的 LS2。
    D0 RAM 仅用作.TI.ramfunc。
    不使用 M0/M1的保留区(引导 ROM)。 此外、不使用 TI-RTOS。

    此致、
    H.U

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

    Hidenori、

    好的、谢谢。  我看不到他们的使用方式有什么问题。  可能是堆栈溢出、因此对其进行了修改。

    谢谢、此致、
    Vamsi

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

    您好、Vamsi、

    使用 F2837xD_sci_flash_kernels 将 C2000器件提供的 blinky_dc_cpu01.TX 和 blinky_dc_cpu02.txt 加载到各自的内核中也存在相同的问题。
    当 F2837xD_sci_flash_kernels 将应用程序加载到 CPU2时、会发生此问题。
    CPU1侧工作正常。 是否仍然怀疑堆栈溢出?

    是否可以使用 blinky_dc_cpu01.TX 和 blinky_dc_cpu02.txt 来检查操作?

    此致、
    H.U

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

    Hidenori、

    您是否意味着在使用旧的 C2000Ware 时问题会出现、其中 TI.ramfunc 映射到 M0 RAM?

    何时使用最新的 C2000Ware 内容?

    请澄清。

    谢谢、此致、

    Vamsi

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

    您好、Vamsi、

    它出现在 C2000 Ware 的最新版本中。
    最新版本的 F2837xD_sci_flash_kernels 将 CPU2的 TI.ramfunc 区域分配给 D0RAM。
    因此需要将 TI.ramfunc 区域更改为 M0RAM 以重现此现象。

    此致、
    H.U

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

    Hidenori、

    感谢您的详细信息。

    我们的团队将进行检查并返回给您。

    谢谢、此致、

    Vamsi

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

    Hidenori、  

    通过执行以下步骤、我能够运行 blinky_dc_cpu01.txt 和 blinky_dc_cpu02.txt 文件、其中.TI.ramfunc 映射到 FLASH_programming_CPU2_RAM.cmd 中的 M0RAM:  

    1.在 CCS 中构建 F2837xD_sci_flash_kernels_cpu01、其中 SCI_boot_alternate 作为 F2837xD_sci_flash_kernels_cpu01.c 中 SCI_GetFunction ()的参数

    2.在 CCS 中构建 F2837xD_sci_flash_kernels_cpu02。

    3. 通过将 SW1位置1设置为0并将 SW1位置2设置为1、将 controlCARD 设置为 SCI 引导模式。

    4.连接到 CCS 中的 CPU1。 点击"Reset CPU"并将存储器位置0xD00设置为0x815A。

    5.在 CCS 中连接到 CPU2。 点击"Reset CPU"、然后点击"Resume"。 程序到达 Estop 后、再次单击"Resume"。

    6.点击 CCS 中 CPU1的"Resume"。

    7.在命令提示符下运行以下命令(请注意 CPU1需要备用内核文件):

    serial_flash_programr.exe -d f2837xD -k f2837xD_FW_upgrade_example\F2837xD_sci_flash_kernels_cpu01_alt.txt -a f2837xD_FW_upgrade_example\blinky_dc_cpu01.txt -b 9600 -p COM m f2837xD_FW_upgrade_example\F2837xD_sci_flash_kernels_cpu02.txt -n f2837xD_FW_upgrade_example\blinky_dc_cpu02.txt -v

    8.选择选项1 - DFU CPU1。 这将允许 blinky_dc_cpu01.txt 下载到闪存。

    9.选择选项13 -运行 CPU1和引导 CPU2 -并输入应用起点地址。 这将允许将 CPU2内核下载到 RAM

    10.选择选项2- DFU CPU2。  这将允许 blinky_dc_cpu02.txt 下载到闪存。

    11.选择选项15 -运行 CPU2 -并输入入口点地址。  

    希望这对您有所帮助!

    谢谢、

    Anu Biradar

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

    Hidenori、请参阅此问题(如果您尚未解决)。 它指明了当.TI.ramfunc 被映射到 RAMM0时发生此问题的原因。

    谢谢、

    Sira

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

    尊敬的 TI 团队:

    感谢您的支持。
    它在我的环境中工作正常、解决了问题。

    此致、
    H.U