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.
您好!
我在编译器手册中看到#pragma LOCATION 仅适用于 EABI。
在 COFF 项目中、是否有一种同样简单的方法可以找到特定地址处的符号? 例如、闪存扇区的最后两个字中的 CRC。
我目前唯一能想到的解决方案是使用目标地址和长度2定义 MEMORY 指令:
FLASHM :origin = 0x0BC000、length = 0x001FFE //片上闪存*/
FLASHM_CRC :origin = 0x0BDFFE,length = 0x000002 //片上闪存*
然后是一个 SECTION 指令、用于将变量定向到 FLASHM_CRC。 这是我唯一的选择吗?
谢谢你。
Kier、
您的方法应该起作用。 我们有关这方面的专家今天就已经发言,可以就明天是否有更好的办法来做这件事发表意见。
此致、
John
另一种选择是将 CRC 放置在其自己的段中、并使用 该段的 HIGH 位置说明符。
请参阅 《TMS320C28x 汇编语言工具 v20.12.0.STS 用户指南》中的第8.5.2.4节"使用高位置说明符控制放置"
您建议的方法是合理的。 我将建议另一种更易于实施和理解的方法。
在创建符号的 C 代码中,使用#pragma DATA_SECTION 的方式类似于...
#pragma DATA_SECTION(special_global_variable, "odd_section_name") int special_global_variable;
在链接器命令文件的 SECTIONS 指令部分,编写类似于...的内容。
odd_section_name > 0x0BDFFE
此代码会创建一个名为 ODD/SECTION 的输出段。 它由所有名为 ODD/SECTION _NAME 的输入段组成。 在本例中、只有一个这样的输入段。 它被分配给硬编码地址 0x0BDFFE。 有关本段中使用的术语的更多背景信息、请参阅文章 链接器命令文件入门的第一部分。
谢谢、此致、
乔治
谢谢 George。 我认为这会很好。