0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FreeRtos于嵌入式环境的应用

jf_10471008 来源:jf_10471008 作者:jf_10471008 2022-11-18 17:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FreeRtos操作系统

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

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

pYYBAGN3VeuAdu5pAAWEZ-Obto8541.png

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

pYYBAGN3Ve6AfmBwAAObh909yo4048.png

互斥锁—避免死锁

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

poYBAGN3Ve6AR5tiAAChqvh5lGw870.png

信号量和消息队列

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

20221141046463399.png

总结

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

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

pYYBAGN3VfiAEVUAAAF3E-Z_hXM479.png

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

MCGS嵌入软件配置教程

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

审核编辑黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20151

    浏览量

    328925
  • FreeRTOS
    +关注

    关注

    14

    文章

    497

    浏览量

    66361
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    分享一个嵌入式开发学习路线

    技术,实现设备联网上传数据。 系统架构思维:理解企业级嵌入式开发的架构设计,如分层架构、模块化设计等。 实践建议:在STM32上移植FreeRTOS,实现多任务管理;用WiFi模块实现温湿度数据上传云端
    发表于 12-04 11:01

    嵌入式系统软件架构通常划分

    嵌入式系统的软件架构通常划分如下分层设计: 应用层:环境温度监测、报警触发逻辑。 中间件层:支持MQTT协议的网络通信模块,用于将温度数据上传至云端。 操作系统层:基于FreeRTOS进行多任务管理
    发表于 12-01 07:20

    CW32嵌入式软件开发的必备知识

    的数据手册及用户手册,查找所需外设工作原理。 4、 嵌入式操作系统(深入知识点) 掌握常用的嵌入式操作系统,如μC/OS、FREERTOS等,了解其内核、进程管理、内存管理、设备管理和文件系统等基本原理
    发表于 11-28 07:48

    嵌入式实时操作系统的特点

    通常具有以下特点: 快速响应:实时嵌入式操作系统能够迅速响应外部事件或任务请求,以满足实时任务的时间要求。 稳定性和可靠性:实时嵌入式操作系统要求系统能够在各种环境条件下稳定可靠地运行,并在不可避免
    发表于 11-13 06:30

    嵌入式需要掌握哪些核心技能?

    接口是80%岗位的必备技能,工业协议需求集中特定行业。 在AI、大数据席卷的当下,嵌入式技术依然稳居制造业、物联网、汽车电子等领域的核心地位。 数据显示,2024年嵌入式岗位招聘量同比增长264
    发表于 10-21 16:25

    嵌入式达到什么水平才能就业?

    、LoRa、NB-IoT,能实现嵌入式设备与云端平台的数据交互了解 RTOS 实时操作系统:如 FreeRTOS、RT-Thread,能进行任务创建、信号量管理、内存分配
    发表于 09-15 10:20

    Linux嵌入式和单片机嵌入式的区别?

    区别 单片机嵌入式系统和Linux嵌入式系统是两种不同的嵌入式系统开发方式,它们在应用领域、开发环境、资源需求等方面都有显著的区别。以下是它们的主要区别: 1.应用领域: 单片机
    发表于 06-20 09:46

    运行在嵌入式系统上的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似手机上的应用程序,可以运行在嵌入式
    的头像 发表于 06-18 09:53 621次阅读
    运行在<b class='flag-5'>嵌入式</b>系统上的emApps

    嵌入式开发入门指南:从零开始学习嵌入式

    基础 3. 学习路径推荐第一阶段:熟悉开发环境(如Keil、IAR、STM32)第二阶段:掌握裸机编程与驱动开发第三阶段:学习RTOS(实时操作系统)如FreeRTOS第四阶段:深入理解Linux嵌入式
    发表于 05-15 09:29

    如何成为一名嵌入式软件工程师?

    体系 1)编程语言与工具 C/C++:嵌入式软件开发中最常用的编程语言,因其高效性和对硬件的直接控制能力而备受青睐。 RTOS(实时操作系统):如μC/OS、FreeRTOS、RT-Thread等,掌握
    发表于 04-15 14:37

    嵌入式去哪个城市好?

    丰富的项目和资源。知名企业如华为、百度、小米等都在北京设有研发中心,积极推动嵌入式技术的应用与发展。北京的创业氛围浓厚,初创公司专注嵌入式技术的创新,吸引了大量的投资。 上海作为中国的经济中心和国际
    发表于 04-02 10:12

    嵌入式机器学习的应用特性与软件开发环境

    设备和智能传感器)上,这些设备通常具有有限的计算能力、存储空间和功耗。本文将您介绍嵌入式机器学习的应用特性,以及常见的机器学习开发软件与开发环境嵌入式机器学习的应用特性与优势 由于嵌入式
    的头像 发表于 01-25 17:05 1211次阅读
    <b class='flag-5'>嵌入式</b>机器学习的应用特性与软件开发<b class='flag-5'>环境</b>

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对嵌入式主板的基本概念、构成部分、
    的头像 发表于 01-13 16:30 1187次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    ARM架构嵌入式主板特点

    极其广泛。ARM架构嵌入式主板有什么特点呢?一、工作时间及环境:ARM主板不受时间限制,可常开机,无需人员维护。在有电源调节的情况下,只要接通电源,就会自动启动,
    的头像 发表于 12-31 16:03 1844次阅读
    ARM架构<b class='flag-5'>嵌入式</b>主板特点

    ARM嵌入式实时操作系统比较

    嵌入式系统领域,实时操作系统(RTOS)是确保任务按时完成的关键技术。ARM架构因其低功耗、高性能的特点,在嵌入式系统中得到了广泛应用。本文将对几款流行的ARM嵌入式RTOS进行比较,包括
    的头像 发表于 12-28 09:15 2446次阅读