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.

[参考译文] 编译器/TMS320F280025C:elf &数据部分

Guru**** 2460850 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/960790/compiler-tms320f280025c-elf-data-section

器件型号:TMS320F280025C

工具/软件:TI C/C++编译器

您好!

我已将项目从 F280041移植到 F280025c

我已将项目从旧 COFF 更改为 ELF 格式。 但我在创建数据段时遇到了一个问题。

我在  特定的闪存存储器位置保留了一个变量"签名"。 但它在.map 文件中不可用。

我尝试过传统 COFF 的情况下、我可以在映射文件中看到变量。 但它不会以 ELF 格式出现在映射文件中、也不会将该变量存储在存储器位置中。 如何解决此问题

#define signature 0x12345678

#pragma DATA_SECTION (签名、"SignatureLoc");
const uint32 signature = signature;

谢谢  

Nikhil

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

    程序中不得引用变量 signature。  为 EABI 编译时、会删除程序未使用的所有变量和函数。  使用#pragma RETAIN 告知编译器保留程序未引用的变量或函数。  有关所有详细信息、 请在 C28x 编译器手册中搜索 标题 为 RETAIN Pragma 的子章节。

    谢谢、此致、

    乔治

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

    您好!

    我在使用 EABI 时遇到全局变量初始化问题。 如何解决这个问题、我是否需要为全局变量初始化执行任何设置?

    谢谢

    Nikhil

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

    [引用 user="nik"]使用 EABI 时,我遇到全局变量初始化问题

    出了什么问题?  您到底是如何看到这种不良行为的?  您期望什么呢?

    为了正确处理全局变量的初始化、您通常会链接-rom_model 选项。  其他所有内容都将自动发生。  有关详细信息、 请在 C28x 编译器手册中搜索 标题为 "系统初始化"的子章节。  重点介绍与 EABI 相关的器件。 忽略与 COFF ABI 相关的器件。

    谢谢、此致、

    乔治

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

    您好!

    我遇到了一个奇怪的问题。 运行5到10分钟后、代码将进入非法 ISR。

    对于传统 COFF 也是如此。 但不使用 EABI?

    我的堆栈大小为0x200。 我是否需要使用 EABI 增大堆栈大小?

    或者问题是其他问题吗?

    谢谢

    Nikhil

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

    间歇性行为,如...

    [引用 user="nik"]在运行5到10分钟的代码后,ISR 将变为非法。

    (笑声) 通常不是由编译器中的问题引起的。   

    您需要进一步缩小问题的可能原因。  为了获得相关帮助、我建议您在 C2000器件论坛中开始新的主题。 或者、如果您愿意、我可以将此主题通知这些专家。

    谢谢、此致、

    乔治