第5章向量中断控制器.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第5章向量中断控制器.ppt》由会员分享,可在线阅读,更多相关《第5章向量中断控制器.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 向量中断控制器5.1 异常类型、优先级异常类型、优先级l5.1.1 异常类型异常类型lCortex-M3的每一个异常都有一个编号,编号的每一个异常都有一个编号,编号0对应正常工对应正常工作模式,编号作模式,编号1255对应各种异常;每一个异常都可分配对应各种异常;每一个异常都可分配一个优先级,优先级值越小,优先级别越高,优先级可以一个优先级,优先级值越小,优先级别越高,优先级可以为负。为负。l其中其中115号异常为系统异常,号异常为系统异常,16255都是外部中断异常;都是外部中断异常;在大部分情况下,开发应用中很少涉及到在大部分情况下,开发应用中很少涉及到1-15号异常的编号异常的编
2、程处理,我们更关注的是程处理,我们更关注的是16-255号的外部异常。号的外部异常。编号类型优先级 描述1复位-3复位,具有最高优先级2NMI-2不可屏蔽中断(来自外部NMI 输入脚)3硬件出错-1如果相应的异常没有被启用,那么都将触发该异常4存 储 管 理异常可编程 存储器管理异常,MPU访问违规或访问位置出错均会触发5总线异常可编程 总线系统出错,如取指,或取数据异常6使用异常可编程 程序错误导致的异常7-10保留N/AN/A11SVCall可编程 执行系统服务调用指令引发的异常12调 试 监 视器可编程 调试监控器异常,如断点,数据观察点,外部调试请求等13保留N/AN/A14PendS
3、V可编程 为系统设备开发的可悬挂请求15SysTick可编程 系统时基定时器16255 IRQ0239可编程 外部中断0239l对于编程开发来说,我们涉及最多的异常就是对于编程开发来说,我们涉及最多的异常就是IRQ,015号异常是系统级的异常,比较少用;另外,每一种异常都号异常是系统级的异常,比较少用;另外,每一种异常都有一个编号和一个异常优先级,异常的编号是固定的,但有一个编号和一个异常优先级,异常的编号是固定的,但是异常的优先级是可以编程的,当然优先级为负的例外。是异常的优先级是可以编程的,当然优先级为负的例外。优先级数值越小,优先级别越高。优先级数值越小,优先级别越高。l5.1.2 异常
4、优先级及优先级分组寄存器异常优先级及优先级分组寄存器lCortex-M3的优先级包括抢占优先级和子优先级。抢占优的优先级包括抢占优先级和子优先级。抢占优先级高的中断可以打断抢占优先级低的中断,抢占优先级先级高的中断可以打断抢占优先级低的中断,抢占优先级相同时,优先执行子优先级高的中断,但是不会打断正在相同时,优先执行子优先级高的中断,但是不会打断正在执行的同级别抢占优先级中断。优先级的数值越小,优先执行的同级别抢占优先级中断。优先级的数值越小,优先级别越高。级别越高。l应用程序中断及复位控制寄存器应用程序中断及复位控制寄存器SCB_AIRCR中中PRIGROUP位位段用来控制优先级的分组;应用
5、程序中断及复位控制寄存段用来控制优先级的分组;应用程序中断及复位控制寄存器器SCB_AIRCR:位段名称类型复位值描述31:16VECTKEYR/W-访问钥匙:任何对该寄存器的写操作,都必须同时把0 x05FA 写入此段,否则写操作被忽略。若读取此半字,则0 xFA0515ENDIANESSR-端模式设置。1大端(BE8),0小端。此值是在复位时确定的,不能更改。10:8PRIGROUPR/W0优先级分组2SYSRESETREQ W-请求芯片控制逻辑产生一次复位1VECTCLRACTIVEW-清零所有异常的活动状态信息。通常只在调试时用,或者在OS 从错误中恢复时用。0VECTRESETW-复
6、位CM3 处理器内核(调试逻辑除外),但是此复位不影响芯片上在内核以外的电路lPRIGROUP共占共占3位,值的范围是位,值的范围是0-7,假如,假如PRIGROUP值为值为5,则每一个中断对应的优先级寄存器的,则每一个中断对应的优先级寄存器的6、7三位表示对应三位表示对应中断的抢占优先级,其他位表示子优先级;每一个中断优中断的抢占优先级,其他位表示子优先级;每一个中断优先级寄存器占先级寄存器占8位。位。Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0抢占优先级子优先级l以以16级优先级为例,优先级之所以会只有级优先级为例,优先级之所以会只有16级,是因为在级,是因为在M3单片
7、机设计时,只使用了优先级寄存器单片机设计时,只使用了优先级寄存器NVIC_IPRx的高的高4位;如果此时位;如果此时PRIGROUP值为值为5,则优先级分组如下:,则优先级分组如下:l此时此时0-3位虽然没有使用,但是位虽然没有使用,但是PRIGROUP的值可以设为的值可以设为0-3之间的值,如果之间的值,如果PRIGROUP设为设为1,则优先级分组如下:,则优先级分组如下:l此时此时16级优先级都是抢占优先级,高优先级能打断所有低级优先级都是抢占优先级,高优先级能打断所有低优先级。优先级。Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0抢占优先级子优先级未使用子优先级Bit7
8、Bit6Bit5Bit4Bit3Bit2Bit1Bit0实际使用抢占优先级7:4未使用抢占优先级未使用子优先级5.2 中断向量表中断向量表l当有异常发生时,处理器需要确定对应异常的函数起始地当有异常发生时,处理器需要确定对应异常的函数起始地址,各个异常的函数起始地址都存储在一个向量表中,每址,各个异常的函数起始地址都存储在一个向量表中,每个地址占个地址占4字节,系统找到函数入口地址后就可调到异常字节,系统找到函数入口地址后就可调到异常代码处执行对应中断函数;为了可以动态重新分配中断,代码处执行对应中断函数;为了可以动态重新分配中断,CM3允许可编程设置向量表基址,通过设置向量表偏移寄允许可编程
9、设置向量表基址,通过设置向量表偏移寄存器存器存器存器VTOR即可设置向量表起始地址,当设置在即可设置向量表起始地址,当设置在RAM范围内时,即可实现动态修改中断函数地址。范围内时,即可实现动态修改中断函数地址。lVTOR寄存器:寄存器:l在应用开发中,每一个工程都有一个汇编的启动代码,这在应用开发中,每一个工程都有一个汇编的启动代码,这个启动代码里面已经包含了向量表,我们需要做的就是把个启动代码里面已经包含了向量表,我们需要做的就是把自己用到的中断函数写出实现即可;自己用到的中断函数写出实现即可;l中断函数的名字必须和汇编里面的名字一致;汇编内的中中断函数的名字必须和汇编里面的名字一致;汇编内
10、的中断函数入口顺序不能随意修改或者删除。断函数入口顺序不能随意修改或者删除。位段名称类型复位值描述29TBLBASER/W0向量表所在区域标志0:ROM 1:RAM28:7TBLOFFR/W0相对ROM或者RAM起始地址的偏移量5.3 NVIC寄存器描述寄存器描述l5.3.1 中断使能寄存器中断使能寄存器NVIC_ISER0/1lSTM32F103系列小、中、大容量单片机有系列小、中、大容量单片机有60个可屏蔽中断,个可屏蔽中断,NVIC_ISER0和和NVIC_ISER1两个两个32位寄存器,可控制位寄存器,可控制64个个可屏蔽中断的使能,可屏蔽中断的使能,NVIC_ISER0的的031位对
11、应位对应031号中号中断,断,NVIC_ISER1的的031位对应位对应3263号中断;号中断;1使能中断,使能中断,0失能中断。失能中断。NVIC_ISER寄存器只能写寄存器只能写1,写,写0无效;若要清无效;若要清除指定位为除指定位为0,需要使用,需要使用NVIC_ICER寄存器;寄存器;lSTM32F103系列小、中、大容量单片机系列小、中、大容量单片机059号号IRQ可屏蔽可屏蔽中断如下表:中断如下表:中断位置可屏蔽中断描述中断位置可屏蔽中断描述0WWDG_IRQChannel 30TIM4_IRQChannel 1PVD_IRQChannel 31I2C1_EV_IRQChannel
12、 2TAMPER_IRQChannel 32I2C1_ER_IRQChannel 3RTC_IRQChannel 33I2C2_EV_IRQChannel 4FLASH_IRQChannel 34I2C2_ER_IRQChannel 5RCC_IRQChannel 35SPI1_IRQChannel 6EXTI0_IRQChannel 36SPI2_IRQChannel 7EXTI1_IRQChannel 37USART1_IRQChannel 8EXTI2_IRQChannel 38USART2_IRQChannel 9EXTI3_IRQChannel 39USART3_IRQChannel
13、 10EXTI4_IRQChannel 40EXTI15_10_IRQChannel 11DMA1_Channel1_IRQChannel 41RTCAlarm_IRQChannel 12DMA1_Channel2_IRQChannel 42USBWakeUp_IRQChannel 13DMA1_Channel3_IRQChannel 43TIM8_BRK_IRQChannel 14DMA1_Channel4_IRQChannel 44TIM8_UP_IRQChannel 15DMA1_Channel5_IRQChannel 45TIM8_TRG_COM_IRQChannel 16DMA1_C
14、hannel6_IRQChannel 46TIM8_CC_IRQChannel 17DMA1_Channel7_IRQChannel 47ADC3_IRQChannel 18ADC1_2_IRQChannel 48FSMC_IRQChannel 19USB_HP_CAN_TX_IRQChannel 49SDIO_IRQChannel 20USB_LP_CAN_RX0_IRQChannel 50TIM5_IRQChannel 21CAN_RX1_IRQChannel 51SPI3_IRQChannel 22CAN_SCE_IRQChannel 52UART4_IRQChannel 23EXTI9
15、_5_IRQChannel 53UART5_IRQChannel 24TIM1_BRK_IRQChannel 54TIM6_IRQChannel 25TIM1_UP_IRQChannel 55TIM7_IRQChannel 26TIM1_TRG_COM_IRQChannel 56DMA2_Channel1_IRQChannel 27TIM1_CC_IRQChannel 57DMA2_Channel2_IRQChannel 28TIM2_IRQChannel 58DMA2_Channel3_IRQChannel 29TIM3_IRQChannel 59DMA2_Channel4_5_IRQCha
16、nnell5.3.2 中断清除寄存器中断清除寄存器NVIC_ICER0/1l在在NVIC_ICER0和和NVIC_ICER1寄存器中的位写入寄存器中的位写入1,则,则NVIC_ISER0和和NVIC_ISER1的对应的位被清除为的对应的位被清除为0,从而,从而屏蔽中断。屏蔽中断。NVIC_ICER0和和NVIC_ICER1各位写各位写1有效,写有效,写0无效。无效。l5.3.3 中断挂起寄存器中断挂起寄存器NVIC_ISPR0/1lNVIC_ISPR0的的031位对应位对应031号中断,号中断,NVIC_ISPR1的的031位对应位对应3263号中断;当设置号中断;当设置NVIC_ISPR的位
17、为的位为1时,时,对应中断被挂起,对应中断被挂起,CPU不执行中断处理任务,当用不执行中断处理任务,当用NVIC_ICPR清除对应位时,清除对应位时,CPU恢复执行中断处理任务;写恢复执行中断处理任务;写1有效,写有效,写0无效。无效。l5.3.4 中断挂起清除寄存器中断挂起清除寄存器NVIC_ICPR0/1l在在NVIC_ICPR0和和NVIC_ICPR1寄存器的位写入寄存器的位写入1,则,则NVIC_ISPR0和和NVIC_ISPR1的对应位被清除为的对应位被清除为0,从而取,从而取消中断挂起,恢复中断任务;写消中断挂起,恢复中断任务;写1有效,写有效,写0无效。无效。l5.3.5 中断激
18、活标志寄存器中断激活标志寄存器NVIC_IABR0/1lNVIC_IABR0的的031位对应位对应031号中断,号中断,NVIC_IABR1的的031位对应位对应3263号中断;号中断;NVIC_IABR0和和NVIC_IABR1标标记当前正在执行的中断,当中断执行完毕后,对应位由硬记当前正在执行的中断,当中断执行完毕后,对应位由硬件自动清件自动清0;l5.3.6 中断优先级控制寄存器组中断优先级控制寄存器组NVIC_IPRx(x=0.14)lNVIC_IPRx(x=0.14)是一个是一个32位寄存器,每一个寄存器分位寄存器,每一个寄存器分4个个8位寄存器,每一个位寄存器,每一个8位寄存器标记
19、一个对应编号的可位寄存器标记一个对应编号的可屏蔽中断的优先级,屏蔽中断的优先级,STM32F103系列单片机有系列单片机有60个可屏蔽个可屏蔽中断;中断;NVIC_IPR0按地址由低到高的顺序,内部按地址由低到高的顺序,内部4个字节个字节依次对应依次对应03号可屏蔽中断的优先级,依次类推,号可屏蔽中断的优先级,依次类推,NVIC_IPR14按地址由低到高的顺序,内部按地址由低到高的顺序,内部4个字节依次对个字节依次对应应5659号可屏蔽中断的优先级。号可屏蔽中断的优先级。5.4 NVIC库函数库函数lNVIC寄存器结构,寄存器结构,NVIC_TypeDeff,在文件,在文件“stm32f10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 向量 中断 控制器
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内