User Tools

Site Tools


manual:ports:armcm3_stm32

This is an old revision of the document!


ARM Cortex-M3 for STM32

Vector table location

The bootloader itself occupies the location where normally the user program's vector table is located. The vector table in the user program therefore needs to be relocated. The bootloader implementation is such that the user program's vector table must be located at address 0x08002000 instead of the standard 0x08000000.

The vector table relocation can be achieved by changing the ROM start address in the linker descriptor file. Refer to the demo program for an example.

Checksum location

A 32-bit checksum value if programmed by the bootloader at the end of a programming session. Upon startup, the bootloader verifies the correctness of this checksum to determine if a present user program is present and can be started.

The user program must reserve space for this 32-bit checksum value. The bootloader programs this value at the end of the interrupt vector table. To reserve this space, simply enter one extra dummy entry into the interrupt vector table. This reserves space for the checksum at memory address 0x08000150. Refer to the demo program for an example.

Stackpointer initialization

manual/ports/armcm3_stm32.1322302265.txt.gz · Last modified: 2019/09/24 22:14 (external edit)