您现在的位置: 首页 热点关注 > > 正文
环球今日讯!FreeRTOS-STM32操作系统
发布时间:2023-06-21 17:21:01 来源:队牛弹琴

单片机的Helloworld程序中(让LED实现闪烁)的过程中,常常用到了延时,在这个延时过程中CPU相当于什么事情都没干,当然这只是个实现电平翻转的简单任务。但是一旦任务增多后CPU的算力就大打折扣,因为在延迟的过程中,CPU这个“劳动者”在等待时间消息,几乎不再工作,这就需要一种方法去最大化“压榨”CPU的算力,使得CPU全时间满负荷运行。

嵌入式设备一般分为以下几种:


(资料图片)

裸机系统、轮询系统、前后台系统、多任务系统。轮询系统就是一个主程序中不断运行无限循环里边的程序内容;前后台系统就是在轮询系统中加入了中断,中断事件的处理是在中断函数进行处理的,中断是前台,主程序是后台;多任务系统是事件的中断处理在主函数,中断函数负责传递中断标志位。

不同系统模型的对比如下图:

常见的操作系统如下:常用的 RTOS有国外的 FreeRTOS、μC/OS、RTX 和国内的 FreeRTOS、Huawei LiteOSAliOS-Things 等,其中尤以国外开源且免费的FreeRTOS 的市场占有率最高。操作系统其实就是把硬件资源虚拟化,把单核处理虚拟成“多核”提高“并发”感。这种思想非常重要,类似的有虚拟机,还有当下大量应用于物联网的Docker技术。

对于单核ARM单片机来说,要达到两个进程任务的几乎同步态,那是不可能的,所以对于多任务系统,要限制每个任务的运行时间,所以就需要分时切片处理,如下图,运行两个任务进程,每个任务进程的运行时间所占据的时间片一样的,只要时间片划分足够小,例如在毫秒级别上进行任务切换可以满足大部分系统的稳定运行需求。时间片上运行过程如下图 运行结果如下下图:

TWO

