The general (mis?)understanding is that "Upload Using Programmer" allows you to use all the flash space on the MCU, and removes the bootloader.
This sounds plausible, but unless you change the AVR bootloader fusebits it seems that this won't ever work that way...
It seems with all boards, the reported maximum size available for a HEX file does not change even if you use "Upload Using Programmer", which contradicts the most basic assumption about this feature, but makes perfect sense! Also, if the compiled HEX file goes over the maximum listed in "boards.txt", but below the MCU limit, the compile will fail, which is to be expected..In the case of Arduino, a custom entry in boards.txt could easily overcome the bootload-specific size limit, but I assume that new fuse bits also need to be set to remove the bootloader settings (size and reset vector)?
I assume that a hex file that arbitrarily exceeds the bootloader boundary (by raising the size limit in boards.txt, but not adjusting the bootloader settings) will crash horribly, or do all sorts of other odd things?Can anyone clarify that a compiled sketch will run correctly if the fusebits are re-set and the code uses near the maximum amount of flash? Or, any other observations with respect to the bootloader fusebits, HEX size, etc.