Cortex M内核中
每个中断都有一个8位的优先级设置寄存器
这个8位的寄存器可以分为抢占优先级和子优先级两个部分(通过设置优先级组设置)

抢占优先级和子优先级有什么用?
举例说明:
有两个中断A、B
A的抢占优先级比B的高
当B发生中断,正在执行B的中断服务函数时
A发生了中断,这个时候,会跳转到A的中断服务函数
A的中断服务函数执行完毕后,再接着执行B的中断服务函数
这就是中断抢占

子优先级的作用是当两个中断的抢占优先级相同时,这两个中断同时发生(或者都被挂起的状态下)
子优先级高的先执行,低的暂时挂起,等子优先级高的执行完后再执行
由于抢占优先级一样,不会发生中断抢占

虽然这个是8位的寄存器,但是一般的单片机都不会使用全部8位
规定最少使用高3位(具体可以参考《Cortex-M4权威指南》)
LPC54606的优先级就只用了高3位(程序注释可能没有改)
而K60、K66、KV58、RT1052都是用了高4位

只用高3位的情况下
设置中断优先级组 0: 0个抢占优先级 8个子优先级
1: 2个抢占优先级 4个子优先级
2: 4个抢占优先级 2个子优先级
3: 8个抢占优先级 0个子优先级

只用高4位的情况下 0: 0个抢占优先级 16个子优先级
1: 2个抢占优先级 8个子优先级
2: 4个抢占优先级 4个子优先级
3: 8个抢占优先级 2个子优先级
4: 16个抢占优先级 0个子优先级

因为用的是高位 所以设置优先级分组时,需要用 优先级分组 = 0x07 - 序号

cortex M内核优先级设置相关推荐

  1. linux线程调度函数,Linux调度策略及线程优先级设置

    Linux内核的三种调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务.一旦占用cpu则一直运行.一直运行直到有更高优先级任务到达或自己放弃 3, ...

  2. 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表

    文章目录 什么是系统调用? 为什么要用系统调用? 系统调用是怎么工作的? 如何使用系统调用? _syscall*()是什么? errno是什么? 调用性能问题 Linux系统调用列表 进程控制 文件系 ...

  3. Linux 线程优先级设置(内含C语言版线程创建、绑定CPU和优先级设置代码)

    参考链接: https://blog.csdn.net/wushuomin/article/details/80051295 //详细讲解pthread_create 函数 https://blog. ...

  4. c语言怎么设置cpu优先级,线程优先级,设置,setPriority()方法

    package seday08.thread; /** * @author xingsir * 线程优先级 * 线程启动后纳入到线程调度,线程时刻处于被动获取CPU时间片而无法主动获取.我们可以通过调 ...

  5. i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核

    i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核 概述 i. MX6UltraLite作为i.MX6系列的扩展,一系列高性能.超高效的处理器 ...

  6. 邮件发送类,支持HTML格式,支持优先级设置

    www.chinacs.net  2002-5-9  中文C#技术站 邮件发送类,支持HTML格式,支持优先级设置.通过SOCKET类实现的 using System; using System.Te ...

  7. linux设置进程优先级,Linux线程属性及优先级设置

    POSIX.1线程属性及优先级设置 By zieckey All Right Reserved 线程的属性由pthread_attr_t结构类型表示. 在使用pthread_attr_t之前,需要调用 ...

  8. Android线程优先级设置方法技巧

    对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题, 比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编 ...

  9. Cortex M3内核架构

    CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神是无限的. 1.ARMCortex-M3处理器 Cortex-M3处理器内核是单片机的中央处理单元( CPU). 完整的基于CM3的MCU ...

最新文章

  1. Qt OpenCV Win10环境配置
  2. 使用kubernetes的deployment进行RollingUpdate
  3. 绍中考能不能用计算机了,全国计算机二级考什么内容
  4. 一个支持Abort的BackgroundWorker
  5. rxjs里subscribe和tap的区别
  6. NOD32最新升级ID
  7. python实时数据流_python – 使用烧瓶web-app监控实时数据流
  8. IPv6终于要取代IPv4了!阿里云将全面提供IPv6服务
  9. PHP:打造一个无限极评论模块
  10. JS操作Cookie写入和读取实例代码
  11. 不借助第三方jar包实现文件上传
  12. PostgreSQL在何处处理 sql查询之六十三
  13. 云课堂智慧职教自动签到
  14. ue4创建c++类编译失败
  15. localstorage,sessionstorage,cookie
  16. R 语言读写数据编码格式
  17. 大数据产品研究 - Presto简介
  18. 银联商务MISPOS接口开发demo 需要调用POSINF.DLL
  19. aso优化重要ASO优化技巧大全,ASO标题优化技巧:实战案例解析
  20. HiPER 840负责均衡问题

热门文章

  1. 新手入门 keil MDK5 建立STM32工程
  2. Mtk Android 打包解包*.img
  3. vba代码编程800例_一组实用的VBA常用编程代码语句分享
  4. python-字符串常用方法、文件简单读写
  5. emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题 1
  6. 桥牌笔记:三个输墩压缩为一个
  7. 微信月活跃用户数6.97亿 全球十大消息应用第四
  8. VNC CentOS
  9. C++ socket编程
  10. 配置 Cisco ASA Static IP Addressing or DHCP for IPSec ××× Client