uic_internals
Table of Contents
UIC internals
This page documents the low-level aspects of the UIC.
General characteristics
The UIC is a STM8 microcontroller. It is likely a STM8L151R8.
It has 4KB of RAM, 2KB of EEPROM and 64KB of FLASH.
Memory map
Start | End | Desc. |
---|---|---|
0x00000 | 0x00FFF | RAM |
0x01000 | 0x017FF | EEPROM |
0x04800 | 0x048FF | Option bytes |
0x04900 | 0x04FFF | Misc. stuff |
0x05000 | 0x057FF | I/O |
0x06000 | 0x067FF | Boot ROM |
0x08000 | 0x17FFF | FLASH |
Unmapped memory regions are open bus.
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.txt · Last modified: 2024/10/20 11:35 by arisotura