When I have flashed programmed microcontrollers in the past some have bootloader hex files and then you load the firmware hex file. Other microcontrollers don't have a bootloader hex file just a firmware hex file. Why do some microcontrollers need a bootloader? and is bootloaders and firmware files always have to be hex files or what other types can they be? The bootloader just opens up and closes the inputs,output, and ports of the microcontroller. The firmware is the application program. but sometimes the firmware can be the bootloader and the firmware. I'm confused