嵌入式开发——RTOS_模块是使用rtos环境开发-程序员宅基地

技术标签: RTOS  嵌入式  

总述

对于较为复杂的应用开发,还是使用RTOS比较好。RTOS一般都集成了线程管理、线程同步、共享资源保护等功能模块。使用RTOS能够方便的管理多个功能模块,并且发挥CPU的最大资源使用(无时无刻的进行着任务的切换与运行)。

RTOS对比

名称 简述
RT-Thread 国产开源RTOS,生态组件很多(GUI、IDE等),文档丰富,对于国内开发者比较友好,支持POSIX接口 官网
FreeRTOS 比较经典开源的RTOS,使用很广泛,组件较少
UCOS 早期的商用付费RTOS

RTOS基础讲解

RTOS绝大部分的代码实现主要围绕在任务的切换以及最高等级任务的查找,任务的切换主要实对任务上下文(一些不能自动保存的寄存器)的保存与恢复,保存的位置就是创建任务时的堆栈。而任务切换的时间就是由内核的心跳——定时器确定的,每次心跳来临时,内核就会查找有没有高优先级任务就绪(一般任务是由一个链表串起来的),如果有则进行切换。对于同等级的任务,会进行同等时间片运行切换,也就是说A运行一段时间B运行一段时间(一般同等级的任务位于同一个表)。

使用RTOS注意防止死锁,对于多个任务使用同一个锁时要即时释放锁

优先级反转是高优先级任务等待资源时产生的

任务创建时要考虑内存资源的分配,任务里一定要有释放运行权操作

互斥锁用于资源共享,一般具有优先级继承功能

信号线用于任务间资源同步

总结

RTOS具体使用要考虑实际开发是否需要,毕竟RTOS对资源具有一定的占用,简单的程序开发使用状态机足矣。没有最好的,只有最合适的,不然Linux早就全部占领嵌入式开发了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tulongyongshi/article/details/109400965

智能推荐

android 开发框架_通过此拖放框架学习Android开发-程序员宅基地

文章浏览阅读223次。android 开发框架 1990年代后期,我开始进行涉及计算机的基于教室的研究时,我要做的第一件事就是将一些计算机带入教室。 我的顾问获得了六台第一代Bondi Blue iMac的资助,这些iMac将在我们进行研究的中学安装。 带着那些诱人的胶状形状的机器进入学校后,我对寻找参与者的担忧就烟消云散了。 那时,任何地方的计算机,尤其是中学教室里的计算机,仍然相对不常见,我们能够将其新颖性融..._安卓拖拽框架

android EditText基本设置_android中设置edittext第一行7位第二行8位-程序员宅基地

文章浏览阅读6.8k次。身份证号码大都是数字,但是极少数的最后一位是字母的。比如说,可能是X、Y、Z。在xml里这样设置就可以了:android:digits="1234567890XYZ" 但是我要默认的输入法为数字,怎么实现?谢谢你的解答,解决了我的问题。android:inputType="number"android:digits="0123456789xyzXYZ"同时设_android中设置edittext第一行7位第二行8位

ELAS_ROS算法在KITTI数据集上生成稠密点云-程序员宅基地

文章浏览阅读2.5k次,点赞8次,收藏37次。ELAS是一种基于概率模型的有效立体匹配算法,能够给予双目图像生成深度图,进而转化为点云.该算法的一种改进算法为LS-ELAS,其论文发表在2017年ICRA上,文章题目为"LS-ELAS: Line Segment based Efficient Large Scale Stereo Matching".本片博客主要介绍ELAS算法的一种开源代码ELAS_ROS安装,及其在KITTI数据集上的具体实现.一.KITTI数据集下载与转换为rosbag本文使用的KITTI数据集由kitti2bag转换为._elas_ros

项目众包 开源项目_您的开源项目应该报告其社会效益吗?-程序员宅基地

