STM32 MCU Vector Table

What is vector table

  • Table of addresses or pointers
  • System exceptions -> address of exceptions handlers. Vector table can hold various exception handler address
  • 15 system exceptions + 240 interrupts. Vector includes all the exceptions including interrupts

Vector table for STM32F4 microcontroller. Refer the usermanual and understand about particular microcontroller series

Important points

  • ST or any vendor can’t change the addresss or poistion of the vector
  • Type of priority has two types
    • fixed
    • settable
  • some priority are already reserved by architecture
  • Lowest the number higher the priority
  • Address is already available for each interrupts or exceptions. For say if we introduced one exception to handle NMI or Watchdog then the address of the handler (Handler is nothing but c function and execute the particular interrupt or exception.). This handler should be available to the particular reserved address
  • Eg:
  • exception handler in vector table

Reset Handler

Reset Handler address start from 0x0000_0004 and vector microcontroller gets reset. it’s start from this address.

Whenever the processor or microcontroller resets, reset handler function sitting in that address will be executed.

All the interrupt and exception related handler will be available startup asm file

image

where reset address in the vector table is located at 0x0000_0004 and reset_hander is a function which handles the reset functions eg. setting stack pointers, init data segment and many more

This Reset handler is location at 0x0800_0264 program, when we see the location of reset_address that address pointer refers to the pointer of reset handler (reset handler may varry from controller to controller)

Thumb mode operation

As we the address which is showing in the expression window is 0x0800_0264 but in memory it is 265. Reason here is, That is exactly done by the compiler. that has something to do with T-bit of the processor program status register. The ARM Cortex M4 processor the compiler maintains evey

Startup ASM File info

  • .section .isr_vector -> sections where consists of all constants handlers and stores in the start of ROM address

Reference

image
image

Leave a Reply