avr单片机编程错误
Buildstarted24.6.2014at10:51:32avr-gcc-I"C:\WinAVR\avr\include"-mmcu=atmega16-Wall-gd...
Build started 24.6.2014 at 10:51:32
avr-gcc -I"C:\WinAVR\avr\include" -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT OUTPUT.o -MF dep/OUTPUT.o.d -c ../OUTPUT.c
avr-gcc -mmcu=atmega16 -Wl,-Map=OUTPUT.map OUTPUT.o -L"C:\WinAVR\lib" -o OUTPUT.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature OUTPUT.elf OUTPUT.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex OUTPUT.elf OUTPUT.eep || exit 0
/usr/bin/sh: /c/WinAVR/bin/avr-objcopy: Invalid argument
avr-objdump -h -S OUTPUT.elf > OUTPUT.lss
/usr/bin/sh: /c/WinAVR/bin/avr-objdump: Invalid argument
make: *** [OUTPUT.lss] Error 126
Build failed with 1 errors and 0 warnings...
#include<avr/io.h>//头文件。必须包含
#include<util/delay.h>//延时函数的头文件
int main(void)//注意这里函数的类型和参数类型
{
PORTB=0XFF;//初始化
DDRB=0XFF;//设置PB口为输出
while(1)
{
PORTB=0XFF;
_delay_ms(500);
PORTB=0X00;
_delay_ms(500);
}
}
这个程序应该没有问题啊,但是一编译就是上述错误,是配置有误么?谢谢 展开
avr-gcc -I"C:\WinAVR\avr\include" -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT OUTPUT.o -MF dep/OUTPUT.o.d -c ../OUTPUT.c
avr-gcc -mmcu=atmega16 -Wl,-Map=OUTPUT.map OUTPUT.o -L"C:\WinAVR\lib" -o OUTPUT.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature OUTPUT.elf OUTPUT.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex OUTPUT.elf OUTPUT.eep || exit 0
/usr/bin/sh: /c/WinAVR/bin/avr-objcopy: Invalid argument
avr-objdump -h -S OUTPUT.elf > OUTPUT.lss
/usr/bin/sh: /c/WinAVR/bin/avr-objdump: Invalid argument
make: *** [OUTPUT.lss] Error 126
Build failed with 1 errors and 0 warnings...
#include<avr/io.h>//头文件。必须包含
#include<util/delay.h>//延时函数的头文件
int main(void)//注意这里函数的类型和参数类型
{
PORTB=0XFF;//初始化
DDRB=0XFF;//设置PB口为输出
while(1)
{
PORTB=0XFF;
_delay_ms(500);
PORTB=0X00;
_delay_ms(500);
}
}
这个程序应该没有问题啊,但是一编译就是上述错误,是配置有误么?谢谢 展开
2个回答
展开全部
你的程序没问题,是makefile 有错。
这行:
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex OUTPUT.elf OUTPUT.eep || exit 0
--set-section-flags后,把等号改成空格:
--set-section-flags .eeprom="alloc,load"
如果还有错可追问。
这行:
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex OUTPUT.elf OUTPUT.eep || exit 0
--set-section-flags后,把等号改成空格:
--set-section-flags .eeprom="alloc,load"
如果还有错可追问。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询