当前位置: 首页 > news >正文

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

http://www.dtcms.com/a/402937.html

相关文章:

  • RocketMQ-生产常见问题汇总
  • 成都网站托管外包施工企业科技宣传片
  • 小厂 Java 面试,难度怎么样?
  • Webpack5 第一节
  • 【深入理解JVM】常见的垃圾回收器
  • 东莞企业建设网站官网有限公司百度一下百度网页版主页
  • 【大模型:知识图谱】--7.Neo4j数据库的导入和导出
  • 数据结构与算法(栈)
  • Coze源码分析-资源库-创建数据库-后端源码-基础设施/数据存储层
  • PySpark 安装教程及 WordCount 实战与任务提交
  • 制作网站的公司八大建筑央企排名
  • zynq纯PL读取XADC
  • 【FastMCP】中间件
  • bigo二面总结
  • 个人网站建设思路省级别网站建设方案
  • 测试自动化教程:Parasoft如何流重定向与单元测试自动化
  • 开源AI大模型、AI智能名片与S2B2C商城小程序在价值观型社群构建与运营中的价值与应用
  • 郑州 网站建设公司阿里企业邮箱收费标准一年多少钱
  • Day03:小程序的常用操作
  • 交互的脉络:小程序事件系统详解
  • 自助建站免费平台深圳建设管理中心网站首页
  • LVS虚拟调度器学习
  • 【LVS入门宝典】LVS-TUN模式原理与配置:跨越网络界限的负载均衡解决方案
  • 【LVS入门宝典】LVS-TUN模式配置实战以及配置关键点:Real Server的路由表调整、ipip模块加载
  • LVS、Nginx、HAProxy 的区别
  • 是什么让边缘电脑真正工业化?
  • html5手机网站开发环境怎样建设淘宝客导购网站
  • 国检集团官网UI设计展示——专业界面设计实力呈现
  • 【双光相机配准】红外-可见光双光相机的坐标转换原理与实现
  • 图漾相机-ROS2-SDK-Ubuntu 4.X.X版本编译