STM32开发(FreeRTOS实时操作系统)

一、FreeRTOS实时操作系统介绍

1、FreeRTOS实时操作系统是什么

复制代码
FreeRTOS实时操作系统,是一种轻量级的实时操作系统,为了实现快速响应、快速处理
FreeRTOS实时操作系统,是RTOS实时操作系统下的一个版本/子集
FreeRTOS实时操作系统 = 裸机开发 + 多线程(多任务)并发处理

RTOS实时操作系统具备很多版本/子集:FreeRTOS、RT-Thread、Thread-X ······

基于操作系统开发的是系统开发,不基于操作系统开发的是裸机开发

2、裸机开发和系统开发的区别

复制代码
裸机开发:不使用操作系统开发,所有的驱动代码都按照main函数中的执行顺序执行
系统开发:使用操作系统开发,所有的驱动代码支持多进程/多线程的并发处理机制,实现快速响应、快速处理

多进程和多线程的区别:
    1. 资源量(进程是资源分配的最小单位、线程是任务调度的最小单位)
    2. 安全性(进程间用户空间相互独立[IPC通讯机制]、同一进程下的线程间共享同一用户资源[同步互斥])
    3. 高效性(进程间切换涉及到进程的上下文切换、线程间可以直接切换,固然线程的并发效率更高)

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

1)多任务并发处理(实时性)

复制代码
可以独立分配堆区栈区资源给每个线程,作为多个并发执行的任务
每个线程都有自己的堆区栈区资源,和不同的优先等级

2)抢占式调度机制

复制代码
FreeRTOS实时操作系统默认使用抢占式调度机制:
    优先级不同时:系统内核会优先执行线程等待列表中优先等级最高的线程,
    优先级相同时:系统内核会按照队列思想逐个执行

注意:只有当线程变为阻塞态时,才会被抢夺内核资源

FreeRTOS实时操作系统可以设置调度机制为时间片轮询机制。

3)通讯机制

复制代码
1. 互斥锁
2. 消息队列
3. 信号量
4. 事件组

4)内存管理

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

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

抢占式任务调度机制:给每个任务/线程分配对应的优先级等级,优先级等级高的任务/线程先执行、优先级等级低的任务/线程后执行
注意:
    任务的优先级等级就是一个数字,数字越大,优先级等级越高
    中断的优先级等级就是一个数字,数字越小,优先级等级越高

5、线程状态

复制代码
就绪态:任务的资源分配成功,等待被运行
运行态:被分配资源的任务使用系统的时间片,成功开始运行
阻塞态:任务中存在耗时、延时操作(Delay函数、超时检测)时,任务处于阻塞状态
       当某个任务处于阻塞态时,别的任务可以抢占系统的资源,进而运行
挂起态:任务1中使用挂起函数,挂起任务2,任务2处于挂起态,不会被系统调用
        需要在别的任务/任务1中使用解除挂起函数,解除任务2的挂起,此时任务2处于就绪态

二、STM32CubeMX在线下载FreeRTOS内核



三、使用STM32CubeMX配置FreeRTOS实时操作系统

1、安装实时操作系统


2、配置实时操作系统

3、示例代码

相关推荐
蓝斯4971 天前
从.到实现一个Windows上的虚拟hid键盘设备
windows·单片机·计算机外设
熙芯XiChip1 天前
硬实时与软实时RTOS核心区别
嵌入式硬件
伟大的前程1 天前
unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机
单片机·嵌入式硬件
小渔村的拉线工1 天前
1.HPM6E80 解析芯片整体工作原理和存储架构
单片机·嵌入式硬件·mcu·架构·hpm6e80
熙芯XiChip1 天前
CAN与CANopen的本质区别
单片机
lilihewo1 天前
Altium Designer 封装库的创建(分享pcb 3D封装库)
嵌入式硬件·51单片机
神罚天下ET1 天前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机
碧海银沙音频科技研究院1 天前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
Zevalin爱灰灰1 天前
模拟信号链电路——基于TL431的电压基准电路
单片机·嵌入式硬件
csdn杰哥1 天前
瑞萨单片机开发教程[二十七] DTC 外部中断触发传输实验
单片机·嵌入式硬件·mongodb·瑞萨·ra6m5