freertos于嵌入式环境的应用

成都亿佰特电子科技有限公司 成都亿佰特电子科技有限公司     2023-02-05     340

关键词:

FreeRtos操作系统

首先,应该介绍什么是FreeRtos,他于单片机而言就是一个管理器,作为管理者管理嵌入式芯片中的任务,堆栈,中断,队列等等资源,对于操作系统而言,又分为实时操作系统和非实时操作系统,实时操作系统代表任务或者某个功能必须在指定的运行时间内完成,保证设备想要执行的功能能立即得到执行,FreeRtos就是一个迷你型的实时操作系统内核。

FreeRtos作为轻量级的操作系统活跃于嵌入式行业当中。它占用的资源非常少,是为数不多的能够在小型单片机上移植的操作系统,并且是完全免费的。包括在飞机、航天器上,也在使用一些特别定制的实时嵌入式操作系统,来保证设备的正常运转。

作为嵌入式实时操作系统,FreeRtos具有抢占式实时操作系统内核,也就是说任务之间有优先级的区分,比如一些需要实时响应的功能部分,可以把优先级设置得高一些,这样当需要执行的时候,高优先级别的任务可以打断别的低优先级任务,率先得到CPU资源,得到执行的机会。作为体量而言,他本身占用的rom空间与ram空间就非常小了,它还支持再往下地裁剪,可以将功能裁剪一部分,最小能够只占用10kb左右的rom空间和大约10kb的ram空间。

互斥锁—避免死锁

同时FreeRtos内部就有互斥锁,互斥锁的作用在于避免死锁的情况发生,由于任务运行可能会用到一部分的参数资源,CPU资源等等,当一个任务占用这些资源并且不释放的时候,其他的任务是无法调用这些资源的。那么试想,当两个任务分别在执行的时候,虽然由于单核的原因,任务肯定有挂起的时候,但是挂起并没有代表任务就释放了这些资源,当两个任务分别拥有对方想要使用的资源,所以都等待着对方释放,当双方都不释放的时候,就会造成死锁,两个任务都将彻底卡死不再继续执行,同时对于一些关键的代码段而言,由于任务之间的调度,可能被多个任务执行过甚至更改过参数,这种情况也是需要避免的,这就是互斥锁的意义,它保证在同一时刻,只能有一个线程去操作关键性的共享数据,保证数据不被多任务调用执行,保证任务的正确调度和数据的安全性。

信号量和消息队列

FreeRtos还有信号量和消息队列的功能。一个任务可以向消息队列中添加信息,添加的多条信息按照FIFO先入先出的形式(这种形式也更适合数据信息处理)的方式被别的任务接收到,接收到后判定是否执行相关操作,这样可以防止多任务的访问冲突,也解决了中断服务程序与任务之间的消息传递的问题。

总结

其实对于单片机或者嵌入式设备而言,FreeRtos并不是百利而无一害,既然作为管理者,肯定是需要CPU资源支持管理调度的,同时还有rom和ram的消耗,所以对于嵌入式设备而言,是否要上FreeRtos系统是一种权衡,如果小型的简单逻辑设备,没有必要舍近求远去移植操作系统,直接裸奔就是最好的选择,本身简单的逻辑也不需要太多的管理支持。

但是随着逻辑的增多,功能的增多,FreeRtos的必要性就会越来越高,因为逻辑的增多,我们更需要将精力集中于功能部分的开发而不是这些功能任务间的调度。任务的运行、挂起、就绪态之间的转换,也正是FreeRtos的核心,要在众多任务间做好这件事,并不容易,感谢有这么一种开源免费的操作系统,来帮助开发者精力集中地进行开发,让设备的运行更稳定、更加科学。

原文链接:FreeRtos于嵌入式环境的应用

MCGS嵌入软件配置教程

MCGS用户程序云端授权系统设计

在多任务环境中喂养看门狗的策略

...onment【发布时间】:2013-01-2308:40:37【问题描述】:将一些嵌入式代码移至FreeRTOS后,我在看门狗方面遇到了一个有趣的难题。看门狗定时器对于我们的应用来说是必须的。使用FreeRTOS对我们来说也是一个巨大的福音。当应用程序... 查看详情

stm32f103x/freertos系统学习笔记之环境搭建-cxm(代码片段)

前言越学到后面越感觉会的越少,为什么要引入嵌入式操作系统呢,因为现在一直局限于while大循环里,能做的功能十分有限,至于为什么要选择FreeRTOS系统是因为这个系统目前比较成熟且使用的人很多,资源也比较多这一篇主要会记录... 查看详情

freertos特性简介

...eeRTOS由RichardBarry开发,是一个开源的、可移植的、小型的嵌入式实时操作系统内核。FreeRTOS既支持抢占式多任务,也支持协作式多任务。FreeRTOS的主要特性如下:实时性:FreeRTOS“可以”配置成为一个硬(Hard)实时操作系统... 查看详情

freertos学习笔记——环境搭建(代码片段)

...等…为了解决以上痛点,我想到了FreeRTOS(一个开源的嵌入式实时操作系统),刚好ST官方的STM32CubeMX里面直接有FreeRTOS的中间件,使用非常方便。下来就来看看怎么搭建环境叭~推荐去FreeRTOS官网学习相关API=>传送门.C... 查看详情

