嵌入式开发——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

智能推荐

go语言编写php扩展,golang 编写 PHP 扩展-程序员宅基地

文章浏览阅读133次。phper 都知道 php-extension 采用 C/C++ 编写.由于 C/C++ 开发效率问题我们来采用 golang 编写 php-extension充分利用 golang 的开发效率和生态给 PHP 添砖加瓦.环境准备wsl ubuntugolang 1.13php 7.3新建项目php7.3 里面的 ext_skel 和以前版本参数不一样,请查看 help 操作php:./ext..._封装一个go的扩展给php程序调用

python 删除print()两个输出语句之间的空格_print中间有空格-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏3次。python 删除print()两个输出语句之间的空格。回文诗:静思伊久阻归期忆别离时闻漏转。_print中间有空格

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。-程序员宅基地

文章浏览阅读335次,点赞6次,收藏7次。(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。System.out.print( "请键入一个正整数: ");(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

caktus ai最适合学生的AI助手(有免费额度)-程序员宅基地

文章浏览阅读1k次。Caktus AI是一个AI写作助手。它会将您的文本输入变成一个完整的家庭作业答案。您可以使用 Caktus 撰写论文解决数学问题和编写代码。该工具有免费试用版和负担得起的计划,供学生无限制使用。简而言之,该工具在几秒钟内生成了大部分原创和独特的内容。它易于使用,但它在令人信服的语气中也犯了一些错误。Caktus 非常适合学生作为 AI 辅助工具,以帮助进行锻炼并提高生产力。该工具可以从头到尾完成练习,但会犯一些错误,有时会生成非原始文本。_caktus ai

jq对象与js对象_js对象中使用jq-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏3次。jquery中的$(“#id”)与document.getElementById(“id”)的区别以前一直认为jquery中的$(“#id”)和document.getElementByIdx_x(“id”)得到的效果是一样的,今天做特效的时候才发现并不是这么一回事,通过测试得到:1、alert($(“#div”))得到的是[object Object]2、alert(document_js对象中使用jq

Unity 100面试题_unity100题-程序员宅基地

文章浏览阅读995次。原文_unity100题

随便推点

【CV第一篇】计算机视觉的四大基本任务_cv任务-程序员宅基地

文章浏览阅读5.2k次,点赞9次,收藏48次。修炼一途,乃窃阴阳,夺造化,转涅槃,握生死,掌轮回。武之极,破苍穹,动乾坤!! ——《武动乾坤》_cv任务

matlab医学图像处理实现读取图片头文件信息,图片三等分及灰度图绘制 ( 医学图像处理教材示例一)_医学图像处理与分析课本示例代码答案-程序员宅基地

文章浏览阅读3k次,点赞9次,收藏43次。matlab实现读取图片头文件信息,图片三等分及灰度图绘制医学图像处理教材示例一此文章是医学图像处理与分析第二版教材示例一代码1 解读下面图像的文件头和位图信息数据程序如下clearfid=fopen('示例一.bmp','r');fileinfo=(fread(fid,54)); %此处54为读取行数读取结果为一个列矩阵每行对应结果如图。15行之后还有其他数据,..._医学图像处理与分析课本示例代码答案

sony电视投屏android,Wow,将苹果Macbook投屏到索尼BRAVIA原来是这样玩…教程分享-程序员宅基地

文章浏览阅读5.5k次。索尼BRAVIA一直以来坚持优秀的音画体验得以成为行业发展的风向标,在进入智能时代之后,丰富有趣的功能体验也倍受关注。今年的索尼BRAVIA高端新品都搭载了Android TV 8.0,在内容丰富性和操作上都有了更出色的体验。图1.jpg (98.61 KB)2020-7-18 09:38 上传索尼BRAVIA智能电视除了能够提供优质丰富的在线流媒体资源,还能将智能手机上的内容通过第三方应用投屏到..._mac连接索尼电视 声音断续

Python数据处理035:结构化数据分析工具Pandas之Pandas概览_python中只能表示结构化算法的算法描述工具-程序员宅基地

文章浏览阅读5.1k次,点赞9次,收藏41次。Python结构化数据分析工具Pandas之Pandas概览_python中只能表示结构化算法的算法描述工具

【postgresql】postgresql字段类型变更varchar---> Float_pgsql 修改字段类型-程序员宅基地

文章浏览阅读4.4k次。这个错误是由于 PostgreSQL 不支持直接将 varchar 类型转换为 double precision 类型,需要先将该字段的 varchar 类型转换为 numeric 类型,再将 numeric 类型转换为 double precision 类型。注意:这两个语句执行后,原来表中的数据类型会被修改为 FLOAT 类型,如果原来的数据不是有效的浮点数,转换过程中可能会出现错误。请注意,这里的转换可能会因为数据类型不匹配而失败,需要先备份好数据再进行操作。_pgsql 修改字段类型

AGV叉车式智能运载机器人_转塔数控车床_混凝土罐车3D_仓库托盘运输小车_汽车装饰盖板模具设计_AGV叉车式智能运载机器人_汽车灯透镜片模具_数控车床 Creo 设计_地摊摆摊小推车模型……_agv机器人3d模型-程序员宅基地

文章浏览阅读228次。Ottawa公共汽车公交车模型3D图纸 Solidworks设计 附STEP。倒骑驴三轮车简易模型3D图纸 Solidworks设计 附STEP。荷兰铁路欧洲快车模型3D图纸 Solidworks设计 附工程图。仓库托盘运输小车3D图纸 Solidworks设计 附STEP。摩托车前悬架3D数模图纸 Solidworks设计 附IGS。蒸汽机车模型3D图纸 Solidworks设计 附平面图。简易宝马X5汽车3D模型图纸 Solidworks设计。拖车结构3D图纸 Solidworks设计 附STEP。_agv机器人3d模型