## 4.4 Other Notes

- The `devicecode` parameter is the device code used by the STK500 and is obtained from the software section (`avr061.zip`) of Atmel’s AVR061 application note available from http://www.atmel.com/dyn/resources/prod_documents/doc2525.pdf.
- Not all memory types will implement all instructions.
- AVR Fuse bits and Lock bits are implemented as a type of memory.
- Example memory types are: `flash`, `eeprom`, `fuse`, `lfuse` (low fuse), `hfuse` (high fuse), `efuse` (extended fuse), `signature`, `calibration`, `lock`.
- The memory type specified on the AVRDUDE command line must match one of the memory types defined for the specified chip.
- The `pwroff_after_write` flag causes AVRDUDE to attempt to power the device off and back on after an unsuccessful write to the affected memory area if VCC programmer pins are defined. If VCC pins are not defined for the programmer, a message indicating that the device needs a power-cycle is printed out. This flag was added to work around a problem with the at90s4433/2333’s; see the at90s4433 errata at:

  http://www.atmel.com/dyn/resources/prod_documents/doc1280.pdf

- The boot loader from application note AVR109 (and thus also the AVR Butterfly) does not support writing of fuse bits. Writing lock bits is supported, but is restricted to the boot lock bits (BLBxx). These are restrictions imposed by the underlying SPM instruction that is used to program the device from inside the boot loader. Note that programming the boot lock bits can result in a “shoot-into-your-foot” scenario as the only way to unprogram these bits is a chip erase, which will also erase the boot loader code.

  The boot loader implements the “chip erase” function by erasing the flash pages of the application section.

  Reading fuse and lock bits is fully supported.

  Note that due to the inability to write the fuse bits, the safemode functionality does not make sense for these boot loaders.