uic_internals
This is an old revision of the document!
−Table of Contents
UIC internals
This page documents the low-level aspects of the UIC.
Memory map
Start | End | Desc. |
---|---|---|
0x00000 | 0x00FFF | RAM |
0x01000 | 0x017FF | EEPROM |
0x04800 | 0x048FF | Option bytes |
0x05000 | 0x057FF | I/O |
0x06000 | 0x067FF | Boot ROM |
0x08000 | 0x17FFF | FLASH |
TODO: document stuff in EEPROM etc
Boot sequence
The 'boot ROM' at 0x6000 is just a slide of jumps to 0x8000. The real UIC bootloader is at 0x8000. The firmware binary is installed at 0x9000.
The bootloader checks the two bytes in EEPROM at 0x1010: if these bytes are set to A5 5A, the bootloader jumps to the firmware entry point at 0x9000, otherwise it enters firmware update mode and waits for incoming firmware data.
All the exception vectors at 0x8000 and up (except for reset) redirect to their equivalents at 0x9000 and up.
uic_internals.1729423735.txt.gz · Last modified: 2024/10/20 11:28 by arisotura