Mizar32/Flash memory

From Wikibooks, open books for an open world
Jump to navigation Jump to search

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 AT32UC3A0128/256/512 processor chip and responds from address 0x80000000.

The first 8KB (0x80000000-0x80001FFF) 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 0x80000000, 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 0x80020000 which contains the first word of the executable code for the eLua interpreter.

Alternatively, the flash memory from 0x80020000 can be programmed with emBLOD, the embedded boot loader, which loads the executable code from a file "autorun.bin" 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 0x80800000 - 0x808001FF, the "Flash user page", which keeps a configuration word for the USB DFU bootloader in the last word, but is otherwise free.

Further reading[edit | edit source]