2010-06-04 3 views
1

Инструкции в blinky.zip, gcc-section, Teensy ++ v.2. Makefile и blinky.c находятся в zip-файле. Я изменил blinky.c, указав F_CPU в начале, потому что не используя Makefile, пожалуйста, смотрите ниже. Так почему я получаю ошибки и как я могу скомпилировать C-файлы для чипа at90usb1286?AVR_GCC ошибки компиляции delay.h

$ avr-gcc -mmcu=atmega88 blinky.c 

In file included from blinky.c:28: 
/usr/local/lib/gcc/avr/4.2.2/../../../../avr/include/util/delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed" 
/tmp//ccB66ecl.o: In function `main': 
blinky.c:(.text+0x3e): undefined reference to `usb_init' 
/tmp//ccB66ecl.o: In function `morse_character': 
blinky.c:(.text+0x24c): undefined reference to `print_P' 
blinky.c:(.text+0x36e): undefined reference to `print_P' 
blinky.c:(.text+0x378): undefined reference to `usb_debug_putchar' 
blinky.c:(.text+0x37e): undefined reference to `print_P' 
blinky.c:(.text+0x386): undefined reference to `print_P' 
blinky.c:(.text+0x390): undefined reference to `usb_debug_putchar' 
blinky.c:(.text+0x394): undefined reference to `usb_debug_putchar' 
blinky.c:(.text+0x416): undefined reference to `print_P' 
blinky.c:(.text+0x4fa): undefined reference to `print_P' 
blinky.c:(.text+0x6f8): undefined reference to `print_P' 
/tmp//ccB66ecl.o: In function `morse_P': 
blinky.c:(.text+0x834): undefined reference to `print_P' 

ответ

0

Это ошибки связи. Вы могли бы сделать компилировать только (заметьте, что я добавил -c флаг):

avr-gcc -c -mmcu=atmega88 blinky.c 

Вы бы тогда связать, что с другими объектами для создания двоичного кода.

В качестве альтернативы, вы можете предоставить все исходные файлы в одной командной строке и компилятор будет компилировать и компоновать их:

avr-gcc -mmcu=atmega88 blinky.c print.c usb_debug_only.c 
+0

Что вы подразумеваете под «Вы бы тогда связать, что с другими объектами для создания двоичного файла. "? AFAIU программа должна быть в HEX, чтобы загрузить ее в чип Atmel. – otto

+0

@ user355926 - вы правы, программа должна быть в формате 'ihex' перед загрузкой. Но вам еще нужно связать программу, прежде чем вы сможете создать файл 'ihex'. –

+0

@R: Как вы его связываете? Я не смог найти ничего о 'ihex' в' $ man hexdump'. Как вы получаете шестнадцатеричный файл? – otto

Смежные вопросы