[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] avr-objdump 2.11 gives illegal Intel Hex

From: Marek Michalkiewicz
Subject: Re: [avr-gcc-list] avr-objdump 2.11 gives illegal Intel Hex
Date: Thu, 13 Jun 2002 13:22:10 +0200 (CEST)


> I upgraded to the most recent uisp version from May 24 and now I'm having
> trouble reading certain Intel HEX files.  I think the intel hex file is
> the problem, but I'm not an expert in such things.  Uisp doesn't like the
> fact that the input file has one record with type 3.

Should be fixed in uisp CVS now - please test.
See http://savannah.gnu.org/cvs/?group=uisp .

BTW, you shouldn't need a special linker script for a boot loader - try
using the -Ttext linker option instead (avr-gcc -Wl,-Ttext,0x3c00).

Also, latest CVS avr-gcc has a nice option for boot loaders: -mshort-calls
forces use of rjmp/rcall on >8K devices.

Using this option makes smaller code, and avoids "lpm" instructions that
GCC can generate for "switch" statements (it would not work on ATmega128,
as the boot loader is above 64K).  Jump tables are now made from "rjmp"
instructions to jump to (as on <=8K devices) instead of 16-bit addresses
to fetch with "lpm" and then use in "ijmp".

The whole program may not be larger than 4K (no 8K wrap-around!), but
that should be plenty for a boot loader.  If the program is too big
(relative jumps/calls out of range), the linker will report errors.


avr-gcc-list at http://avr1.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]