Bootloader? little confused here.

That is pretty good explanation zageek, but I have a couple of clarifications.

Some microcontrollers (including AVRs from Atmel) do in fact ship from the manufacturer with a bootloader already burned into the chip. A classic example is the USB capable AVRs such as the AT90USB162. It is true that none of the AVRs used by Arduino have a manufacturer installed bootloader.

A couple of reasons for not using a bootloader are:

  • Not having a bootloader provides extra room in flash (2K for Arduino). In fact most smaller AVRs (4 or 8K flash) do not even provide bootloader capability.
  • Production devices may not want a bootloader to prevent overwriting of the shipped application code. In these cases the lock bits are often also set to prevent unauthorised reading or writing of the flash image on the chip. Note that you can set the lock bits but yet still have a bootloader. This is useful in the environment where you want to do "controlled" upgrades to a production platform.