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用户程序云端授权系统设计

审核编辑黄昊宇

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

    关注

    5087

    文章

    19149

    浏览量

    306203
  • FreeRTOS
    +关注

    关注

    12

    文章

    484

    浏览量

    62230
收藏 人收藏

    评论

    相关推荐

    ARM架构嵌入式主板特点

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

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

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

    什么是嵌入式?一文读懂嵌入式主板

    的个人电脑不同,嵌入式系统不是为了通用的计算任务设计,而是专注特定的应用场景,确保其在特定环境中运行得既高效又可靠。
    的头像 发表于 10-16 10:14 1209次阅读

    目前深圳嵌入式单片机就业环境如何?

    深圳作为中国的科技创新中心之一,在嵌入式单片机领域的就业环境相对较好,以下是对该就业环境的详细分析:
    的头像 发表于 10-09 11:51 514次阅读
    目前深圳<b class='flag-5'>嵌入式</b>单片机就业<b class='flag-5'>环境</b>如何?

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备的“大脑”,主要功能是根据需要管理和控制设备
    的头像 发表于 09-30 10:05 616次阅读

    嵌入式系统的未来趋势有哪些?

    嵌入式系统是指将我们的操作系统和功能软件集成计算机硬件系统之中,形成一个专用的计算机系统。那么嵌入式系统的未来趋势有哪些呢? 1. 人工智能与机器学习的整合 随着现代人工智能(AI)和机器学习
    发表于 09-12 15:42

    嵌入式开发前景怎么样?

    嵌入式开发前景非常广阔,这主要得益物联网、人工智能、大数据等技术的快速发展,以及嵌入式系统在各个领域的广泛应用。以下是对嵌入式开发前景的详细分析
    的头像 发表于 07-10 09:00 2780次阅读
    <b class='flag-5'>嵌入式</b>开发前景怎么样?

    嵌入式系统怎么学?

    工具:熟悉常用的嵌入式系统开发工具,包括集成开发环境(IDE)、编译器、调试器(如Keil、IAREmbedded Workbench、Eclipse)等。 5、实时操作系统(RTOS):了解实时
    发表于 07-02 10:10

    如何提升嵌入式编程能力?

    /C++:大多数嵌入式系统使用C或C++编程语言,因此深入学习这两种语言是非常重要的。 8. 理解操作系统:学习嵌入式操作系统(如FreeRTOS, VxWorks, Zephyr等)的工作原理
    发表于 06-21 10:01

    触翔工业嵌入式工控主板在环境监测的应用

    触翔工业嵌入式工控主板在环境监测领域的应用极为广泛,主要得益其在恶劣环境下的高可靠性、稳定性以及对复杂数据处理能力,以下是一些关键应用示例:
    的头像 发表于 05-22 16:57 406次阅读
    触翔工业<b class='flag-5'>嵌入式</b>工控主板在<b class='flag-5'>环境</b>监测的应用

    再谈嵌入式实时操作系统

    由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求。嵌入式操作系统应运而生,嵌入式操作系统可以支持新时代复杂、多任务
    的头像 发表于 04-09 17:27 818次阅读
    再谈<b class='flag-5'>嵌入式</b>实时操作系统

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案。嵌入式系统是一种为特定应用而设计的计算机系统,它通常包括处理器、内存、外设接口等组件,并且被嵌入到更大的设备或系统中,
    的头像 发表于 03-15 14:29 1295次阅读

    fpga是嵌入式

    FPGA(现场可编程门阵列)不是嵌入式系统,但FPGA在嵌入式系统中有着重要的应用。
    的头像 发表于 03-14 17:19 2382次阅读

    嵌入式工控机性能特点 嵌入式工控机应用场景

    特点: 1.高可靠性:嵌入式工控机通常采用工业级的硬件设计,具有防尘、防震、抗干扰等特性,能够在恶劣的工业环境下稳定运行。 2.实时性:工业控制系统对于数据的采集、处理和响应要求非常高,嵌入式工控机能够实时地进行数据处
    的头像 发表于 02-04 11:35 719次阅读

    嵌入式学习步骤

    开发。 嵌入式学习步骤总结如下: (1).确定目标平台:选择适合您要开发的嵌入式系统的硬件平台。这取决您要控制的设备以及您需要执行的任务。 (2).选择编程语言:嵌入式系统通常使用C
    发表于 02-02 15:24