这是本文档旧的修订版!
当中断来临时,系统将先保存现场作为端点(保存当前执行到的语句的地址),再跳入中断要执行函数,完成后又返回断点。 中断要执行函数不需要(也不应该)人为在代码中显式调用,系统会自动调用该函数。 中断可嵌套,高优先级中断可打断低优先级中断。
stm32的中断:
stm32f103有60个可屏蔽中断通道(中断源),包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设。 使用NVIC(nested vector interrupt controller,嵌套向量中断控制器)统一管理中断 —— 管理中断和分配优先级。 每个中断通道都有16个可编程优先级,还可以对优先级分组,进一步还能设置抢占优先级和响应优先级。 中断向量表:(中文手册p132,灰色部分是内核中断,通常用不到。白色部分是外设中断。) 中断地址列表:由于硬件限制,中断只能跳转到固定位置,而用户写的中断执行函数的地址是不固定的,故需要用终端地址作为中转。 存储用于跳转到用户写的中断执行函数的代码(由编译器自动写上),故中断地址列表又被称为中断向量表。