User Tools

Site Tools


uic_internals

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki