- 博客(28)
- 收藏
- 关注
原创 自己实现一个freertos(2)任务调度 1——最基本的TCB
本文探讨了FreeRTOS任务调度模块的核心设计,重点分析了任务控制块(TCB)的简化实现。TCB是任务调度的基础,需包含任务栈、优先级等关键信息。相比完整版TCB,最简版本仅需:栈顶指针(pxTopOfStack)、栈起始地址(pxStack)、两个链表节点(xStateListItem/xEventListItem)、优先级(uxPriority)和任务名称(pcTaskName)。这种精简设计支持基本的优先级调度和时间片轮转,在保证功能的前提下最大限度地减少了内存占用和复杂度,适用于资源受限的实时系统
2025-08-03 22:06:03
608
原创 自己实现一个freertos(1)链表
本文介绍了FreeRTOS操作系统的链表实现,重点分析了其作为任务调度核心机制的数据结构设计。文章首先指出FreeRTOS因其精简的代码量(约1万行)和丰富文档而易于学习,并强调通过实现内核来深入理解其特性。随后详细解析了FreeRTOS链表的核心组件:xLIST_ITEM节点结构体、xMINI_LIST_ITEM尾节点以及xLIST管理结构。文章还提供了链表操作的实现代码,包括初始化、插入和删除等关键函数,展示了如何通过这些链表操作实现任务控制块(TCB)的组织与调度。整个实现基于STM32F103ZET
2025-08-02 12:00:44
747
原创 代码优化指南(五)尽可能熟悉语言特性与实现
所有的程序最后都要以二进制指令的形式在硬件上运行(包括Java,C#这些运行在虚拟机上的语言,只不过虚拟机隐藏了这些细节),也就是说谁有最优的汇编指令谁就在同等情况下有更快的速度,更优有两个方面,第一指令数量更少,第二指令的效率更高(如寄存器直接自增的速度会明显快于取值自增写回)。当然汇编的好坏和编译器有关,但是本身高级代码的好坏也决定了最后优化出来的汇编指令的上限。
2024-09-09 21:11:53
1021
1
原创 代码优化指南(四)从内存模型说起
从我过往的软件的经历来看,至少我了解过的,大部分应用软件的核心就是IO和内存,当然,IO也是基于内存的,所以也可以认为软件的核心就是怎么和内存交互(我们这里不讨论操作系统,文件调度,编译器这一类基础软件),所有的逻辑都是基于内存执行的,也就是说内存是优化的一个重要方向,怎么样使用内存,怎么样用更少的内存,怎么样更高效的利用内存,更快速的利用内存。
2024-09-01 11:10:09
826
原创 代码优化指南(二)从什么地方对代码进行优化
我们将从内存和效率两个方面宏观的提出一些代码优化的可行建议。代码优化如刀尖跳舞,需要对每一个收益进行预测和计没有0成本的收益——C++设计哲学。
2024-08-27 15:43:17
932
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