首页 > 其他分享 >FreeRtos于嵌入式环境的应用

FreeRtos于嵌入式环境的应用

时间:2022-11-18 18:06:56浏览次数:50  
标签:操作系统 FreeRtos 嵌入式 任务 实时操作系统 应用 资源

FreeRtos操作系统

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

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

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

FreeRtos于嵌入式环境的应用  _嵌入式

互斥锁—避免死锁

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

FreeRtos于嵌入式环境的应用  _实时操作系统_02

信号量和消息队列

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

总结

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

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

FreeRtos于嵌入式环境的应用  _实时操作系统_03


标签:操作系统,FreeRtos,嵌入式,任务,实时操作系统,应用,资源
From: https://blog.51cto.com/ebyte/5868881

相关文章

  • 启明智显 | 高性价比串口屏方案应用于汽车仪表
    在社会经济的迅速发展下,居民拥有汽车的数量逐年增加,各汽车厂商也处于激烈角逐的局面中,其中汽车的人机交互设计成为各个品牌在汽车智能化浪潮的态势下重要的发力点,汽车人机......
  • C# Windows服务调用本地桌面应用
     由于session0隔离,Process.Start()无法启动本地应用,需要引用第三方类库。     参考资料:windows服务启动外部程序 ......
  • 深度学习 | 如何开发、部署 Serverless 应用?
    作者:阿里云云原生本文将详细介绍如何开发和部署Serverless应用,并通过阿里云函数计算控制台与开发者工具ServerlessDevs进行应用的初始化、部署;最后分享应用的调试,通......
  • electron mac应用签名问题
    [unabletobuildchaintoself-signedrootforsigner](https://testerhome.com/topics/33338)[官方证书](https://www.apple.com/certificateauthority/)[签名builde......
  • 顺序表应用6:有序顺序表查询
    顺序表应用6:有序顺序表查询TimeLimit:7MSMemorylimit:700K题目描述顺序表内按照由小到大的次序存放着n个互不相同的整数(1<=n<=20000),任意输入一个整数,判断该整数在顺序......
  • 顺序表应用3:元素位置互换之移位算法
    顺序表应用3:元素位置互换之移位算法TimeLimit:1000MSMemorylimit:570K题目描述一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m......
  • 顺序表应用2:多余元素删除之建表算法
    顺序表应用2:多余元素删除之建表算法TimeLimit:3MSMemorylimit:600K题目描述一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一......
  • xshell 7 要继续使用此程序 您必须应用最新的更新或使用新版本
    打开xshell7时,突然发现打不开了,提示信息为“xshell7要继续使用此程序您必须应用最新的更新或使用新版本”。此时最直接的处理方式,就是按照要求,从官网下载最新版本进行......
  • web应用程序
    二、web应用程序1、前言web开发:静态webhtml,css提供给所有人看的数据不会发生变化的动态web现在几乎所有的网站都是是动态提供给所有人的数据都是......
  • ARB5母线弧光保护在中低压电力系统中的应用
    安科瑞陈盼中压配电室母线弧光保护应用场景功能1.8组弧光保护、4组失灵保护、11路可编程跳闸出口、2路以太网、1路打印接口、1路IRIG-B码对时接口、支持IEC61850、modbusRT......