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

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 警告解决方法

七、代码分析

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

相关文章:

  • 网站如何续费深圳网上创建公司
  • UNet改进(41):基于PyTorch的轻量量化UNet
  • [vscode] Tab键无法缩进
  • 网站vr用什么做网站推广的技术有哪些
  • ubuntu24.04安装todesk远程工具
  • GPT-4 赋能恶意软件 GPT-MalPro:国内首现动态生成规避检测的勒索程序技术深度解析
  • ubuntu22.04安装cuda11.4版本
  • 网站建设与用户需求分析网络营销案例ppt课件
  • 八戒网站做推广婚庆策划公司加盟
  • 江苏建设行业证书编号查询网站男女性做那个视频网站
  • uniapp获取设备的IP地址(已踩坑,开箱即用)
  • 怎么做地方门户网站哈尔滨市建筑企业管理站
  • WGCLOUD存在默认账号密码admin/111111
  • FGFR3 K650Q突变的研究进展
  • 最小二乘问题详解1:线性最小二乘
  • vue静态资源优化
  • MiniCPM-V 4.5 视觉模型使用指南
  • 中国建设银行集团网站简单旅游网站开发
  • 口碑好的秦皇岛网站建设哪里有网页设计素材推荐
  • 《道德经》第三章
  • 不同环境(跨集群和同集群)下的Jenkins与Kubernetes集群连接配置
  • 新纪实网站建设淮安网站seo
  • 【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发
  • 国外做的比较的ppt网站有哪些方面设计师入驻平台
  • 济宁高端网站建设公司网站优势
  • PyTorch 实现 CIFAR - 10 图像分类
  • 南平市住房和城乡建设局网站如何做一间公司的网站
  • 哪些网站的登陆界面做的好看163企业邮箱登陆
  • 如何从头开始启动天机学堂项目(个人记录、详细图解)
  • lesson68:JavaScript 操作 HTML 元素、属性与样式全指南