前导零计数

介绍:前导零计数(CLZ) 是处理器的硬件指令,不是软件算法,它能快速统计二进制数最高位开始的连续 0 的个数。这个指令是汇编指令,使用举例:CLZ r0, r1。表示将r1寄存器中的数据进行前导零计数,然后将结果放到r0中。

应用:FreeRTOS 利用前导零计数可以实现快速找到当前最高优先级的就绪任务。freertos是将内存中某个特定地址指向的32位数据放入到某个32位寄存器中,然后利用再使用前导零计数指令算出当前最高优先级的就绪任务的优先级。具体来说,freertos将那个32位数据的每一位对应一个优先级(比如 bit31 对应优先级31即最高优先级,bit0对应最低优先级,不可以反过来对应,这样优先级和位数对应关系为31-位数),然后某优先级有任务就绪就将对应位设为 1,无就绪任务将对应位设为 0,这样经过clz指令运算得到最高优先级的位数,然后再用31减去它就得到了就绪任务中的最高优先级。

相关推荐
Lzh编程小栈3 小时前
【嵌入式底层】SPI超透彻详解:通信原理、四线结构、四种模式、寄存器底层 + 面试全集
c语言·stm32·单片机·面试·职场和发展
水果里面有苹果3 小时前
28-DRV8825PWPR步进电机驱动器
单片机
Dr.kangder7 小时前
嵌入式面试总结(十九)——内存泄露
单片机·算法·面试·职场和发展·架构·硬件架构
萌新小白YXY9 小时前
SAE J1587/SAE J1708 协议笔记
笔记·单片机·嵌入式硬件
嘉子的秃头日记10 小时前
机械革命“自动修复”无法修复你的电脑
stm32·单片机·电脑
森旺电子10 小时前
电子负载使用介绍
单片机·嵌入式硬件
大爱编程♡10 小时前
STM32-SPI
stm32·单片机·嵌入式硬件
hsjiasb19 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
周洲08301 天前
STM32 GPIO 外部中断深度解析:边沿触发 / 电平触发、NVIC 优先级配置、中断嵌套实战
stm32·单片机·嵌入式硬件
LCG元1 天前
STM32F103 CAN 总线通信实战:标准库双机通信与过滤器配置精讲
stm32·单片机·嵌入式硬件