STM32 单片机开发 - FreeRTOS 实时操作系统

一、在线下载 FreeRTOS 内核

图 1
图 2


二、FreeRTOS 实时操作系统介绍

FreeRTOS 实时操作系统 是一种轻量型实时操作系统 ,实现快速响应

FreeRTOS 实时操作系统是 RTOS 实时操作系统下的一个版本(子集)


RTOS 实时操作系统具有很多版本:FreeRTOS、RT-Thread、Thread-X......

2.1 裸机开发和系统开发的区别

裸机开发:不使用操作系统,所有驱动代码按照 main.c 中的编写顺序按顺序执行代码。

系统开发:使用操作系统,所有驱动代码支持多进程 / 多线程的并发处理机制,可以实现快速响应
FreeRTOS 实时操作系统 = 裸机开发 + 多线程(多任务)并发处理

2.2 多进程和多线程的区别

  1. 资源量:进程是资源分配的最小单位,线程是任务调度的最小单位,1 个线程 = 1 个任务;
  2. 安全性:进程的用户空间相互独立(IPC 机制),线程同享同一进程下的资源(同步互斥);
  3. 效率:多线程的并发处理的效率更高(进程的上下文切换)。

三、FreeRTOS 实时操作系统的特点

  • 小巧与灵活性:FreeRTOS 非常小巧,适合在资源有限的微控制器中运行,但其应用并不仅限于微控制器。开发者可以根据实际应用需求进行定制和配置,选择所需的功能模块。
  • 可移植性:FreeRTOS 支持多种处理器架构,并能在不同的硬件平台上运行,这为开发者提供了更大的硬件选择灵活性。
  • 实时性:FreeRTOS 提供严格的任务调度机制,确保任务按照预定的优先级和时间约束执行,使其非常适合对时间要求较高的应用场景,如工业控制和汽车电子等领域。
  • 丰富的功能:包括任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。
  • 开源与免费:FreeRTOS 是一个开源项目,其源代码可以免费获取和使用,这有助于促进其在开发者社区中的普及和发展。
  • FreeRTOS 的应用领域非常广泛,包括但不限于工业控制、汽车电子、智能家居、医疗设备、航空航天等需要实时响应和稳定运行的领域。

四、FreeRTOS 实时操作系统的任务调度机制

linux 操作系统的任务调度机制:默认使用时间片轮询机制,也可以使用抢占式任务调度机制;

FreeRTOS 操作系统的任务调度机制:默认使用抢占式任务调度机制,也可以使用时间片轮询机制。

抢占式任务调度机制:给每个任务/线程分配对应的优先级等级,优先级高的先执行,优先级低的后执行。

注意

优先级等级的数字越小,优先级越高

优先级相同时,使用时间片轮询机制


五、任务的状态

  • 就绪态:任务的资源分配成功,等待被运行。
  • 运行态:被分配资源的任务使用系统的时间片,成功开始运行。
  • 阻塞态:任务中存在耗时、延时(Delay 函数、超时检测等)时,任务处于阻塞状态;处于阻塞状态的任务,可以被别的任务抢占系统的资源,从而运行。
  • 挂起态:在任务 1 中使用挂起函数挂起任务 2 ,使任务 2 处于挂起状态,系统不会调用任务 2;需要在别的任务/任务 1 中使用解除挂起函数,解除任务 2 的挂起,使任务 2 处于就绪态。
    图 3 任务的状态

六、CubeMX 中配置 FreeRTOS

图 4 设置 FreeRTOS
图 5 heap_1 - heap_5 的选择
图 6 设置 USART1
图 7 设置 Debug 下载接口
图 8 配置 X-CUBE-FREERTOS

将如图所示的 CMSIS RTOS2 选项勾上,在下面进行任务的配置。
图 9 创建任务的相关参数
图 10 新任务创建参数 一个任务的参数有:任务名、当前优先级、任务大小、任务的入口函数等。
图 11 FreeRTOS 代码生成出现 RTOS 相关警告
如果出现如图 11 所示的 RTOS 相关警告,解决方法如下图:
图 12 警告解决方法


七、代码分析

相关推荐
惶了个恐10 分钟前
嵌入式硬件第五弹——ARM(2)
arm开发·嵌入式硬件
weixin_6695452018 分钟前
BC915E 5V/3.6A输入 两节升压充电IC,升压充电效率95%,输入最大支持18W,ESOP8 兼容IP2325
人工智能·单片机·嵌入式硬件·硬件工程·信息与通信
Heartache boy31 分钟前
野火STM32_HAL库版课程笔记-空气、烟雾传感器公式换算
笔记·stm32·嵌入式硬件
玻璃杯中水34 分钟前
硬件知识总结梳理-1(电阻+电容)
单片机·嵌入式硬件
yuan199971 小时前
STM32F407 TIM3正交编码器应用指南
stm32·单片机·嵌入式硬件
lin辰傍边的风2 小时前
RS485收发架构移植要点
stm32·单片机·嵌入式硬件
π同学2 小时前
基于CH343的一种自动烧录模式电路设计分析
单片机·嵌入式硬件·eps32
正点原子2 小时前
《DNESP32P4开发指南_V1.0》第十一章 LED实验
单片机·物联网·嵌入式
国科安芯2 小时前
商业航天视角下角度编码传感器的应用与MCU的集成适配
大数据·网络·单片机·嵌入式硬件·架构·制造·安全性测试
森利威尔电子-3 小时前
森利威尔SL3041B 替换LM5018 100V降压3.3V 5V 12V恒压芯片
单片机·嵌入式硬件·集成电路·芯片·电源芯片