论坛元老
- 积分
- 4195
- 金钱
- 4195
- 注册时间
- 2019-9-4
- 在线时间
- 881 小时
|
发表于 2024-7-25 17:01:40
|
显示全部楼层
这个错误消息来自ARM编译器链的链接器(linker),特别是当使用Keil MDK-ARM或类似的工具时。错误L6985E表明链接器在尝试自动分配内存区域(section)时遇到了问题,特别是与名为spara.o的目标文件中的.ARM.__AT_0x0801E800段(section)有关。
这个段被标记为需要放置在特定的基地址(base address)0x0801e800,但是链接器的自动放置策略未能找到满足此条件的内存区域。为了解决这个问题,你需要在链接器的scatter文件中手动指定这个段的放置位置。
scatter文件(也称为分散加载描述文件)是一个文本文件,它描述了如何将代码和数据段放置在目标存储器映射中。为了手动放置.ARM.__AT_0x0801E800段,你需要:
打开你的scatter文件(通常这个文件具有.scf扩展名)。
创建一个新的执行区域(execution region)或修改现有的执行区域,以包含.ARM.__AT_0x0801E800段,并指定其起始地址为0x0801e800。
使用--no_autoat选项(或相应的设置,这取决于你使用的工具链和版本)来告诉链接器不要自动处理带有AT属性的段。
|
|