在操作系统,每一个要执行的任务,也就是一段程序的运行过程被称为一个 进程。进程包含着动态的概念,它是一个程序的运行过程,而不是一个静态的程序。进程体现在程序中形式实际上就是一段循环执行的代码,使用操作系统的任务创建函数创建了这个进程之后,操作系统就自动找到这段代码并执行。一段程序执行时,一般划分成三个阶段,开始执行--->执行中--->执行完成。这也恰好对应了进程的工作状态: 就绪态(Ready)---> 运行态(Running---> 终止态(Blocked)。如果在一个进程执行的过程中,调用了将进程挂起的功能函数,或者是进程执行时有更高优先级的 任务就绪了,则进程会进入 挂起状态(Suspended)。容易把阻塞态与挂起态相混,我的理解是处于阻塞态的时候进程在等待一个信号条件满足后继续运行,该信号条件可以是中断可以是信号量等等。而处于挂起态的时候该程序根本没运行,就像一个人被挂起,那他根本不可能完成任何任务。

由于使用时间切片引起任务进程的暂停容易导致正在处理的数据丢失,所以操作系统需要给每个任务进程分配一个内存,存储上个时间片尚未处理的任务数据。

同时任务进程的工作并不是完全独立的而是互相交替访问的,各个进程的通信也需要容易导致对某个变量的的访问极易出现冲突,所以需要一个信息传输的介质- 存储队列。该消息队列既能写入数据也能读取数据,消息队列对象一般以全局变量进行声明。消息缓存空间采用先进先出FIFO方式进行存储,实现效果如下图。

有限的硬件资源可能会被多个进程同时访问,并且有的进程对被控制实体的作用是相反的,极短时间内互斥任务进程的切换极易使得被控对象产生震荡,所以需要对互斥进程做一个规约,这个规约的实现就是信号量,FreeRTOS中可以实现任务之间同步或临界资源的互斥访问,常用于协助一组相互竞争的任务来访问临界资源。也可以用作进程顺序执行或者同步运行的保证。

具体来说信号量是一个非负整数,由临界资源释放,当信号量为0时,剩余任务进程失去资源访问的机会,只有当另一个任务停止访问临界资源时,才会释放出信号量。采用信号量的实现过程如下图所示。

单片机开发中用的最多就是二值信号量了,可以理解为一个位0和1,也可以理解为true或false如下图为二值信号量的实现过程。访问的任务进程只能有一个,所以就能避免访问资源引起的竞争与及规避控制效果的互斥。

在一个复杂控制系统中一个控制量常常需要多种事件的出现才能触发,事件的发生与消失用1和0来表示。多事件的状态可以通过FreeRTOS中的事件库进行事件状态的统一管理,FreeRTOS中一个事件组为32位,可通过配置文件修改其长度。

以32位为例其中高九位不可用,一个位代表一个事件,例如0x00000092就表示,因为0x00001188转换为二进制0b 0000 0000 0000 0000 0000 0000 1001 0010,然后通过查询事件句柄查询对应事件的发生与否。

THREE

要看懂FreeRTOS源码了解其原理,那么必须要学会c语言中常用的数据结构--- 链表结构,链表的源文件在list.c文件中,一般分为单向链表和双向链表,单向链表有头尾之分,双向链表则构成了一个环,分别指针分别指向上个链表节点地址和下个链表节点地址。

链表的节点成员以及成员作用如下图所示:

可以看出链表本身就不包含大量数据的存储,链表是一个动态的数据结构,将不连续的离散的硬件地址通过链表映射形成虚拟的连续存储地址,面试中也常常问到链表和数组的区别,数组是开辟了一个连续的存储地址,位置固定。

用最基础的部分的理解就到此结束,当然考虑到不同任务进程的优先级以及不同任务执行的时间长短,和kernel等事件的触发中断,因此FreeRTOS有着更为复杂的调度机制,比如本文开头提到的时间片轮转法,在考虑到任务优先级的时候,该算法根本不能保证高优先级的进程任务的执行,而且不同任务在排队列表中顺序各有差异。排队靠前的低优先级任务和排队较后的高优先级任务怎么取舍等一系列的问题。当然可以明确的是本系统的调度是由“ 先来先服务(FCFS)”调度算法,“ 优先级”调度算法,“ 时间片轮转”调度算法三种算法共同作用的。而且还可以通过设置宏configUSE_PREEMPTION来定义是采用抢占式还是合作式操作系统(说太多了不解释了.....)。

其实把用起来就知道操作系统的一个重要工作就是执行各个进程的状态切换,因为实际上单片机每次只能运行一个进程,而操作系统通过适当的管理,让每一个进程都可以得到及时的响应,让多个进程呈现出一种同时运行的“并发”感,和一根信号上传输多种信号的思想是一致的都是分时处理,但是速度肯定不及两根信号线分别传输两种信号。

现在的嵌入式入门门槛已经很低,原有的STM32固件库官方不在更新,使用CubeMX生成的HAL库正在逐渐替代原有的固件库,大大降低开发门槛提高开发效率。当然熟悉板子上的常用的寄存器会让你得心应手。

项目中关于RTOS问题的记录:

(1)FreeRTOS一定要配置好系统时钟,给予一个单独的硬件时钟源作为系统时钟。否则时间片的长度为无限大..程序只运行第一次进入的进程任务。

(2)队列的大小要设置得当,否则容易内存溢出,数据后移乱码等情况。

(3)中断中对事件组的操作一律使用....FromISR。

(4)任务进程中的延迟要使用操作系统中提供的延迟函数。

(5)应用操作系统是让CPU算力最大化,所以尽量使用官方提供的外设,GPIO口的通信尽量不要选择模拟协议自行编程,因为中间需要加入非操作系统的微秒级延迟,降低了CPU的使用效率。

(6)在通信队列操作中,读取完毕应将通信队列清空。

(7)单片机硬件系统会产生各式各样的中断,而FreeRTOS可以帮助你去对管理中断,由于STM32的内核中断优先级过高,所以规定FreeRTOS能使用的中断级别大于4.

标签:

2022中国企业500强榜单发布 500强规模突破百万亿元大关

昨天,中国企业联合会、中国企业家协会发布2022中国企业500强榜单。在这个体现企业综合实力排名的权威榜...

少数的生物具备再生能力 盘点6种身体部位再生的动物

如果我们能使缺失的肢体或受损的器官再生那绝对是一件再好不过的事情了。想象一下,由于你可以在你的一...

190岁塞舌尔巨龟Jonathan成为头条新闻 大多数龟类物种的硬壳带来较慢的衰老

190岁的塞舌尔巨龟Jonathan最近成为了头条新闻,它成为了世界上最古老的陆地动物。虽然有传闻称某些种类...

重庆:到2025年25个重点领域企业能效全部达到基准水平

3月18日,重庆日报记者从市发展改革委获悉,日前,市发展改革委、市经济信息委、市生态环境局、市市场监...

重磅!2021“发现重庆之美”获奖名单揭晓

3月19日,2021发现重庆之美颁奖典礼在线上举行,最美城市管理人、最美坡坎崖、最美街头绿地、垃圾分类时...

去年重庆回收废弃农膜1.4万吨 农膜回收率达89.31%

3月16日,市五届人大常委会第六十九次主任会议听取了市政府关于《重庆市人大常委会对市人民政府农业面源...

申报分两批!今年国家级博士后科研工作站新设站工作启动

3月19日,重庆日报记者从市人力社保局获悉,为推动产学研深度融合,加强博士后工作平台建设,我市将开展...

浙江鄞州:“水、电、气、数”通办专窗实现城乡公共服务均等化

近日,在宁波市鄞州区邱隘镇公共事务服务中心,66岁的邱隘镇沈家新村居民邱秀月在一个窗口相继办理了不...

打开“浙里办” 浙江1000家农贸市场农产品可线上比价

今天哪个菜场的五花肉最便宜?食品安全抽检结果怎么样?这些问题,浙江居民只需打开浙里办APP上的浙里市场...

浙江鉴湖国家湿地公园规划发布 打造乡村数字旅游

19日上午,鉴湖国家湿地公园规划发布暨东鉴湖农旅观光体验启动仪式在绍兴市越城区陶堰街道举行。当天,...

总投资超10亿元!6个石化装备运维项目在岱山签约

日前,总投资超10亿元的6个石化装备运维项目在岱山经济开发区集中签约。此次签约的项目占地106亩,规划...

如何避免成为“买而不做”的“装备党”祝 杰

自恋是人的天性,人们总是希望自己是更好的,那么自己拥有的事物,也就相应地被自我赋予了更高的价值,...

山西临汾:率先在全省建起农村集体经济开发区

3月17日,临汾市农村集体经济发展(集团)有限公司在临汾经济开发区揭牌。以此为标志,临汾率先在全省建起...

一线工作近22年的缉毒警:我知道坏的是毒品不是人性

  “影子”般的缉毒警:一线工作22年,我知道坏的是毒品不是人性  如果我不继续干,别人也要干,缉...

广东肇庆“毒驾连撞5车致1死”肇事司机被批捕

  1月5日14时30分许,广东肇庆市端州区一男子赵某毒驾连撞5车,致一人死亡。  1月10日,澎湃新闻(ww...

江西最大文物倒卖案宣判:倒卖国家二级文物 9人获刑

  中新网南昌1月10日电 (冷峥嵘 张一怡)江西省共青城市人民法院10日发布消息称,近日,该院依法审结...

青海保障门源地震后生活必需品应急物资

  中新网西宁1月10日电 (记者 孙睿)记者10日从青海省商务厅获悉,青海海北州门源县6 9级地震灾害发...

广西东兴口岸恢复通关 入境需网上预约

  中新社防城港1月10日电 (翟李强)自2022年1月10日零时起,广西东兴口岸和边民互市贸易区恢复人员、...

呼和浩特:寒假期间有条件的学校要开展校内托管服务

  中新网呼和浩特1月10日电 (记者 张林虎)10日,记者从呼和浩特市教育局获悉,在暑假校内托管试点的...

“中国最后一个原始部落”翁丁老寨火灾原因公布

  “中国最后一个原始部落”翁丁老寨火灾原因公布:小孩玩火引起  中新网昆明1月10日电 (罗婕)近日...

北京市十五届人大五次会议胜利闭幕

  北京市十五届人大五次会议胜利闭幕   蔡奇陈吉宁李伟魏小东张延昆出席   张延昆齐静当选市人...

天津市委市政府致全市父老乡亲的慰问信:我们一定能够打赢

  中新网天津1月10日电 (记者 张道正)中共天津市委、天津市人民政府10日发布了“致全市父老乡亲的慰...

天津米面油存量由20天提高至30天 超市菜市场进货量翻倍

  天津米面油存量由20天提高至30天 蔬菜库存量、超市菜市场进货量翻倍  记者10日从天津市商务局获...

兰州名师话“美育”:“尚乐立人”分层培优 以“美”润教

  中新网兰州1月10日电 (记者 刘玉桃 高莹)“实际上音乐课作为一门非高考科目,一直以来没有受到足...

子夜直击,天津寒天战“疫”

  新华全媒+|子夜直击,天津寒天战“疫”  新华社天津1月10日电 题:子夜直击,天津寒天战“疫”...

重庆姐弟被生父扔下坠亡案上诉期结束 一审法院暂未收到两被告人上诉状

天津:划定封控区 全市开展全员核酸检测

江歌母亲江秋莲:尊重法院判决,法律认定在我意料之中

中国边疆“北方第一所”:9名民警守护“生命禁区”

辟谣!网传“封控区管控区相继解封”通知并非西安

河南安阳9日12时至24时新增11例本土确诊病例

老人5折环卫工8折生活困难免费 这家面馆背后有个暖心事

铁路公安以110幅优秀书画作品庆祝人民警察节

本周中东部冷空气频繁 东北等地有降雪

河南新增本土确诊病例60例

“打拐”民警眼里的百态人生:见证一份份不愿放弃的爱

迎腊八北京晴天上线 阵风6至7级体感冻人

多省份倡议春节“非必要不离开”,这地补贴1000元

伪造国家机关证件典型案例发布 有力打击制假贩假行为

15年照顾170多个新生儿 金牌月嫂“漂”到海外去看娃

江歌母亲江秋莲诉刘鑫案一审将于今日宣判

河南省安阳市两地划为高风险地区 一地划为中风险地区

员工迟到一次罚一千引争议 单位惩戒员工法律边界何在?

以体育人 秀出“青年范儿”

保安、厨师曾被竞业限制 企业滥用竞业限制让员工很苦恼

反诈老陈破圈:人民群众在哪 就把反诈宣传开展到哪

一所中职学校的育人实践

各地严惩恶意欠薪 保障农民工及时拿到工资

中学生成剧本杀行业潜在消费人群 多方助推行业“净化”

“这就是我最好的选择”

对餐饮浪费说“不”(百姓关注)

校园“直通车” 服务“零距离”

琉璃河遗址 两段铭文共证北京三千年建城史

千元修复个人征信报告?银行:“征信修复”都是骗局

琉璃河遗址 两段铭文共证北京三千年建城史

北京公交将开展无人驾驶道路测试

河南郑州调整五地为中风险区域 公路入郑需核酸检测阴性证明

“共享法庭”让金融消费者畅享“智慧司法”便利

《传奇2》网游著作权纠纷案峰回路转 最高法五份裁决四份改判一份发回重审

三代警察:从未放弃的28年

“胡叔叔”的寻亲工作室

天津津南本轮本土疫情第3—20例阳性感染者活动轨迹公布

“团圆”行动刑侦专家吕游 每一个案例都有单独的技术方案

河南“战疫”直面五重考验

开考古书店日均两三个顾客 流量时代她决心仍是只卖书

冬奥开幕在即 “双减”催热冰雪课堂

“不得以任何借口拒收患者”彰显生命至上

天津多站进京车票暂停发售

冷空气来袭广州气温骤降 广东多地发布寒冷预警

“电话发我”——“霸气回应”疫情求助背后的城市温度

天津津南区再增20例阳性感染者,详情公布

电影《农民院士》昆明首映 为观众呈现“把论文写在大地上”

南宁铁路警方春运期间将免费提供被拐儿童父母DNA检测服务

天津津南调整区域风险等级:1个高风险6个中风险!

天津全面加强离津管理 实施离津审批报备制度

x 广告
x 广告

Copyright ©  2015-2022 北冰洋自然网版权所有  备案号:沪ICP备2020036824号-3   联系邮箱:562 66 29@qq.com