欢迎来到天天文库
浏览记录
ID:39498354
大小:1.38 MB
页数:44页
时间:2019-07-04
《《嵌套向量中断》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌套向量中断中断的概念CPU正在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。CPU处理事件的过程,称为CPU的中断响应过程。执行主程序主程序继续执行主程序中断请求中断响应执行中断处理程序中断返回对事件的整个处理过程,称为中断处理(或中断服务,ISR)。中断方式优点:大大地提高了CPU的工作效率。能够实现中断处理功能的部件称为中断系统能实现中断响应、中断处理(服务)、中断返回和中断屏蔽
2、。这是中断系统最基本的功能。能实现中断优先级管理。即当有多个中断源同时申请中断时,CPU能够优先响应最紧急的中断申请。能实现中断嵌套。即当CPU正在为优先级较低的中断源服务时,具有较高优先级的中断源提出中断申请,此时中断系统应当允许较高优先级的中断源中断较低优先级的中断源,待较高优先级的中断处理完成后,再接着处理较低优先级的中断。这种中断服务程序再被中断的过程称为中断嵌套。一般的中断系统应能够处理多级中断嵌套中断系统需要解决的问题:产生中断的请求源称为中断请求源。常见的中断源有:一般的I/O设备,如键盘、打印设备。数据通道中断源,如A
3、D等。实时时钟。故障源中断源向CPU提出的处理请求,称为中断请求(或中断申请)。进入中断→保护现场→中断处理恢复现场→中断返回首先,CPU应收到一个可靠的中断请求信号,且该中断请求信号应一直保持到它被响应为止。如果中断请求信号中途撤销,则CPU将不再响应。其次,在中断请求的同时,没有更高级的请求信号发生。如果它们同时发生,CPU将先处理优先级别较高的请求。第三,CPU内部应处在开中断(允许中断)状态。第四,CPU至少要在当前指令执行完成时才可能响应中断。异常/中断系统异常是Cortex-M3内核自带的一些异常,比如复位、总线Fault
4、和SysTick等等外设中断是指制造CPU的厂家加入的,比如串口、定时器中断等等异常和中断都可以“中断”正常执行的代码流区别在于:异常是Cortex-M3内核产生的“中断”信号,在执行指令或访问存储器时产生的,对Cortex-M3内核来说是“同步”的而中断是Cortex-M3内核外部(片上外设或外部中断信号)产生的“中断”信号中断请求信号一般来自内核的外部——片上外设或外扩的设备等,对Cortex-M3内核来说是“异步”的。NVIC(NestedVectoredInterruptController)Cortex-M3处理器在内核水平
5、上搭载了一个中断控制器——嵌套向量中断控制器NVIC功能:1.可嵌套中断支持所有异常都可被赋予不同的优先级,当前异常的优先级被存储在特殊功能寄存器PSRs的专用字段中,当一个新的异常发生时,硬件会自动进行优先级比较,若发现最新异常的优先级较高,处理器则会中断当前的服务例程(或者是普通程序),而响应新来的异常——即抢占了低优先级异常。NVIC功能2.向量中断支持当开始响应一个中断后,Cortex-M3会自动定位一张向量表,根据中断号从表中找出相应中断的入口地址,然后跳转过去执行3.动态优先级调整支持优先级在中断运行期间可以通过软件进行修
6、改。在中断服务例程执行完成前,中断是被锁定的,无法进行深度激活,避免了意外重入的风险。4.中断延迟大大缩短Cortex-M3为了缩短中断延迟,引入了多个新特性。包括中断现场的自动保护与恢复,“咬尾中断”和“晚到中断”机制的支持5中断可屏蔽通过设置BASEPRI、PRIMASK和FAULTMASK等寄存器,既可屏蔽优先级低于某个阈值的中断,也可以屏蔽所有中断,保证时间关键的任务能在最后期限前完成。异常类型Cortex-M3在内核水平上搭载了一个异常响应系统,支持11种系统异常和240个外部中断输入,如表2.9所列。其中,编号1~15对应
7、的是系统异常,大于等于16的则全是外部中断。除了个别异常有固定的优先级外,其它异常的优先级都是可编程的。系统异常和外部中断通过不同的寄存器组进行控制。系统异常是Cortex-M3内核支持的基本异常,与具体的芯片无关,而外部中断则是与芯片相关的,芯片厂商会根据需要和用途设计中断源数目(1-240)和优先级的位数。LPC1700系列Cortex-M3支持35个外部中断和32个中断优先级。异常向量表当有中断发生并得到响应时,处理器首先将定位其中断服务函数的入口地址,以便进行相应的处理。中断向量即是指中断服务程序的入口地址,在Cortex-M
8、3中,规定内存储器的最低一部分区域用来存放中断向量(共256个),称这一片内存区为向量表。缺省情况下,Cortex-M3中的向量表位于Flash空间的零地址处,表中每个向量占用4个字节中断的具体行为一个中断输入被认为有效
此文档下载收益归作者所有