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.

[参考译文] TMS320F28035:修复_c_int00 起始地址

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1593683/tms320f28035-fix-_c_int00-starting-address

器件型号: TMS320F28035

您好 Champ、

我要找我的客户。

对于 F28035、引导至闪存入口点为 0x3F 7FF6 至 0x3F 7FF7。 我们将 codestart 放置在 begin 段、然后分支到 RTS 库中的 boot._asm (lb _c_int00) 作为 codestartbranch。 编写了 asm。

存储在地址 0x3F 7FF6 和 0x3F 7FF7 处的内容应指向引导开始的地址。_asm、对吧?

如果是、用户想要修复_c_int00 起始地址。 如何做到这一点? 请参阅下面的博文。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/115413/_c_int00---can-this-be-specified-so-entry-point-is-always-at-a-specified-address

在这里、我委托 F28003x 工程进行测试。  我在.cmd 中命名了一个名为“test"的“的段、然后为它分配了一个地址。  

test:> FLASH_BANK0_SEC15(.cmd 段)

然后、在 codestartbranch.asm 文件中使用#pragma CODE_ssecion (_c_int00、“test")“)、如下所示。

image.png

但是、它编译时出错。

image.png

如何正确地将_c_int00 的起始地址固定在某个特定地址?  

请提供建议。

此致、

Johnny

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

    您好 Champ、

    对此有任何更新? 谢谢。

    Johnny

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

    您好 Johnny、

    您无法将 pragma 添加到汇编文件中、否则汇编器会抱怨、就像它所做的那样。  由于_c_int00 已经内置到运行时库中、也不能将其添加到另一个文件(除非重新编译库)。 最好的做法是使用链接器命令文件将包含_c_int00 的段置于所需位置、而不是将_c_int00 分配给另一个段测试和放置测试。

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

    您好 Alan、

    最好的做法是使用链接器命令文件将包含_c_int00 的段放置在您希望的位置、而不是将_c_int00 分配给另一段测试和放置测试。

    您是否会明确告诉我如何操作? 请举一个例子。

    我仍然无法 从映射文件中查看特定闪存地址处的_c_int00 地址修复。

    请帮帮我。 谢谢你。

    此致、

    Johnny  

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

    您好 Johnny、

    前面您提到过您放置的是`Ω 测试`如下所示:

    test:> FLASH_BANK0_SEC15

    使用正确的语法、而不是`test`、而是使用_c_int00 实际所在的段名:

    test{-l rts2800_ml_eabi.lib (.text)}> FLASH_BANK0_SEC15

    我使用了默认的 RTS 库名称和引导目标文件、但您的系统可能不同--您需要查看映射文件以确定将哪些库和文件提取到您的链接中、然后相应地放置它。   《C28x 汇编语言工具指南》介绍了此语法。  请C28x 汇编工具手册 中搜索标题为“段分配和放置“的子章节。

    -Alan