Hempl/Flash memory

Mizar32 comes in three versions with different amounts of flash memory and static RAM:


 * Model A: 512KB flash / 64KB SRAM / 32MB SDRAM
 * Model B: 256KB flash / 64KB SRAM / 32MB SDRAM
 * Model C: 128KB flash / 32KB SRAM / 32MB SDRAM

The flash memory is built into the  processor chip and responds from address 0x80000000.

The first 8KB contain the "Atmel AT32UC3 USB DFU bootloader", which is able to download and write new contents to the rest of the flash memory over the USB port. When the chip resets or powers up, it starts executing at, which is the USB DFU bootloader. This checks whether the user button is pressed and, if it is, gets ready to download and program the rest of the flash memory. If the button is not pressed, it jumps to address  which contains the first word of the executable code for the Hempl interpreter.

Alternatively, the flash memory from  can be programmed with emBLOD, the embedded boot loader, which loads the executable code from a file " " on the SD card into SDRAM and executes it there. In SDRAM code runs about 6 times slower that a program in flash memory but you can load and run programs up to 32MB in size.

If you have a JTAG programming device, you can program the entire 128/256/512KB by overwriting the USB DFU boot loader.

There is also a second, 512-byte area of flash at, the "Flash user page", which keeps a configuration word for the USB DFU bootloader in the last word, but is otherwise free.

=Further reading=
 * the AVR32 UC3 USB DFU Bootloader manual.