.\project\gd32_demo.axf: Error: L6985E: Unable to automatically place AT section core_main.o(.ARM.__at_0X68000000) with required base address 0x68000000. Please manually place in the scatter file using the --no_autoat option.
时间: 2024-04-09 17:28:36 浏览: 197
对于这个错误,可能是因为编译器无法自动将AT section放置在所需的基地址上。解决这个问题的方法是在scatter文件中手动将AT section(core_main.o(.ARM.__at_0X68000000))放置在指定的基地址(0x68000000)上,同时使用--no_autoat选项。
你可以按照以下步骤来解决这个问题:
1. 打开scatter文件,一般是以.scf或者.sct为后缀的文件。
2. 在文件中找到以AT section开头的部分,应该会有一行类似于:
```
AT 0x68000000 (NOLOAD) :
{
* (.ARM.__at_0X68000000)
} > ROM
```
3. 确保这个AT section的内容与你想要放置的对象文件(core_main.o)相对应。
4. 如果没有这个AT section的部分,你可以手动添加上述代码片段到合适的位置。
5. 保存scatter文件并重新编译你的项目。
这样应该可以解决这个错误。如果问题还存在,请提供更多的信息,我会尽力帮助你解决。
相关问题
..\OBJ\05_class_one.axf: Error: L6200E: Symbol kp multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol ki multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol kd multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol error multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol last_error multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol add_error multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol dy_error multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol pid_out multiply defined (by pid.o and main.o). Not enough information to list image symbols. Not enough information to list load addresses in the image map.
这些错误是由于在 'pid.o' 和 'main.o' 文件中同时定义了 'kp'、'ki'、'kd'、'error'、'last_error'、'add_error'、'dy_error' 和 'pid_out' 这些符号导致的。这种重复定义会导致链接时的冲突。要解决这个问题,你需要确保这些符号只在一个文件中定义。你可以检查一下这些文件,看看是否有重复定义的地方,并将其中一处定义删除或修改。
.\Objects\Target.axf: Error: L6985E: Unable to automatically place AT section system_asm32f3xx.o(.ARM.__at_0x20000000) with required base address 0x20000000. Please manually place in the scatter file using the --no_autoat option.
这个错误是由于编译器无法自动将AT section放置在0x20000000的基地址,需要手动在scatter文件中使用--no_autoat选项进行放置。AT section是指程序在编译时特别声明的一段数据,需要被放置在指定的地址上。请检查您的scatter文件和编译选项,确保正确地放置了AT section。如果您需要更详细的帮助,请提供更多的代码和信息。
阅读全文