[En-Nut-Discussion] ethernut 3.1d running software in flash + bootloader

Andrea Cannavicci andrea.cannavicci at gmail.com
Thu May 17 15:39:03 CEST 2012

Good morning,

I need support for Ethernut 3.1d.

Usually I have a bootloader loaded in flash that download the application
from TFTP or Flash and load it in RAM, then jump to addres 0 and execute it.

My application now is becaming too large and doesn't fit in RAM. I need to
move the application in flash and run it in flash also.

I know and successfully tested compilation option to run application in
flash memory but in this way I have to flash it at flash address 0 and I
lose the chance to upgrade my application using a bootloader.

I'd like to have:

-          Bootloader stored in flash from flash start address (0x10 0000
0000 after remapping).

-          Application stored and running in flash from a base address that
I can decide (example 0x10 1000 0000 after remapping)

Until now we use bootloader to write application in Flash, when board start
the bootloader copy application in ram  and then branch with BX assembler
inline instruction to execute it.

I'd like to do something similar without copying the application in RAM but
starting it directly jumping to  the assigned address in flash, because (as
I said before) the application became to big and the RAM is too low to run

To maintain the possibility to upgrade the application using a bootloader
via ethernet I'd like also to jump back to bootloader when  the application
will receive a "software upgrade" command.

We try some example with in line assembler but without success.

Could someoone help me and send me same example or hint?

Thank you in advance for your precious help

Best regards

*Andrea Cannavicci*

More information about the En-Nut-Discussion mailing list