度娘已经有很好的概述了点击跳转😄
😏但是不够详细深度,这里就个人认知做浅显的总结
本文适合移植并使用过一段时间FreeRTOS但是还不太了解的同学🐱
笼统的说
- FreeRTOS是一个小型的广泛被使用于嵌入式的一个五脏俱全的实时操作系统。
- task通过PCB(Process Control Block)控制
- 使用双向链表实现任务调度机制,从高优先级到低优先级遍历找到需要执行的task,若有多个task具有相同优先级则轮流执行。
- vTaskDelay()延时发生
将task移入等待链表(同时xTimeToWake(下次唤醒的节拍数) = xTicksToDelay(需要延时的节拍数)+xTickCount(系统当前节拍数))
在等待链表轮训tasks的xTimeToWake
当xTickCount(系统节拍数) >= xTimeToWake(当前任务唤醒节拍数),将task移入就绪链表- FreeRTOS提供了几种内存管理方式
移植
- 关注FreeRTOSConfig.h,
SVC_Handler、PendSV_Handler、SysTick_Handler在FreeRTOS中有实现- 对文件进行概要的介绍
文件名 作用 notes croutine.c 协程的实现文件 一般用不到 event_groupes.c
持续更新中…