cortex M内核优先级设置
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内核优先级设置相关推荐
- linux线程调度函数,Linux调度策略及线程优先级设置
Linux内核的三种调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务.一旦占用cpu则一直运行.一直运行直到有更高优先级任务到达或自己放弃 3, ...
- 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表
文章目录 什么是系统调用? 为什么要用系统调用? 系统调用是怎么工作的? 如何使用系统调用? _syscall*()是什么? errno是什么? 调用性能问题 Linux系统调用列表 进程控制 文件系 ...
- Linux 线程优先级设置(内含C语言版线程创建、绑定CPU和优先级设置代码)
参考链接: https://blog.csdn.net/wushuomin/article/details/80051295 //详细讲解pthread_create 函数 https://blog. ...
- c语言怎么设置cpu优先级,线程优先级,设置,setPriority()方法
package seday08.thread; /** * @author xingsir * 线程优先级 * 线程启动后纳入到线程调度,线程时刻处于被动获取CPU时间片而无法主动获取.我们可以通过调 ...
- i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核
i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核 概述 i. MX6UltraLite作为i.MX6系列的扩展,一系列高性能.超高效的处理器 ...
- 邮件发送类,支持HTML格式,支持优先级设置
www.chinacs.net 2002-5-9 中文C#技术站 邮件发送类,支持HTML格式,支持优先级设置.通过SOCKET类实现的 using System; using System.Te ...
- linux设置进程优先级,Linux线程属性及优先级设置
POSIX.1线程属性及优先级设置 By zieckey All Right Reserved 线程的属性由pthread_attr_t结构类型表示. 在使用pthread_attr_t之前,需要调用 ...
- Android线程优先级设置方法技巧
对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题, 比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编 ...
- Cortex M3内核架构
CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神是无限的. 1.ARMCortex-M3处理器 Cortex-M3处理器内核是单片机的中央处理单元( CPU). 完整的基于CM3的MCU ...
最新文章
- Qt OpenCV Win10环境配置
- 使用kubernetes的deployment进行RollingUpdate
- 绍中考能不能用计算机了,全国计算机二级考什么内容
- 一个支持Abort的BackgroundWorker
- rxjs里subscribe和tap的区别
- NOD32最新升级ID
- python实时数据流_python – 使用烧瓶web-app监控实时数据流
- IPv6终于要取代IPv4了!阿里云将全面提供IPv6服务
- PHP:打造一个无限极评论模块
- JS操作Cookie写入和读取实例代码
- 不借助第三方jar包实现文件上传
- PostgreSQL在何处处理 sql查询之六十三
- 云课堂智慧职教自动签到
- ue4创建c++类编译失败
- localstorage,sessionstorage,cookie
- R 语言读写数据编码格式
- 大数据产品研究 - Presto简介
- 银联商务MISPOS接口开发demo 需要调用POSINF.DLL
- aso优化重要ASO优化技巧大全,ASO标题优化技巧:实战案例解析
- HiPER 840负责均衡问题
热门文章
- 新手入门 keil MDK5 建立STM32工程
- Mtk Android 打包解包*.img
- vba代码编程800例_一组实用的VBA常用编程代码语句分享
- python-字符串常用方法、文件简单读写
- emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题 1
- 桥牌笔记:三个输墩压缩为一个
- 微信月活跃用户数6.97亿 全球十大消息应用第四
- VNC CentOS
- C++ socket编程
- 配置 Cisco ASA Static IP Addressing or DHCP for IPSec ××× Client