[En-Nut-Discussion] Bootloader linker script and startup

Hans Bacher hans at wack-engineering.de
Wed May 27 10:54:08 CEST 2009


I am trying to compile a Nut/OS project to work with Atmel's layer-based
bootloader: "Safe and Secure Bootloader Implementation" (application notes,

I am developing with Atmel's AT91SAM7X256-EK and I flashed the bootloader to
the board. Two sample programs are provided with the bootloader itself. One
example uses interrupt vector table remapping(??), the other one doesn't.
The bootloader works fine with both programs. Unfortunately the bootloader
and the sample applications have been developed using IAR compiler, and the
fact that both only compile with IAR Workbench compiler version 4.4x is even

The bootloader is programmed to flash memory at start address 0x00100000
(0x00000000), thus it is executed first when powering the board. The
bootloader region is 0x8000 bytes long, therefore the application flashed by
the bootloader starts at address 0x00108000.

Because IAR startup scripts and linker files differ quite a lot from their
Nut/OS correspondences, I do not know what to change within the
linker/startup script to get the Nut/OS application to run after being
flashed by the botloader. I have changed the rom start address in
at91sam7x256_rom.ld to 0x00008000, but apparently this doesn't suffice,
because the board freezes after exiting the bootloader trying to jump to the
Nut/OS application program.

Can anybody tell me what changes I have to make? Do I need this interrupt
vector remapping??

Thanks and regards,

Hans Bacher

__________ Hinweis von ESET Smart Security, Signaturdatenbank-Version 4108
(20090527) __________

E-Mail wurde gepruft mit ESET Smart Security.


More information about the En-Nut-Discussion mailing list