I'm a newbie in the Atmel world and have started with an Arduino Leonardo board (ATmega32u4) for which I have built an application using the LUFA class library.
Now I want to include a firmware update function into my VisualBasic App on the PC to be able to do firmware updates from the Windows-PC via USB.
After searching forums and blogs there are still things that are not clear to me.
I hope someone can help me with some bootloader related questions:
1.) Which bootloader is initially flashed into the Leonardo Boards?
2.) Generally, is there a way to determine which bootloader is present in an AVR device?
3.) Some posts state that you need an ISP programmer to flash the bootloader. I guess that's only true when you have messed up the device and don't have access through USB any more.
My understanding is that as long as the device is not messed up somehow, avrdude or Arduino IDE can be used to flash a new bootloader via USB. Is this understanding correct?
4.) It is also said that AVR devices initially come with the Atmel DFU bootloader. LUFA comes with it's own DFU bootloader. Why would someone want to not use the Atmel DFU bootloader?
My assumption is that some do it because Atmel is closed source and LUFA is open source. Other reasons?
It would be great if someone could help me getting a better understanding on how things work in the AVR world.
Thanks in advance.