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.

[参考译文] CCS/TMS320C5517:支持 C5517引导加载程序外部 EPROM

Guru**** 2583445 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/625613/ccs-tms320c5517-c5517-bootloader-external-eprom-support

器件型号:TMS320C5517

工具/软件:Code Composer Studio

你(们)好。

我正在使用 C5517器件、该器件通过 EMIF 连接到外部 EPROM (CS2 @ 0x400000-0x5ffff)。
该项目使用16位或非闪存引导模式的 DSP/BIOS 5.42.2.10。

由 TI hex55生成的工程二进制映像存储在 EPROM 的开头。

在项目中、我想定义位于 EPROM 上的初始化矢量、在应用程序中直接对其进行寻址。
作为测试、我定义了矢量字符、按如下方式对其进行初始化

#pragma DATA_SECTION (charcoord、".extdata");
uint16 charcoord[10]={0、1、2、3、4、5、6、7、8、9};

其中.extdata 是在地址0x500000外部 EPROM 处定义的段。

编译我从.map 文件中看到.extdata 段未初始化的工程:

extdata 0 [ 00a00000 ] 00500000 * 0000000a 未初始化
[00a00000 ] 0050000 * 0000000a Main.obj (.extdata)

此外、TI hex55实用程序会返回以下报告:
正在将..\Debug\ReporterNextTest.out 转换为二进制格式...
".\..\Debug\ReporterNextTest.out"=>.BIOS (引导加载)
".\..\Debug\ReporterNextTest.out"=>.switch (引导加载)
".\..\Debug\ReporterNextTest.out"=>.sysinit (引导加载)
".\..\Debug\ReporterNextTest.out"=>.trcdata (引导加载)
".\..\Debug\ReporterNextTest.out"=>.data (引导加载)
"..\..\Debug\ReporterNextTest.out"=>.gblinit (引导加载)
".\..\Debug\ReporterNextTest.out"=>.const (引导加载)
".\..\Debug\ReporterNextTest.out"=>.args (引导加载)
".\..\Debug\ReporterNextTest.out"=>.trace (引导加载)
".\..\Debug\ReporterNextTest.out"=>.text (引导加载)
"..\..\Debug\ReporterNextTest.out"=>.cinit (引导加载)
"..\..\Debug\ReporterNextTest.out"=>.hwi_vec (引导加载)
".\..\Debug\ReporterNextTest.out"=>.fastcode (引导加载)
完成。
其中包含 charchoord[10]的.extdata 段似乎被跳过。


是否有办法在项目中将矢量字符串内联为直接在 EPROM 上定义的值?
换言之、.extdata 段应在二进制映像上有效分配、并通过方法编程到 EPROM
TI JTAG"编程器"实用程序的功能?

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

    我已通知软件团队。 他们的反馈将在此处发布。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍在等待 E2E 回答:已过了太多时间。
    此问题非常紧急。
    请立即答复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您需要编写...

    const uint16 charcoord[10]={0、1、2、3、4、5、6、7、8、9};//添加 const 

    当您写入...

    [引用 user="Stefano Carlesi">#pragma DATA_SECTION (charcoord、".extdata");
    uint16 charcoord[10]={0、1、2、3、4、5、6、7、8、9};[/引述]

    编译器假定 charcoord 在执行期间会发生变化。  因此、它会将其放置在名为.extdata 的未初始化段中。  它会将记录放入.cinit 段中、在引导时处理这些初始值时、这些记录会复制到.extdata 中。  通过添加 const、编译器知道 charcoord 在执行期间不会改变。  因此、它使.extdata 成为一个初始化段、其中包含这些值。

    谢谢、此致、

    乔治