欢迎来到军工软件开发人才培养基地——学到牛牛

什么是异常向量表?异常向量表的作用是什么?STM32如何使用异常向量表?

时间:2024-05-06 07:01:10 来源:学到牛牛

异常向量表(Exception Vector Table)是嵌入式系统中一个存储在内存中的数据结构,用于存储不同类型异常发生时,处理器跳转到特定的异常处理程序的地址。在 ARM Cortex-M 系列芯片中,异常向量表通常存储在 SRAM 或 Flash 中。

异常向量表的作用是为处理器提供了一种在发生异常时快速找到对应处理程序的方法,从而保证系统的稳定性和可靠性。当出现异常如中断、系统错误或者数据异常等情况时,处理器会自动根据异常向量表找到对应的异常处理程序,并跳转到该程序执行。因此,异常向量表是实现嵌入式系统中异常处理功能的重要组成部分。

 

STM32使用 ARM Cortex-M 内核,因此也采用了 ARM Cortex-M 异常向量表标准。在 STM32 中,异常向量表默认存储在 Flash 的起始位置 0x08000000,每个异常向量占用 4 字节。在程序开始运行时,处理器会将向量表复制到内存中的向量表寄存器 VTOR 中,以便后续引用。

 

STM32中可以通过修改 VTOR 寄存器的值来修改异常向量表的存储位置,从而实现在运行时动态更改异常处理程序。此外,开发者也可以通过定义 C 函数实现异常处理程序,并将其地址写入异常向量表中,以实现自定义的异常处理机制。