![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
FreeRTOS
文章平均质量分 96
根据2022年正点原子FreeRTOS视频整理。
花落指尖❀
想每天分享,但是精力有限,长时间断更,可能去拯救世界了……
每一分钟的坚持,都是为了生活。
想学尽天下习,问遍世间路。
一个想凭借自己活下去的00后,
一个想通过努力创造公平的年轻人。
没有做到最好的追求,不如不做!
对知识能够改变命运深信不疑
展开
-
【11】FreeRTOS的延时函数
函数描述相对延时绝对延时相对延时:指每次延时都是从执行函数vTaskDelay()开始,直到延时指定的时间结束(任务被阻塞的时间,到调用此函数开始的时间);绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按照一定频率运行的任务(整个任务执行的时间,从头到尾的时间)。[^1]上图中的为绝对延时时间(假如绝对延时时间为100ms,那么以下三部分之和为100ms),包括以下三部分:(1)为任务主体,也就是任务真正要做的工作;原创 2023-02-22 11:33:55 · 4190 阅读 · 0 评论 -
【10】FreeRTOS的任务相关API函数
由于函数太多,这里主要讲述API函数如何使用。可结合正点原子《FreeRTOS开发手册》第11章内容“FreeRTOS其他任务API函数”进行学习。函数描述获取任务优先级设置任务优先级获取系统中任务的数量获取所有任务状态信息获取指定单个的任务信息获取当前任务的任务句柄根据任务名获取该任务的任务句柄获取任务的任务栈历史剩余最小值(可根据历史最小值设置任务堆栈大小)获取任务状态以“表格”形式获取所有任务的信息获取任务的运行时间(统计任务运行总的时间)如果不清楚API函数如何使用还可在FreeRTOS官网。原创 2023-02-21 09:41:34 · 338 阅读 · 0 评论 -
【09】FreeRTOS的时间片调度
同等优先级任务轮流地享有相同的 CPU 时间(可设置), 叫时间片,在FreeRTOS中,一个时间片就等于SysTick 中断周期。在源码中,SysTick中断服务函数1ms中断一次,一个时间片就是1ms,滴答定时器SysTick的中断周期可以自己设置。时间片调度运行举例:1、创建三个任务:Task1、Task2、Task32、Task1、Task2、Task3的优先级均为1;即3个任务同等优先级1、首先Task1运行完一个时间片后,切换至Task2运行(原创 2023-02-05 18:04:47 · 2686 阅读 · 2 评论 -
【08】FreeRTOS的任务调度
程序在运行过程中需要一定的栈空间来保存局部变量等一些信息。当有信息保存到栈中时, MCU 会自动更新 SP 指针(也就是R13主堆栈指针(MSP):它由 OS 内核、异常服务例程以及所有需要特权访问的应用程序代码来使用。进程堆栈指针(PSP):用于常规的应用程序代码(不处于异常服务例程中时)。在FreeRTOS中,中断使用MSP(主堆栈),中断以外使用PSP(进程堆栈)。在FreeRTOS中使用的是双堆栈指针,裸机无论是进程还是中断都是使用的MSP主堆栈指针。原创 2023-02-04 16:46:02 · 1667 阅读 · 3 评论 -
【07】FreeRTOS的列表和列表项
listFIRST_LIST_INTEGRITY_CHECK_VALUE /* 校验值 *//* 列表中的列表项数量 */ListItem_t * configLIST_VOLATILE pxIndex /* 用于遍历列表项的指针 */MiniListItem_t xListEnd /* 末尾列表项 */listSECOND_LIST_INTEGRITY_CHECK_VALUE /* 校验值 */} List_t;原创 2023-02-02 22:10:01 · 676 阅读 · 0 评论 -
【06】FreeRTOS临界段代码保护及调度器挂起与恢复
临界段代码也叫做临界区,是指那些必须完整运行不能被打断的代码段。适用的场合,例如1,外设:需严格按照时序初始化的外设:IIC、SPI等等;2,系统:系统自身需求(FreeRTOS源码很多地方用到了临界段代码保护,属于系统自身的需求3,用户:用户需求(用户想某些代码段不想被打断可以打断当前程序运行的情况:1、中断;2、任务调度(高优先级的任务可以抢占低优先级的任务如果不想被打断,则关闭中断。这样做有两个好处,1是关闭了中断,中断将不再打断正在运行的程序;原创 2023-01-31 15:53:51 · 1225 阅读 · 0 评论 -
【05】FreeRTOS的中断管理
简介:让CPU打断正常运行的程序,转而去处理紧急的事件(程序,ISR中断服务函数),就叫中断。中断执行机制,可简单概括为三步:1,中断请求:外设产生中断请求(GPIO外部中断、定时器中断等);2,响应中断:CPU停止执行当前程序,转而去执行中断处理程序(ISR);3,退出中断:执行完毕,返回被打断的程序处,继续往下执行。打断哪个点,就返回哪个点继续执行举例说明:小明在看视频的时候突然肚子疼,必须要上厕所,打断看视频的任务,去上厕所, 暂停视频播放,上完厕所后,继续从暂停处继续观看视频。原创 2023-01-30 22:11:17 · 4642 阅读 · 1 评论 -
【04】FreeRTOS的任务挂起与恢复
参数介绍:待挂起任务的任务句柄(想挂起哪个任务,就传入哪个任务的任务句柄此函数用于挂起任务,使用时需要将FreeRTOSCofig.h中的宏配置为1。无论优先级多高,被挂起的任务都将不再执行,直到任务被恢复。注意:当传入的参数为NULL,则代表挂起任务自身(当前正在运行的任务),和删除任务类似。任务中恢复挂起函数如下所示(在任务函数中被调用:待恢复任务的任务句柄。使用此函数需要将FreeRTOSConfig.h中的宏配置为1,和挂起任务需要配置的宏是同一个。注意:任务无论被。原创 2023-01-18 06:00:00 · 1649 阅读 · 2 评论 -
【03】FreeRTOS的任务创建(静态和动态)和删除
* 任务栈栈顶,必须为TCB的第一个成员 *//* 任务状态列表项 *//* 任务事件列表项 *//* 任务优先级,数值越大,优先级越大 *//* 任务栈起始地址 *//* 任务名字 */省略很多条件编译的成员} tskTCB;任务控制块是一个结构体,结构体存在很多的成员变量,就好比任务的身份证,保留了任务的一些特征。参数介绍:任务栈顶指针。必须为TCB的第一个成员,因为和任务切换、任务上下文保存、任务恢复都息息相关。:任务状态列表项。原创 2023-01-16 16:16:31 · 1833 阅读 · 0 评论 -
【02】FreeRTOS获取10.4.6源码+移植到STM32F429步骤
进入网址:FreeRTOS官网 点击DownLoad FreeRTOS,上图页面中两个按钮可以二选一 选择下载FreeRTOS,点击图中的DownLoad。 即可出现下图的下载图,如果多次下载不成功,可能需要挂梯子,这里我是用挂梯子才下载成功的。 最重要的是FreeRTOS的内核文件,移植相关都需要此文件夹。 打开FreeRTOS的内核文件会出现以下内容: Demo文件夹里面是FreeRTOS的演示例程,如下所示:原创 2022-12-21 16:30:47 · 1954 阅读 · 1 评论 -
【01】FreeRTOS基础知识
讲解FreeRTOS的任务调度器,以及四个状态之间的转化关系。原创 2022-12-07 10:57:55 · 1857 阅读 · 2 评论 -
02.移植FreeRTOS到STM32
⭐将学习FreeRTOS的过程记录为本系列文章,如果有错误,欢迎指正,大家一起进步🌈原创 2022-05-27 20:21:13 · 1071 阅读 · 2 评论 -
01.新建FreeRTOS工程 及 裸机系统和多任务系统介绍
⭐最近在学习FreeRTOS,将学习过程记录为本系列文章,如果有错误,欢迎指正,大家一起进步🌈目录1.新建FreeRTOS工程1.1.新建本地文件夹1.2.使用Keil新建工程1.3.在Keil创建文件分组1.4.添加文件1.5.编写main函数1.6.配置仿真时钟1.7.添加头文件路径2.裸机系统与多任务系统2.1.裸机系统2.2.多任务系统2.3.裸机系统与多任务系统的对比1.新建FreeRTOS工程1.1.新建本地文件夹...原创 2022-05-22 12:03:34 · 645 阅读 · 0 评论