libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
vector.h File Reference

Definitions for handling vector tables. More...

Include dependency graph for vector.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  vector_table_t
 

Typedefs

typedef void(* vector_table_entry_t) (void)
 Type of an interrupt function. More...
 

Variables

unsigned _data_loadaddr
 
unsigned _data
 
unsigned _edata
 
unsigned _ebss
 
unsigned _stack
 
vector_table_t vector_table
 

Detailed Description

Definitions for handling vector tables.

This implements d0002_efm32_cortex-m3_reference_manual.pdf's figure 2.2 (from the EFM32 documentation at http://www.energymicro.com/downloads/datasheets), and was seen analogously in other ARM implementations' libopencm3 files.

The structure of the vector table is implemented independently of the system vector table starting at memory position 0x0, as it can be relocated to other memory locations too.

The exact size of a vector interrupt table depends on the number of interrupts IRQ_COUNT, which is defined per family.

Definition in file vector.h.

Typedef Documentation

◆ vector_table_entry_t

typedef void(* vector_table_entry_t) (void)

Type of an interrupt function.

Only used to avoid hard-to-read function pointers in the efm32_vector_table_t struct.

Definition at line 45 of file vector.h.

Variable Documentation

◆ _data

unsigned _data

Definition at line 65 of file vector.h.

Referenced by reset_handler().

◆ _data_loadaddr

unsigned _data_loadaddr
extern

Referenced by reset_handler().

◆ _ebss

unsigned _ebss

Definition at line 65 of file vector.h.

Referenced by reset_handler().

◆ _edata

unsigned _edata

Definition at line 65 of file vector.h.

Referenced by reset_handler().

◆ _stack

unsigned _stack

Definition at line 65 of file vector.h.

◆ vector_table

vector_table_t vector_table
extern

Definition at line 40 of file vector.c.