stm32 中断架构

1. 初步了解

  • stm32F4有两种CPU模式:特权模式和用户模式。当发生异常或中断时会进入到特权模式中
  • stm32F4有两个系统栈,一个是MSP,一个是PSP。CPU在用户模式中使用PSP作为栈,当发生异常时,会从异常向量表的起始位置读取4byte (MSP),作为特权模式的栈
  • stm32F4的中断架构分为:不可屏蔽异常和可屏蔽异常(将中断看作是一种特殊的异常),不可屏蔽异常是stm32F4的cpu core(cortex M4)决定,该core是ARM-V7M架构,在该架构中定义了NVIC(可嵌套的中断向量控制器),通过该控制器来分配其他的中断。
  • 关于NVIC:有91个可屏蔽的中断通道,16级可编程优先级
  • EXTI:外部中断控制器,可以trigger电平和边沿

2. 问题:

  • 异常发生时,NVIC是否有一些状态寄存器?NVIC具体是什么样的?
    • 在cortexM4中介绍:能够降低中断延时,电源管理控制
    • 寄存器:
      在这里插入图片描述
    • 查看Active Bit register:在ARMV7 B3.4.1中可以看到,当中断发生时该寄存器对应位置会active
    • NVIC作为ARMV7-M架构的一部分,主要用来管理中断(屏蔽,使能,状态,优先级等)
    • ICTR寄存器主要可以看到CPU一共包含多少中断(cortex M4 Table 6-2可以看到)

3. 如何使用

  • 中断优先级的机制是什么样的?
    • 分成两组:抢占优先级和响应优先级。抢占优先级有抢占的特权,共四组。响应优先级只能决定中断优先级,不能抢占。
    • 默认全部是枪战优先级0,即不具备抢占优先级能力。只具备响应优先级。那么默认的响应优先级如何确认?即中断向量表是怎么确认的?由硬件通道链接确认的吗?
  • 中断嵌套如何处理?相关机制是什么样的?[留待后面进行补充]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值