How does one make a bootloader? Can I still use things like interrupts in my code?
* There is a section called "self programming" in every AVR´s datasheet.
* There are a lot of threads here in the forum
* There is an ATMEL AppNote (AVR109 if i remember right)
The bootloader should NOT influence your application. You can uses any periferal like desired..
* you should be able to start the bootloader with an instruction via CAN
* The bootloader should check if there is a valid application programmed. If not, it should stay in an infinite loop in the bootloader
* Keep a hardware feature to start the bootloder (independent of application, in case that the application fails. Maybe if a pushbutton is pressed after powerUp)