在stm32cube中使用freertos:入门体验(代码片段)

...于单片机等性能相对较低,对实时性要求又比较高的嵌入式应用场景中的操作系统。通常说FreeRTOS主要指的就是其内核,提供了线程、信号、内存管理等功能。使用FreeRTOS等RTOS可以方便复杂项目开发或是团队合作开发。在... 查看详情

嵌入式freertos的移植任务运行状态以及源码的优化改进(代码片段)

...态的源码优化前言FreeRTOS因其简洁小巧、功能齐全而深受嵌入式领域欢迎,如下图所示,除Linux外,FreeRTOS为全球嵌入式领域市场份额最多的实时操作系统。与之对标的uCOS、RTX、ThreadX等都被远远的甩在其后。加之近年... 查看详情

微型的操作系统都有哪些各有啥特点?

...统(MicroOperatingSystem,MicroOS)是指占用资源极少、适用于嵌入式设备等小型系统的操作系统。常见的微型操作系统有以下几种:1.Contiki:Contiki是一个开源的、基于C语言的微型操作系统,适用于无线传感器网络和物联网等小型系... 查看详情

嵌入式freertos的移植任务运行状态以及源码的优化改进(代码片段)

...态的源码优化前言FreeRTOS因其简洁小巧、功能齐全而深受嵌入式领域欢迎,如下图所示,除Linux外,FreeRTOS为全球嵌入式领域市场份额最多的实时操作系统。与之对标的uCOS、RTX、ThreadX等都被远远的甩在其后。加之近年... 查看详情

嵌入式freertos的移植任务运行状态以及源码的优化改进(代码片段)

...态的源码优化前言FreeRTOS因其简洁小巧、功能齐全而深受嵌入式领域欢迎,如下图所示,除Linux外,FreeRTOS为全球嵌入式领域市场份额最多的实时操作系统。与之对标的uCOS、RTX、ThreadX等都被远远的甩在其后。加之近年... 查看详情

freertos学习3--中断管理

1.前言嵌入式实时操作系统需要对整个系统环境产生的事件作出响应。可以采用中断方式也可以采用轮询方式来进行处理。如果采用中断方式,则希望ISR(中断服务例程)的处理时间越短越好。注:必须说明的是,只有以”FromISR... 查看详情

在stm32f746g-disco开发板上使用nabto+freertos的演示热泵应用

当使用STM32ARMCortex-M微控制器时,ST的免费嵌入式软件STM32Cube提供了所有必要的驱动程序和中间件组件,以减少初始的开发工作。在上述提到的中间件组件中,其中一个是非常受欢迎的FreeRTOS实时操作系统,Nabto正在努力建立一个... 查看详情

移植freertos到stm32

...植FreeRTOS到STM32单片机上引言介绍什么是RTOS?为什么嵌入式设备往往使用RTOS?FreeRTOS具体步骤总结引言本文详细介绍如何移植FreeRTOS到STM32单片机上。移植操作系统是嵌入式开发的入门基础,单片机和嵌入式在物理上其... 查看详情

移植freertos到stm32

...植FreeRTOS到STM32单片机上引言介绍什么是RTOS?为什么嵌入式设备往往使用RTOS?FreeRTOS具体步骤总结引言本文详细介绍如何移植FreeRTOS到STM32单片机上。移植操作系统是嵌入式开发的入门基础,单片机和嵌入式在物理上其... 查看详情

移植freertos到stm32

...植FreeRTOS到STM32单片机上引言介绍什么是RTOS?为什么嵌入式设备往往使用RTOS?FreeRTOS具体步骤总结引言本文详细介绍如何移植FreeRTOS到STM32单片机上。移植操作系统是嵌入式开发的入门基础,单片机和嵌入式在物理上其... 查看详情

qtcreator符合&的意思

...操作系统。使用QtCreator开发的应用程序可以部署到电脑、嵌入式、移动操作系统或Web浏览器。参考技术A意思是符合运行。QtCreator是Qt为应用程序开发人员提供的一个跨平台集成开发环境,可运行于Windows、Linux和MacOS操作系统。使... 查看详情

air32f103在无系统环境和freertos环境集成lvgl(代码片段)

...实例AIR32F103(十)在无系统环境和FreeRTOS环境集成LVGLLVGL简介嵌入式常用的图形显示库官网:https://lvgl.io/GitHub仓库:https://github.com/lvgl/lvgl对设备的要求是“allyouneedisatleast32kBRAMand128kBFlash,aCcompiler,aframebuffer,andatleastan1/10screensizedbufferforrend... 查看详情

轻量级操作系统freertos的内存管理机制

 本文由嵌入式企鹅圈原创团队成员朱衡德(Hunter_Zhu) 近几年来,FreeRTOS在嵌入式操作系统排行榜中一直位居前列,作为开源的嵌入式操作系统之一,它支持许多不同架构的处理器以及多种编译工具链,具有轻量级、容易移... 查看详情

freertos上线中文版网页,c++获得2022年度编程语言

...;不错过精彩内容作者| strongerHuang微信公众号| strongerHuang嵌入式资讯第02期来了:一、FreeRTOS网站简体中文版上线前不久,FreeRTOS上线了中文版网页,极大方便了英文不好的开发者。今后,请不要以英文不好为借口... 查看详情