前导零计数

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

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

相关推荐
chao18984435 分钟前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
拾知_H5 小时前
STM32/Delay延时函数编程思路
stm32·单片机·时钟·延时
jllllyuz7 小时前
单相并网逆变器控制代码实现(STM32版)
stm32·单片机·嵌入式硬件
冉卓电子8 小时前
GD32C103RBT6 misc 内核驱动库极简解析
单片机·嵌入式硬件
yongui478348 小时前
MAX6675 K型热电偶温度采集程序(Keil环境)
单片机·嵌入式硬件
豆包公子8 小时前
AUTOSAR CP XCP 移植到裸机 MCU-实践篇
单片机·嵌入式硬件
三佛科技-134163842128 小时前
智能暖脚按摩器方案开发,智能暖脚按摩器MCU单片机主控芯片选择 (FT60F系列8位MCU)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
与仪共舞9 小时前
罗德与施瓦茨NRP 40T功率传感器
科技·单片机·目标检测
追兮兮10 小时前
告别手动搭建Keil工程!MCUQuickStart一键生成STM32/GD32工程模板,打开即编译
stm32·单片机·嵌入式硬件·gd32·keil5
山木嵌入式11 小时前
STM32串口不定长数据接收:超时解析法+DMA+空闲中断法(附完整代码)
stm32·单片机·串口·uart