文档介绍:该【510 CortexM3异常和NVICPPT课件 】是由【读书百遍】上传分享,文档一共【47】页,该文档可以免费在线阅读,需要了解更多关于【510 CortexM3异常和NVICPPT课件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第六章 Cortex-M3异常与NVIC
补充知识
1、Cortex-M3异常与NVIC的关系
2、 Cortex-M3中异常与中断的区别
3、Cortex-M3异常和中断类型
4、中断优先级
5、中断执行次序 ——支持中断嵌套
6、外部中断和外部事件
7、EXTI寄存器
8、外部中断例程
补充知识:
1、中断源
外部中断:中断源是处理器内核外硬件电路中发生的突发事件,它们通过响应的芯片内部通道或外部引脚向处理器提出中断祈求,如定期器外部中断、ADC转换结束中断等。
内核中断:中断源是处理器内核正在执行的过程引起的异常状况,如当指令执行了“非法操作”、访问被禁的内存区间、因多种错误产生的fault以及不可屏蔽中断。
补充知识:
2、中断优先级及中断嵌套
中断嵌套遵照如下几种原则。
CPU同步接受到几种中断时,首先响应优先级最高的中断祈求。
正在进行的中断过程不能被新的同级或低优先级的中断祈求所中断。
正在进行的低优先级中断服务,能被高优先级中断祈求中断。
补充知识:
3、中断类型码与中断向量
处理器为了识别中断源,给每一种中断分派了一种编号,这就是中断类型码,它是识别中断源的唯一标志
处理器的中断管理系统将所有中断服务程序的入口地址集中寄存在内存的某个区域中,从而建立了一种中断服务程序的入口地址表,称为中断向量表。。
补充知识:
4、中断响应
中断响应是当处理器发既有中断祈求发生时,中止、保留目前程序的执行,转而执行中断处理程序的过程。
信息保留,处理器将保留某些重要的信息,如返回地址和某些特定寄存器值等信息,这部分重要是进行压栈操作,从这一点来讲几乎所有的处理器都是同样的,用压栈保护现场。同步处理器会获得的中断类型码,并根据获得的中断类型码查找中断向量表,获得中断服务程序的入口地址。
中断执行,执行对应功能的中断服务程序。
中断返回,当中断服务程序执行结束时,从堆栈中取出返回地址等多种信息,程序继续执行。
1、Cortex-M3异常与NVIC的关系
Cortex-M3在内核水平上搭载了一种异常响应系统,支持多种的系统异常和外部中断共256个中断,除了个别异常的优先级已经固定外,其他异常的优先级都是可编程的。
Cortex-M3的异常是由嵌套向量中断控制器NVIC(Nested Vectored Interrupt Controller)统一进行管理的。STM32采用了Cortex-M3内核,因此这部分仍旧保留使用,但STM32并没有使用Cortex-M3内核所有的东西,因此它的NVIC是cortex_m3内核的NVIC的子集。
2、Cortex-M3中异常与中断的区别
对于Cortex-M3核来讲
异常是指由于Cortex-M3内核的活动而打断了正在执行的程序,于Cortex-M3内核来说是“同步”的,如:当指令执行了“非法操作”、访问被禁的内存区间、因多种错误产生的fault以及不可屏蔽中断。
中断于Cortex-M3内核来说祈求信号来自Cortex-M3内核的外面,来自多种片上外设和外扩的外设,因此相对于Cortex-M3内核来说是“异步”的,如定期器外部中断。
3、Cortex-M3异常和中断类型
Cortex-M3异常类型见书P70
STM32F10xxx系列非互联网产品支持中断共为76个,包括16个内核中断和60个外部中断
见书P73
4、中断优先级
Cortex-M3的异常优先级可以被分组为抢占式优先级和响应优先级,有时又称为组优先权和子优先权。每个中断源都需要被指定这两种优先级,256级优先级被按位提成高、低两段,高段设置抢占式优先级,低段设置响应优先级。
Cortex-M3中定义了8个比特位用于设置中断源的优先级,见书P71
同步注意:优先级数值越小,优先级别反而越高
抢占式优先级和响应优先级的关系?
若中断A抢占优先级比B高,那么A的中断可以在B里面触发,忽视响应优先级;
中断A和B抢占优先级相似,则A、B的响应次序由响应优先级决定谁先响应;
以STM32为例,有16个可编程的优先等级,也就是可以4位来体现优先级,分组方式如下:
第0组:无抢占式优先级设置,所有4位用于指定响应优先级
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级
第4组:所有4位用于指定抢占式优先级