> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]]
>  On Behalf Of Marge Coahran
> Sent: Monday, August 03, 2009 3:33 PM
> To: [email protected]
> Subject: [avr-chat] arv-gcc tools with assembler source code
> 
> I would appreciate some tips on building an avr program from 
> assembler source using the avr-gcc toolchain. My ultimate goal is to 
> create a .hex file that can be fed to avrdude.
> 
> Here is an excerpt from my makefile:
> -----------------------
> CC = avr-gcc
> OBJCOPY=avr-objcopy
> MCU = atmega16
> 
> # translate an .elf file into a .hex file
> .SUFFIXES: .elf .hex
> .elf.hex:
>          $(OBJCOPY) -O ihex -R .eeprom $< $@
> 
> # Link: create ELF output file from object files.
> %.elf: $(FILE).o
>          $(CC) -mmcu=$(MCU) $(FILE).o --output $@
> 
> # Assemble: create object file from assembler source file
> %.o: $(FILE).s
>       $(CC) -mmcu=$(MCU) -x assembler-with-cpp -c $(FILE).s
> ----------------------
> 
> The (current) difficulty is the command to create the .elf 
> file, for which 
> avr-gcc gives the following complaint:
> 
> /usr/lib/gcc/avr/4.3.2/../../../avr/lib/avr5/crtm16.o: In function 
> `__bad_interrupt':
> ../../../../crt1/gcrt1.S:193: undefined reference to `main'
> make: *** [mirror.elf] Error 1

However, to add to my previous post: The reason why you are getting the error 
above, is because you are not providing a main() function in your application. 
You need to define this function if you are going to use the toolchain.


_______________________________________________
AVR-chat mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-chat

Reply via email to