• stm32中断优先级


    编 号 分配情况
    7 0:4 无抢先式优先级,16 个子优先级
    6 1:3 2 个抢先式优先级,8 个子优先级
    5 2:2 4 个抢先式优先级,4 个子优先级
    4 3:1 8 个抢先式优先级,2 个子优先级
    3/2/1/0 4:0 16 个抢先式优先级,无子优先级

    中断分组

    在一个系统中,通常只使用上面 5 种分配情况的一种,具体采用哪一种,需要在初始化
    时写入到一个 32 位寄存器 AIRC(Application Interrupt and Reset Control Register)
    的第[10:8]这 3 个位中。这 3 个 bit 位有专门的称呼:PRIGROUP。

    比如你将 0x05(即上表中的编号)写到 AIRC 的[10:8]中,那么也就规定了你的系统中只
    有 4 个抢先式优先级,相同的抢先式优先级下还可以有 4 个不同级别的子优先级。如下:

      0 号抢先优先级   0 号子优先级  
      1 号抢先优先级   1 号子优先级  
      2 号抢先优先级   2 号子优先级  
      3 号抢先优先级   3 号子优先级

    具体优先级的确定和嵌套规则。ARM cortex_m3(STM32)规定
    a/ 只能高抢先优先级的中断可以打断低抢先优先级的中断服务,构成中断嵌套。
    b/ 当 2(n)个相同抢先优先级的中断出现,它们之间不能构成中断嵌套,但 STM32 首先响应子优先级高的中断。
    c/ 当 2(n)个相同抢先优先级和相同子优先级的中断出现,STM32 首先响应中断通道所对应的中断向量地址低的那个中断(见 ROM0008,表 52)。
    具体一点:
    0 号抢先优先级的中断,可以打断任何中断抢先优先级为非 0 号的中断;1 号抢先优先级的中断,可以打断任何中断抢先优先级为 2、3、4 号的中断;……;构成中断嵌套。
    如果两个中断的抢先优先级相同,谁先出现,就先响应谁,不构成嵌套。如果一起出现(或挂在那里等待),就看它们 2 个谁的子优先级高了,如果子优先级也相同,就看它们的中断向量位置了。 


  • 相关阅读:
    php对接java平台 sha256 加密 签名验证不过
    iframe里面表单提交后如何跳出iframe重定向到另一个页面
    composer update install require 三个命令的的别
    PHP RabbitMQ实现简单的延迟队列
    CentOS 7 RPM 离线安装 MySQL 8
    解决SSH连接Linux主机Broken pipe问题
    Oracle查询连接数
    Oracle SYSAUX 表空间减肥
    Oracle URL的几种写法
    Oracle查询和修改序列
  • 原文地址:https://www.cnblogs.com/caiya/p/9275525.html
Copyright © 2020-2023  润新知