文章浏览阅读166次。项目众包 开源项目 尽管就“开源”和“自由”软件之间的差异写了很多字,但很少有人指出,对这些差异的讨论通常类似于围绕企业社会角色的辩论,最近几十年来,这种辩论一直占据着主导地位。 企业社会责任(CSR)概念。 但是,事实是,致力于开放原则的组织可以(并且应该)报告其活动,因为这些活动具有经济和社会影响。 对这种情况的分析实际上可能有助于我们调和两个原则性立场,它们之间的共同点比他们可能意识到..._软件免费开放使用 社会效益

seb小铺-程序员宅基地

文章浏览阅读235次。seb小铺链接:http://shop33201394.taobao.com/ ..._华为电脑^seb不能使用

华为鸿蒙HarmonyOS与安卓到底有何不同?_安卓系统臃肿吗_安卓和harmonyos底层-程序员宅基地

文章浏览阅读405次,点赞3次,收藏4次。IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**_安卓和harmonyos底层

随便推点

微服务雪崩保护_网络波动会导致微服务都不可用吗-程序员宅基地

文章浏览阅读1.8k次。一.微服务雪崩问题一.分布式系统问题由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终可能引发雪崩效应。二.可能产生雪崩的原因:1.服务不可用:缓存击穿、大量的请求、程序bug、硬件故障、资源耗尽等导致服务不可用2.流量过大:由于用户或者代码逻辑重试三.现象:1.开始线程1中微服务D不可用了,线程1阻塞在微服务D2.线程2中,由于微服务C依赖于不可用的微服务D,那么导致微服务C也不可用,线程2阻_网络波动会导致微服务都不可用吗

Oracle表的种类及定义_oralcle 设计表 多段名称定义-程序员宅基地

文章浏览阅读1.8k次。1表的类型1)堆组织表(heap organized tables).当增加数据时,将使用在段中找到的第一个适合数据大小的空闲空间.当数据从表中删除时,留下的空间允许随后的insert和update重用.2)索引组织表.这里表存储在索引结构中,利用行本身物理排序.在堆中,数据可能被填到任何适合的地方,在索引组织表中,根据主关键字,以排序顺序来存储数据.3)聚簇表_oralcle 设计表 多段名称定义

python颜色代码表_将十六进制值转换为python中颜色的名称-程序员宅基地

文章浏览阅读1.1k次。my program outputs hex values such as (#673429ff).I wanted to convert that to the colour name.How can I get the colour name?I am using python.Here is the last part of my code:index_max = scipy.argmax(..._〈red_lbl_16〉

ActiveX 控件装入失败!-- 请检查浏览器的安全设置。_activex control failed to load! please check brows-程序员宅基地

文章浏览阅读1.8w次。IE的安全设置阻止了控件的安装~~ 解决步骤:打开IE---工具---Internet选项---安全---Internet安全级别---自定义级别---进去把有关ActiveX控件的设置选项设置为启动就OK。如果还是不行就把本地和受信任的站点的也按照上面的进行设置,只要不是你IE有问题或者系统有问题的话,这样可以100%安装成功!_activex control failed to load! please check browser security settings.

EPSG:4326和4490两种常见的坐标系统讲解-程序员宅基地

文章浏览阅读1.1k次,点赞5次,收藏3次。在于这两种坐标系统的基准面和使用范围,其中EPSG 4326是国际上广泛使用的坐标系统,而EPSG 4490更专门用于中国地区的地理信息系统应用。在进行地理空间数据处理时,应选择适合你数据所在区域和所需精度的坐标系统。_epsg:4326

计算机主机线,小U解释了计算机主机电源线的连接图-程序员宅基地

文章浏览阅读1.6k次。许多朋友喜欢自己组装计算机,但是在组装计算机的过程中,他们发现许多线路接口连接是不同的. 例如,电源线的连接方法最复杂,因此,如果连接不正确,可能会导致无法正常启动. 那么如何连接主计算机电源线呢?以下编辑器将带您了解主机的电源线连接图.了解计算机配置的朋友具有组装计算机的经验. 您应该知道,组装计算机最复杂的部分是电源线的连接,这对于新手驾驶员来说也是最麻烦的事情. 所以今天我将介绍主计算机电源..._小u电源怎么接线图解

推荐文章

热门文章

相关标签