zoukankan      html  css  js  c++  java
  • 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 个谁的子优先级高了,如果子优先级也相同,就看它们的中断向量位置了。 


  • 相关阅读:
    codeforces C. Fixing Typos 解题报告
    codeforces B. The Fibonacci Segment 解题报告
    codeforces B. Color the Fence 解题报告
    codeforces B. Petya and Staircases 解题报告
    codeforces A. Sereja and Bottles 解题报告
    codeforces B. Levko and Permutation 解题报告
    codeforces B.Fence 解题报告
    tmp
    API 设计 POSIX File API
    分布式跟踪的一个流行标准是OpenTracing API,该标准的一个流行实现是Jaeger项目。
  • 原文地址:https://www.cnblogs.com/caiya/p/9275525.html
Copyright © 2011-2022 走看看