[En-Nut-Discussion] eboot - bootloader under 4k

Bernard Fouché bernard.fouche at kuantic.com
Thu May 3 16:03:05 CEST 2007


So here it comes (well, if email attachments are allowed!) . You'll get 
2 directories:

- addcrc : the program that adds a header to an application to download. 
This header will have the CRC's.
- bootloader: the reworked 'appload' bootloader.

I wrote a README file and put it in 'bootloader'. As one may see, I work 
under Linux. It means:

- that I use a shell script (bootloader/mkbl) to fiddle the C files 
before compilation. This is how I got a lot of spare room to add 
features. This mechanism (or one tailored to other particular needs) can 
be used in other projects for different targets. For Windows users, I 
guess that some script in any language or a small C program doing the 
same job would be easy to write.

- 'addcrc' uses getopt with the long_options.

Feedback and improvements welcome.

  Bernard

Don Ingram wrote:
> Bernard Fouché wrote:
>   
>> FYI a while back I did change appload. Now I have a version that:
>>
>> - fits under 4k (4068 bytes with gcc 3.4.5 and avr-libc 1.4.5)
>> - has a .bss segment and a .data segment as usual apps (however .data is 
>> unused at the moment)
>> - flash only modified pages from a boot to another, sparing flash write 
>> cycles when rebooting often. If you reboot and get the same file, no 
>> flashing is done.
>> - read jumpers on port F to select if network info from EEPROM is to be 
>> read before booting and to select if network bootloading is to be done. 
>> That allows you to bootload once and then keep your current application 
>> if it has to be used in a place you can't bootload.
>> - be able to read and flash a usual binary file or use files that have 
>> CRC's prefixed at the beginning of the file thanks to an external C 
>> tool. ('addcrc'). This is to be sure that you flash a correct file (not 
>> relying on UDP checksums)
>>     
>
>
>   
>> - be aware of gateway issues (you can TFTP from a remote site if your 
>> firewall correctly manages TFTP)
>>     
>
> This I would love to see. I hacked appload to save some space to allow for 
> variants to be specified via EEPROM but the code still requires a local TFTP 
> server which is a bit of an inconvenient issue in my current application.
>
> Similarly dealing with CRC'd files would be great.
>
>
>
>   




More information about the En-Nut-Discussion mailing list