I have just created a bootloader for use in a series of products I develop. Its a little more complex then your standard bootloader as it had to comply with the systems communication protocols. One feature I would love to include in the ability to not only upgrade the application firmware but to also upload the bootloader firmware.
The safest method i thought would be to have 2 separate boot loader banks (each say 1-2K each), Then i could cycle between each bank, but i don't think you can change the BOOTZ fuses in the application, so i don't see this method working as i wouldn't be able to change the interrupt vector between each bank.
Does anyone have an example of a bootloader that sits in the application section but calls the write functions from the bootloader section? This way, if i needed to upgrade the main bootloader firmware (may not need to be done very often) i could have a second bootloader loaded into the main application section, with the read/write function located in a free section of the bootloader section.
Has anyone attempted to create a duel bank boot loader or any other solution to being able to upgrade the application and boot loader together?
Any links/information would be greatly appreciated.