![](https://img-blog.csdnimg.cn/a8ef02942b9f4c6abff1a4fb053dc70f.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
FreeRTOS
文章平均质量分 80
小白入门FreeTOS
`Free`
正在学习嵌入式的小白一枚
展开
-
【FreeRTOS学习】第12章 任务管理
FreeRTOS的任务可认为是一系列独立任务的集合。每个任务在自己独立的环境中运行。在任何时刻,只有一个任务能得到运行,由FreeRTOS调度器决定运行哪个任务。调度器会在合适的时候的启动、停止一个任务,宏观看上去所有的任务都在同时在执行。这其实就是任务的切换。任务切入/切出时保存上下文环境每个FreeRTOS任务都需要有自己的栈空间FreeRTOS中的任务是抢占式调度机制,也支持时间片轮转调度方式。原创 2023-07-28 15:19:05 · 299 阅读 · 1 评论 -
【FreeRTOS学习】第11章 FreeRTOS的启动流程
第一种我称之为万事俱备,只欠东风法。这种方法是在main函数中将硬件初始化,RTOS系统初始化,所有任务的创建这些都弄好,这个我称之为万事都已经准备好。最后只欠一道东风,即启动RTOS的调度器,开始多任务的调度。原创 2023-07-27 15:13:34 · 484 阅读 · 1 评论 -
【FreeRTOS学习】第10章 创建任务
static void AppTaskCreate(void) //启动任务函数: static void BSP_Init(void) //初始化外设函数 static void LED_Task(void * parameter) //任务主体函数 {while(1) {LED1_ON;/* 延时500个tick */ printf("LED_Task Running,LED1_ON\r\n");LED1_OFF;原创 2023-07-26 17:37:45 · 303 阅读 · 1 评论 -
【FreeRTOS学习】第9章 移植FreeRTOS到STM32
Source文件夹:最最最重要的文件夹,没有之一portblle文件夹:与编译器相关的文件,keil编译环境,使用RVDS文件夹MemMang文件夹:存放的是跟内存管理相关的文件Demo文件夹:各种开发平台的完整Demo,开发者可以方便的以此搭建出自己的项目,甚至直接使用。License文件夹:这里面只有一个许可文件“license.txt”,用FreeRTOS做产品的话就需要看看这个文件。FreeRTOS-Plus文件夹:包含的是第三方的产品。原创 2023-07-25 15:52:25 · 180 阅读 · 0 评论 -
【FreeRTOS学习】第8章 支持时间片
其实FreeRTOS的这种时间片功能不能说是真正意义的时间片,因为它不能随意的设置时间为多少个tick,而是默认一个tick,然后默认在每个tick中断周期中进行任务切换而已。原创 2023-07-24 16:12:42 · 370 阅读 · 0 评论 -
【FreeRTOS学习】第7章 任务延时列表的实现
在FreeRTOS中,有一个任务延时列表,实际上有两个,为了方便讲解原理,我们假装合并为一个,其实两个的作用是一样的。当任务需要延时的时候,则先将任务挂起,即先将任务从就绪列表删除,然后插入到任务延时列表,同时更新下一个任务的解锁时刻变量:xNextTaskUnblockTime的值。xNextTaskUnblockTime的值等于系统时基计数器的值xTickCount加上任务需要延时的值xTicksToDelay。原创 2023-07-24 14:32:34 · 133 阅读 · 0 评论 -
【FreeRTOS学习】第6章 支持多优先级
就绪列表pxReadyTasksLists[ configMAX_PRIORITIES ]是一个数组,数组里面存的是就绪任务的TCB(准确来说是TCB里面的xStateListItem节点)。原创 2023-07-24 11:18:35 · 69 阅读 · 0 评论 -
【FreeRTOS学习】第5章 空闲任务与阻塞延时的实现
在上一章节中,任务体内的延时使用的是软件延时,即还是让CPU空等来达到延时的效果。而使用RTOS的很大优势就是榨干CPU的性能,永远不能让它闲着。RTOS中的延时叫阻塞延时,即任务需要延时的时候,任务会放弃CPU的使用权,CPU可以去干其它的事情,当任务延时时间到,重新获取CPU使用权,任务继续运行,这样就充分地利用了CPU的资源,而不是干等着。如果没有其它任务可以运行,这个时候CPU就运行空闲任务。因为系统保证必须每时每刻都有一个可以运行的任务。原创 2023-07-21 17:59:28 · 326 阅读 · 1 评论 -
【FreeRTOS学习】第4章 临界段
临界段用一句话概括就是一段在执行的时候不能被中断的代码段。那么什么情况下临界段会被打断?一个是系统调度,还有一个就是外部中断。因此FreeRTOS对临界段的保护最终还是回到对中断的开和关的控制。原创 2023-07-21 16:33:36 · 194 阅读 · 1 评论 -
【FreeRTOS学习】第3章 任务
就绪列表实际上就是一个List_t类型的数组,数组的大小由决定最大任务优先级的宏configMAX_PRIORITIES决定,目前我们将configMAX_PRIORITIES在FreeRTOSConfig.h中默认定义为5,最大支持256个优先级。数组的下标对应了任务的优先级,同一优先级的任务统一插入到就绪列表的同一条链表中。调度器是操作系统的核心,其主要功能就是实现任务的切换,即从就绪列表里面找到优先级最高的任务,然后去执行该任务。原创 2023-07-18 15:42:11 · 170 阅读 · 1 评论 -
【FreeRTOS学习】第2章 数据结构、列表与列表项
链表根节点的数据结构在list.h中定义。原创 2023-07-12 15:33:06 · 161 阅读 · 1 评论 -
【FreeRTOS学习】第1章 简介&新建工程
FreeRTOS(Free Real-Time Operating System)是一个开源的实时操作系统内核,专为嵌入式系统和小型微控制器设计。它提供了一套轻量级的任务调度和管理机制,使开发者能够在资源有限的嵌入式环境中有效地进行实时任务处理。 以下是FreeRTOS的一些关键特点和功能:实时调度:FreeRTOS提供了可靠的实时任务调度,允许多个任务以优先级方式共享处理器时间。它使用基于优先级的抢占式调度算法,确保高优先级任务能够及时响应事件和中断。原创 2023-07-11 17:25:08 · 149 阅读 · 1 评论