Cortex-M3支持大量的中断和异常,其中包括CM3固有的和芯片本身所特有的,具体有多少个中断得由芯片制造商决定。
向量表:
向量表其实是一个word(32位)型数组,其中每一项代表一种异常的起始地址,当有异常发生时,相应的异常处理函数将被执行。向量表是可以重定位的,重定位由NVIC来控制。复位时,重定位控制寄存器初始值为0,所以在复位时,向量表必须存放在0地址处。向量表定义如下:
复位时序:
向量表:
向量表其实是一个word(32位)型数组,其中每一项代表一种异常的起始地址,当有异常发生时,相应的异常处理函数将被执行。向量表是可以重定位的,重定位由NVIC来控制。复位时,重定位控制寄存器初始值为0,所以在复位时,向量表必须存放在0地址处。向量表定义如下:
复位时序:
当处理器复位之后,会从存储器中读取两个word的数据。地址0x00000000数据为SP(栈寄存器)初始值,地址0x00000004数据为程序的起始地址,也就是说复位之后,程序将从该处开始执行。例如: