I am experimenting with an ATmega328P bootloader, and I created an Intel HEX (.hex) file with a program with an infinite loop in the beginning and with Optiboot code at the end of the hex file. (Code loaded into the chip is here: http://relliks.php5.cz/stackexchange/DUMP.bin.)
Then I disabled the BOOTRST
fuse and pressed the restart button on Arduino Uno R3, but the bootloader still blinks with the LED on digital port 13.
How is it possible, that the bootloader is executed after chip restart and BOOTRST
is disabled? My fuse settings are: Only SPIEN
and BODLEVEL0
are set.
I found that when I disable the BODLEVEL0
fuse, the bootloader turns off.
BODLEVEL0
is used to set the brown-out voltage and shouldn't affect bootloader start. Where is the issue?