FreeRTOS

FreeRTOS任务调度的三种方式:

抢占式调度

针对优先级不同的任务

时间片调度
  • 针对优先级相同的任务;

  • FreeRTOS中的一个时间片就等于SysTick(滴答定时器)中断周期(1ms);

协程式调度

后续将不再支持。

!NOTE

  1. 同等优先级任务,轮流执行;时间片流转;
  2. 一个时间片大小,取决于滴答定时器中断周期;
  3. 没有用完的时间片将不会再使用,会直接进入下个任务;下次执行该任务时还是按照一个时间片的时钟节拍运行;
四种任务状态
  1. 运行态:只能从就绪态进入该状态;
  2. 就绪态
  3. 阻塞态
  4. 挂起态:类似暂停,调用函数vTaskSuspend()进入挂起状态,需要调用解挂函数vTaskResume()才可以进入就绪状态;

!NOTE

  1. 仅就绪态可转变为运行态;
  2. 其他状态的任务想运行,就必须先转变为就绪态;
  3. FreeRTOS的四中状态中,除了运行态,其他三种任务状态的任务都有其对应的任务状态列表(链表);
任务状态列表
  1. 就绪列表:pxReadyTaskLists[x],其中x代表任务优先级数值;只有任务先挂载到就绪列表,任务才能进入到运行态;
  2. 阻塞列表:pxDelayedTaskList
  3. 挂起列表:xSuspendTaskList

FreeRTOS 移植

源码获取
  • 官网
  • 第三方开发板厂商
源码
  • include:FreeRTOS的头文件
  • portable:FreeRTOS的移植文件
  • croutine.c:协程相关文件按
  • event_groups.c:事件相关文件
  • list.c:列表相关文件
  • queue.c:队列相关文件
  • stream_buffer.c:流式缓冲区相关文件
  • task.c:任务相关文件
  • timers.c:软件定时器相关文件
portable文件夹

FreeRTOS操作系统归根到底是一个软件层面的东西,那FreeRTOS是如何跟硬件联系在一起的呢?portable文件里面的东西就是连接桥梁。

由于使用MDK开发(stm32),因此这里重点介绍其中的部分移植文件:

  • Keil:指向RVDS文件夹
  • RVDS:不同内核芯片的移植文件
  • MemMang:内存管理文件
移植
  • 移植准备:FreeRTOS源码

  • 基础工程:

  • 移植步骤:

  1. 添加FreeRTOS源码:将FreeRTOS源码添加至基础工程、头文件路径等;
  2. FreeRTOSConfig.h:添加FreeRTOSConfig.h配置文件;
  3. 修改SYSTEM文件:修改SYSTEM文件中的sys.cdelay.cusart.c
  4. 修改中断相关文件:修改Systick中断、SVC中断、PendSV中断;
  5. 添加应用程序:验证移植是否成功;
相关推荐
文火冰糖的硅基工坊10 天前
[硬件电路-150]:数字电路 - 数字电路与模拟电路的异同
嵌入式硬件·fpga开发·电路·运放·跨学科融合
文火冰糖的硅基工坊11 天前
[硬件电路-140]:模拟电路 - 信号处理电路 - 锁定放大器概述、工作原理、常见芯片、管脚定义
嵌入式硬件·架构·信号处理·电路·跨学科融合
文火冰糖的硅基工坊12 天前
[硬件电路-111]:滤波的分类:模拟滤波与数字滤波; 无源滤波与有源滤波;低通、带通、带阻、高通滤波;时域滤波与频域滤波;低价滤波与高阶滤波。
嵌入式硬件·架构·信号处理·电路·跨学科融合
文火冰糖的硅基工坊13 天前
[硬件电路-138]:模拟电路 - 什么是正电源?什么是负电源?集成运放为什么有VCC+和VCC-
单片机·嵌入式硬件·架构·电路·运放·跨学科融合
文火冰糖的硅基工坊13 天前
[硬件电路-123]:模拟电路 - 信号处理电路 - 常见的高速运放芯片、典型电路、电路实施注意事项
嵌入式硬件·架构·信号处理·电路·跨学科融合
tt55555555555514 天前
面经——电子电路技术知识详解
嵌入式硬件·电路
tt55555555555514 天前
电力系统分析学习笔记(二)- 标幺值计算与变压器建模
笔记·学习·电路
文火冰糖的硅基工坊14 天前
[硬件电路-124]:模拟电路 - 信号处理电路 - 测量系统的前端电路详解
前端·嵌入式硬件·fpga开发·架构·信号处理·电路
文火冰糖的硅基工坊14 天前
[硬件电路-112]:模拟电路 - 信号处理电路 - 二极管的应用 - 峰值检测电路与波形展示
嵌入式硬件·fpga开发·信号处理·电路
文火冰糖的硅基工坊20 天前
[硬件电路-97]:模拟器件 - 如何通过外部的闭环负反馈,让运算放大器从“暴脾气”、“愣头青”、情绪容易失控者变成“沉着”、“冷静”的精密调控者的?
嵌入式硬件·架构·电路·跨学科融合