大家好、
#pragma DATA_SECTION(Name,"myconstants");
const unsigned int Name[10] = {0,1,2,3,4,5,6,7,8,9};
myconstants : > FLASH_BANK0_SEC2,PAGE = 0, ALIGN(4)
根据客户的反馈和我的测试、上述代码适用于 F280049C 和 F28035:

但无法在 F280025C 上工作。
--
谢谢、此致
耶鲁
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 DATA_SECTION(Name,"myconstants");
const unsigned int Name[10] = {0,1,2,3,4,5,6,7,8,9};
myconstants : > FLASH_BANK0_SEC2,PAGE = 0, ALIGN(4)
根据客户的反馈和我的测试、上述代码适用于 F280049C 和 F28035:

但无法在 F280025C 上工作。
--
谢谢、此致
耶鲁
Ibukun,
无错误、无警告。 只需要将数组放置到指定的闪存地址。 我使用同一个演示(timer_ex1_cputimer)进行测试。 为 F28004x 和 F280052的项目分别将这些代码添加到 timer_ex1_cputters.c 和.cmd 文件后、我可以在 F28004x 的指定地址找到数组"名称"、但在 F28002x 上找不到。
以下是映射文件:
e2e.ti.com/.../6472.timer_5F00_ex1_5F00_cputimers.zip
它还展示了结果。
--
谢谢、此致
耶鲁
耶鲁大学
F28004x 程序已使用 COFF 格式编译、而 F28002x 程序使用较新的 EABI (ELF)格式。 使用 EABI 时、默认情况下会删除未直接引用或链接到的任何段、除非通过使用#pragma retain (`SECTIONNAME`)指令或将--retain 选项传递给链接器命令行来显式保留。 这在常规应用中不是必要的、因为一旦在代码中的其他位置有引用或链接、该段就会被保留。
您可以将 F28002x 程序的格式更改为较旧的 COFF 格式、或向代码中添加以下行:
/* Do not optimize out the myconstants section for testing purposes */
#pragma RETAIN(`myconstants`)
#pragma DATA_SECTION(Name, "myconstants")
const unsigned int Name[10] = {0,1,2,3,4,5,6,7,8,9};
有关如何将现有代码从 COFF 迁移到 EABI 的更多信息、请阅读《 C2000从 COFF 迁移到 EABI》。
此致、
Ibukun