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、示例代码

相关推荐
偶像你挑的噻9 小时前
11-Linux驱动开发-I2C子系统–mpu6050简单数据透传驱动
linux·驱动开发·stm32·嵌入式硬件
Chat_zhanggong34511 小时前
K4A8G165WC-BITD产品推荐
人工智能·嵌入式硬件·算法
强化学习与机器人控制仿真11 小时前
RSL-RL:开源人形机器人强化学习控制研究库
开发语言·人工智能·stm32·神经网络·机器人·强化学习·模仿学习
bai54593611 小时前
STM32 PWM驱动LED呼吸灯
stm32·单片机·嵌入式硬件
智者知已应修善业12 小时前
【51单片机普通延时奇偶灯切换】2023-4-4
c语言·经验分享·笔记·嵌入式硬件·51单片机
btzhy17 小时前
STM32单片机:基本定时器应用:单脉冲模式(STM32L4xx)
stm32·单片机·嵌入式硬件·基本定时器应用:单脉冲模式
文sir.19 小时前
温湿度采集系统(stm32+mqtt+Onenet云平台+esp8266)
stm32·单片机·嵌入式硬件·mqtt·onenet·云平台·esp8266
DIY机器人工房19 小时前
嵌入式面试题:你有没有用过直接基于TCP协议,不借助HTTP、MQTT这类上层协议的项目经历?
stm32·单片机·嵌入式硬件·面试题·diy机器人工房
zhmc21 小时前
Cortex M0单片机指令执行周期
单片机·嵌入式硬件
编程小白菜12321 小时前
STM32L051单片机485Ymode升级后程序不能正常运行问题
stm32·嵌入式硬件