Cortex-M4 Core Registers

Cortex-M4 Core Registers

Goal: visualizing what happens to the Cortex-M4 core registers after reset


Here's what happens after the processor is reset:

    • General-purpose registers have unknown values in them
    • Stack pointer register is loaded with the value of the Initial SP value register located at 0x0000 (Vector Table)
    • Link register will have 0xFFFFFFFF
    • Program counter is loaded with the value of the Reset register located at 0x0004 (Vector Table)
      • In the case of STM32F4, Reset register contains the address of the Reset_Handler which is defined in startup_stm32f40xx.s
    • Reset_Handler performs microcontroller system setup, configures the system clock, eventually branches to __main (entry point of a program) in the C library. 
    • Vector Table is mapped to address 0 at reset (can be relocated in this range: 0x00000080 - 0x3FFFFF80)

 

Summary of registers and their roles in the procedure call standard (AAPCS).

posted @ 2015-09-08 23:25  IAmAProgrammer  阅读(701)  评论(0编辑  收藏  举报