- 博客(6)
- 收藏
- 关注
原创 SWAR高效统计
本文介绍了使用 SWAR(SIMD Within A Register)并行计算技术快速统计 uint8_t 类型二进制数中1的个数的方法。通过分治思想,代码逐步将每1位的计数合并为每2位、每4位,最终得到每8位的计数结果。文章详细解释了每一步的位运算过程,并提供了优化方案,减少了位运算次数。优化后的代码通过减法替代部分加法,进一步提升了效率。相比传统的逐位统计方法,该算法显著减少了计算量,适用于需要高效统计二进制数中1的个数的场景。
2025-05-22 01:13:08
244
原创 调度前夜:FreeRTOS中断失效现象分析
在 FreeRTOS 中,如果在调度器启动之前调用 API(如创建信号量),会导致受管理的中断被关闭,直到调度器启动后才会重新启用。这是因为 FreeRTOS 在调度器启动前会禁用中断,以防止系统在初始化期间因中断使用 API 而导致崩溃。源码分析显示,临界区的嵌套计数变量 uxCriticalNesting 初始值为 0xaaaaaaaa,而非 0,导致中断无法在退出临界区时重新启用。为避免此问题,建议将初始化代码放在一个任务中执行,待初始化完成后再创建或恢复其他任务。
2025-05-09 15:25:16
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人