微型OS源码详解系列
文章平均质量分 91
对freeRTOS等微型操作系统源码的解析
skaiuijing
这个作者很懒,什么都没留下…
展开
-
stm32f1移植FreeRTOS及问题解决
版本是2022.12版本,移植rtos过程中踩了很多坑,靠着笔者对rtos内核的理解反复调试,最后成功移植。原创 2024-05-11 23:36:57 · 826 阅读 · 2 评论 -
微型操作系统内核源码详解系列一:rtos内核源码概论篇(以freertos为例)
笔者在学习os的过程中,接触过linux这样的操作系统,也接触过minirtos,freertos,rt-thread这样的微型操作系统,操作系统的原理让人倍感好奇,在学习过一段时间的rtos后,笔者尝试实现了freertos的内核。因为有大量关于freertos内核的资料,笔者用了一个月的时间完成了内核的实现,所以更了这个系列的博客,希望大家能跟着我的博客,一起手敲一个freertos内核。原创 2024-05-19 12:44:47 · 825 阅读 · 2 评论 -
微型操作系统内核源码详解系列二:数据结构和对象篇(以freertos为例)
补充学习FreeRTOS内核源码所需要的基础知识和思想方法原创 2024-05-21 17:55:56 · 1129 阅读 · 1 评论 -
微型操作系统内核源码详解系列三(0):空间存储及内存管理篇(前置篇)
本篇将会补充关于FreeRTOS存储架构及内存管理的知识,以便于笔者更好的认识堆,栈,内存分配这些术语。说实话,笔者认为理解一个os并非易事,希望读者在面对大量概念和术语时有一定的耐心,能够花一点时间去理解这些抽象的知识。原创 2024-05-24 11:53:58 · 776 阅读 · 0 评论 -
微型操作系统内核源码详解系列三(1):任务及切换篇(任务函数定义)
本篇笔者将会正式进入FreeRTOS这个微型操作系统最重要的一章:任务(线程)及切换。笔者会对每一个函数进行讲解,该篇预计有十个小节原创 2024-05-28 21:10:14 · 638 阅读 · 0 评论 -
微型操作系统内核源码详解系列三(2):任务及切换篇(任务函数定义)
本节笔者将会重点讲解prvInitialiseNewTask函数原创 2024-05-29 11:19:33 · 872 阅读 · 0 评论 -
微型操作系统内核源码详解系列三(3):任务及切换篇(任务函数定义)
本小节我们讨论prvAddNewTaskToReadyList函数原创 2024-05-29 21:14:18 · 388 阅读 · 0 评论 -
微型操作系统内核源码详解系列三(4):arm架构篇
从arm架构的角度看,RTOS通过SVC中断开启了第一个任务,随后PendSV中断进行任务的保存与切换,这就是FreeRTOS中的任务调度。原创 2024-06-02 17:17:07 · 587 阅读 · 0 评论 -
微型操作系统内核源码详解系列三(5):进程与线程
操作系统的基础知识原创 2024-06-06 18:13:43 · 837 阅读 · 0 评论 -
微型操作系统内核源码详解系列四(1):操作系统调度算法(linux0.11版本内核)
操作系统的调度器本质就是在进行选择和切换原创 2024-06-07 12:19:04 · 587 阅读 · 0 评论 -
微型操作系统内核源码详解系列四(2):操作系统调度算法(rt-thread内核)
总的来说,这种基于哈希思想的查表法应用十分广泛,采用空间换时间的策略,具有一定的学习价值,如果某些程序对查询的时间要求比较高,可以尝试用查表策略代替之前的遍历策略。原创 2024-06-07 18:45:57 · 937 阅读 · 0 评论 -
微型操作系统内核源码详解系列四(3):操作系统调度算法(FreeRTOS内核篇上)
-uxTopPriority,被设定为是代表最大优先级的数字,自减操作代表从就绪列表最后一个链表(优先级最高的链表)开始查找,直到找到任务链表不为空的优先级任务,那么这个任务肯定也是所有任务中优先级最大的任务,然后获取这个任务的TCB并更新pxCurrentTCB(切换的具体函数),最后更新uxTopReadyPriority的值。容笔者说一下个人看法,从c语言和数据结构算法的层面学习,只能说是舍本逐末,透过Freertos这个小型系统,窥见庞大的操作系统架构的一角,这才是我们学习的重点。原创 2024-06-12 23:05:18 · 948 阅读 · 0 评论 -
微型操作系统内核源码详解系列四(4):操作系统调度算法(FreeRTOS内核篇下)
它被宏定义为taskRECORD_READY_PRIORITY函数,这其实就是根据就绪任务的优先级,把变量uxTopReadyPriority相关的位置1,与上一篇的通用算法对任务的处理类似,每一个任务被添加到就绪列表时,它对应的位置1,进行延时等其他放弃cpu使用权的活动时,它被移除就绪列表,对应的位置0;这两种算法,一个是更新最高优先级的数字,另一个则是更新对应的位,其实这两个之间有一点细微的差别,就是在移除就绪列表的任务时通用算法不用更新,而指令算法要更新,至于原因,笔者已经在上一篇写了。原创 2024-06-13 16:12:17 · 772 阅读 · 0 评论 -
操作系统内核源码杂谈篇:临界区
临界资源,是指同一时刻只能由一个线程(linux下为进程)访问的资源,而临界区就是为了确保临界资源访问是单一数据流。原创 2024-07-17 20:02:52 · 291 阅读 · 0 评论 -
微型操作系统内核源码详解系列五(1):arm cortex m3架构
通过前面的12篇博客,笔者对FreeRTOS的内核进行了抽象,讲述了FreeRTOS内核源码是如何构成一个调度器的,相信读者已经对rtos的执行过程有了清晰的概念,既然核心思想已经阐述完整,那么让我们顺着主干部分一步步构建FreeRTOS内核。原创 2024-06-15 17:20:48 · 1006 阅读 · 0 评论 -
微型操作系统内核源码详解系列五(2):cm3下栈的初始化
这一篇让笔者介绍arm cortex m3架构下的堆栈初始化原创 2024-06-17 23:41:42 · 723 阅读 · 0 评论 -
微型操作系统内核源码详解系列五(3):cm3下调度的开启
运行在cm3上的FreeRTOS的任务调度器的开启原创 2024-06-21 22:31:12 · 745 阅读 · 0 评论 -
微型操作系统内核源码详解系列五(四):cm3下svc启动任务
经历了前面的文章的铺垫,一切都准备就绪,接下来我们将会在SVC中断服务函数中开启第一个任务。原创 2024-06-22 16:10:07 · 1023 阅读 · 1 评论 -
微型操作系统内核源码详解系列五(五):cm3下Pendsv切换任务上篇
PendSV中断原创 2024-06-23 12:32:22 · 1032 阅读 · 1 评论 -
微型操作系统内核源码详解系列五(六):Pendsv切换任务下篇
微型操作系统内核系列主线完结篇原创 2024-06-25 21:07:57 · 667 阅读 · 0 评论