Cortex-M3的中断优先级的分组方式最多可以有有8种,因为CM3强制规定:SubPriority至少要占一个位(如果没有该强制规定,那么CM3分组方式最多有9种)。
我们知道:STM32把指定中断优先级的寄存器的MSB4位有效,共有以下5种分组方式:
第0组方式:所有4位用于响应优先级
第1组方式:最高1位用于抢占式优先级,最低3位用于响应优先级
第2组方式:最高2位用于抢占式优先级,最低2位用于响应优先级
第3组方式:最高3位用于抢占式优先级,最低1位用于响应优先级
第4组方式:所有4位用于抢占式优先级
在MISC.H里面有:
#define NVIC_PriorityGroup_0 ((uint32_t)0x700) /* 0 bits for pre-emption priority
4 bits for subpriority */
#define NVIC_PriorityGroup_1 ((uint32_t)0x600) /* 1 bits for pre-emption priority
3 bits for subpriority */
#define NVIC_PriorityGroup_2 ((uint32_t)0x500) /* 2 bits for pre-emption priority
2 bits for subpriority */
#define NVIC_PriorityGroup_3 ((uint32_t)0x400) /* 3 bits for pre-emption priority
1 bits for subpriority */
#define NVIC_PriorityGroup_4 ((uint32_t)0x300) /* 4 bits for pre-emption priority
0 bits for subpriority */
我们发现:第4组方式是“所有4位用于抢占式优先级”,那么这是不是与"SubPriority至少要占一个位"相冲突呢?
答案:当然不冲突了!因为虽然STM32的"优先级配置寄存器"没有使用bit3、bit2、bit1、bit0,但是却允许从它们中分组(分组位置由应用程序中断及复位控制寄存器(AIRCR)的[10:8]决定)。
=========================
第0组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
第1组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
第2组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
第3组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
第4组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
关键字:Cortex-M3 中断优先级 分组方式
引用地址:
Cortex-M3的中断优先级的分组方式
推荐阅读最新更新时间:2024-03-16 15:03
CPU内存或GPU内存进行分组方式实战
在CPU+GPU协同计算中,CPU和GPU的计算能力不同,静态地给CPU和GPU划分任务会导致CPU和GPU计算不同步,导致严重的负载不均衡,为了实现CPU和GPU的负载均衡,需要对CPU和GPU不同的划分方法。把每个节点上的所有CPU看成一个设备,每块GPU卡看成一个设备,对集群节点上的所有CPU设备和GPU设备分别编号,每个节点上有M块GPU卡,N个节点上共有N个CPU设备,编号为1,2,…,N;N个节点上共有M*N个GPU设备,编号为1,2,…,M*N。 设备编号之后就可以对设备进行分组,根据算法的要求,有些任务不能细分,一个CPU设备或GPU设备上可用的内存空间可能不能满足计算的内存要求,需要多设备数据划分、共同计算,
[网络通信]
MSP430的中断优先级顺序是什么样的?
MSP430的中断分为3种:系统复位、不可屏蔽中断、可屏蔽中断。 (1)系统复位的中断向量为0xFFFE。 (2)不可屏蔽中断的中断向量为0xFFFC。响应不可屏蔽中断时,硬件自动将OFIE、NMIE、ACCVIE复位。软件首先判断中断源并复位中断标志,接着执行用户代码。退出中断之前需要置位OFIE、NMIE、ACCVIE,以便能够再次响应中断。需要特别注意点:置位OFIE、NMIE、ACCVIE后,必须立即退出中断相应程序,否则会再次触发中断,导致中断嵌套,从而导致堆栈溢出,致使程序执行结果的无法预料。 (3)可屏蔽中断的中断来源于具有中断能力的外围模块,包括看门狗定时器工作在定时器模式时溢出产生的中断。每一个中断都
[单片机]
采用ARM Cortex-M3的USB热电偶温度测量系统电路图
电路功能与优势 本电路显示如何在精密热电偶温度监控应用中使用精密模拟微控制器ADuCM360/ADuCM361。ADuCM360/ADuCM361集成双通道24位-型模数转换器(ADC)、双通道可编程电流源、12位数模转换器(DAC)、1.2 V内部基准电压源、ARM Cortex-M3内核、126 kB闪存、8 kB SRAM以及各种数字外设,例如UART、定时器、SPI和I2C接口等。 在本电路中,ADuCM360/ADuCM361连接到一个热电偶和一个100 铂电阻温度检测器(RTD)。RTD用于执行冷结补偿。 在源代码中,ADC采样速率选择4 Hz。当ADC输入可编程增益放大器(PGA)的增益配置为3
[单片机]
基于cortex-M3、ADXL345的重力感应遥控器的实现
已经是很久没有写文章了,因为没有时间,人家都说大四不考研,天天像过年,可我依旧没能有那份闲暇的时间。 现在几乎人人的手里都是一款安卓智能机这是我非常羡慕的,而我手里只有上学期用380元买的一台二手诺基亚N96,虽然也称得上智能机但是远远没有如今安卓智能的优秀,其中一个功能就是通过重力感应玩赛车游戏,我想这个大家都不陌生,只要把手机歪一歪斜一斜就可以控制赛车方向了,这个功能令桥哥好生羡慕嫉妒恨,可惜自己的手机不能玩,上周突来灵感何不自己做一个玩玩。正好上学期开始着手给侄子做的四轴飞行器的基板基本调试完成,核心的芯片就是一块M3微控器,一块三轴加速度传感器ADXL345,一块三轴数字陀螺仪。而要做一个简单的重力感应遥控器用M3结合AD
[单片机]
ARM技术的Cortex-M3微处理器测试方法研究与实现
0 引言 随着半导体技术的发展,集成电路制程工艺从深亚微米发展到纳米级,晶体管集成度的大幅提高使得芯片复杂度增加,单个芯片的功能越来越强。二十世纪90年代ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。采用ARM技术知识产权( IP 核)的微处理器,即ARM 微处理器,已遍及工业控制。消费类电子产 品。通信系统。网络系统。无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32 位RISC微处理器七成以上的市场份额。ARM 芯片的广泛应用和发展也给测试带来了挑战,集成电路测试一般采用实际速度下的功能测试,但半导体技术的发展使得测试开发工程资源按几何规律增长,自动测试 设备(ATE)的性能赶不上日益增加的器件I/O
[单片机]
AT89S51的中断允许与中断优先级的控制
实现中断允许控制和中断优先级控制分别由特殊功能寄存器区中的中断允许寄存器IE和中断优先级寄存器IP来实现的。下面介绍这两个特殊功能寄存器。 中断允许寄存器IE AT89S51的CPU对各中断源的开放或屏蔽,是由片内的中断允许寄存器IE控制的。IE的字节地址为A8H,可进行位寻址,其格式如下图所示。 中断允许寄存器IE对中断的开放和关闭实现两级控制。所谓两级控制,就是有一个总的开关中断控制位EA(IE.7位),当EA=O时,所有的中断请求被屏蔽,CPU对任何中断请求都不接受,因此称EA为系统中断允许总开关控制位;当EA=1时,CPU开放中断,但5个中断源的中断请求是否允许,还要由IE中的低5位所对应
[单片机]
Cortex-M3寄存器组
1、通用目的寄存器R0~R7 R0-R7 也被称为低组寄存器。所有指令都能访问它们。它们的字长全是 32 位,复位后的初始值是不可预料的。 2、通用目的寄存器 R8-R12 R8-R12 也被称为高组寄存器。这是因为只有很少的 16 位 Thumb 指令能访问它们, 32 位的thumb-2 指令则不受限制。它们也是 32 位字长,且复位后的初始值是不可预料的。 3、特殊功能寄存器 程序状态寄存器:APSR, IPSR, EPSR ---- 通过MRS/MSR 指令,这3 个PSRs 即可以单独访问,也可以组合访问(2 个组合,3 个组合都可以)。当使用三合一的方式访问时,应使用名字
[单片机]
ARM Cortex-M3 即插即用的跟踪仿真器
IAR Systems 在 Embedded World 上发布第一款支持 ARM Cortex-M3 的高速跟踪仿真器。这个即插即用的仿真器与 IAR Embedded Workbench 集成开发环境完全兼容,可以把应用下载到硬件开发板上直接调试,从而加快项目的开发进度。
使用 IAR J-Trace 非常简单,通过 USB 线与运行 Windows 操作系统的主机连接,并通过这个 USB 接口供电。此外,通过一个独立的 JTAG 接口,它可以被用作 JTAG 仿真器。
IAR J-Trace 结合了 ETM ( embedded trace macrocell ) 和嵌入式 ICE( incircuit
[嵌入式]