首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >avr : avr:51输入文件的结构“main.o”与avr输出不兼容

avr : avr:51输入文件的结构“main.o”与avr输出不兼容
EN

Stack Overflow用户
提问于 2018-07-24 18:08:30
回答 1查看 941关注 0票数 1

我试图在this Code/Guide上使用ATmega1284p

我遇到的问题是链接器无法工作,执行后会收到以下错误消息(代码为ATmega88构建得很好):

代码语言:javascript
复制
avr-ld  -o main.elf main.o  -g

avr-ld: avr:51 architecture of input file `main.o' is incompatible with avr output

For information

代码语言:javascript
复制
avr-gcc -v    
Using built-in specs.
    COLLECT_GCC=avr-gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/avr/4.8.2/lto-wrapper
    Target: avr
    Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-libssp --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=avr
    Thread model: single

完整构建说明

代码语言:javascript
复制
avr-gcc -std=c99 -g -Os -mmcu=atmega1284p -DF_CPU=8000000 -I. -DUART_BAUDRATE=57600 -Wstrict-prototypes -Wextra -ffunction-sections -fdata-sections -Wl,-gc-sections -o main.o -o main.o *.c 
avr-ld  -o main.elf main.o  -g
avr-objcopy -j .text -j .data -O ihex main.o main.hex
avr-size -C --mcu=atmega1284p main.elf

avr-objdump输出main.o

代码语言:javascript
复制
avr-objdump -f main.o

main.o:     Dateiformat elf32-avr
Architektur: avr:51, Flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
Startadresse 0x00000000
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 16:52:44

有一个解决办法可以强制avr-ld使用链接脚本。

解决办法

如果avr给出了错误:

avr-ld: avr:51 architecture of input file 'main.o' is incompatible with avr output

您必须使用选项-m添加所需的体系结构,例如:

代码语言:javascript
复制
avr-ld  -o main.elf main.o  -g -mavr51

如果这不起作用,您将得到以下错误:

代码语言:javascript
复制
avr-ld: cannot open linker script file ldscripts/avr51.xn: No such file or directory

必须强制使用正确的链接脚本和-T选项:

代码语言:javascript
复制
avr-ld  -o main.elf main.o  -g -mavr51 -T /usr/lib/avr/ldscripts/avr51.xn

链接器应该能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51505057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档