[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