当前位置:首页 > 公众号精选 > strongerHuang
[导读]关注星标公众号,不错过精彩内容作者 |strongerHuang微信公众号 | 嵌入式专栏很多朋友长时间使用裸机编程,切换过来学习RTOS,就对其中很多概念产生误解。大部分人开始学习RTOS实时操作系统时,对RTOS中的一些概念都不太理解。一上来就是临界段、调度、信号量、互斥锁等...


关注 星标公众,不错过精彩内容

作者 | strongerHuang

微信公众号 | 嵌入式专栏


很多朋友长时间使用裸机编程,切换过来学习RTOS,就对其中很多概念产生误解。
大部分人开始学习RTOS实时操作系统时,对RTOS中的一些概念都不太理解。
一上来就是临界段、调度、信号量、互斥锁等这些概念,相信大部分初学者都是懵的。
不太懂这些概念很正常,一下子懂了,我倒反而觉得不正常。

1什么是多任务

这里大部分人应该都是从裸机阶段过来的,裸机系统一般也称之为单任务系统、轮询系统前后台系统


这个概念相信大家都能明白,轮询就是在一个大while循环里执行。前后台系统就是在执行while时,有中断(前台)响应的系统。

int main(void){  /* 初始化 */ while(1) {    /* 循环处理多项事情 */ }}

那么,什么是多任务呢?


当多任务操作系统使用某种任务调度策略允许两个或更多进程并发共享一个处理器时,事实上处理器在某一时刻只会给一件任务提供服务


因为任务调度机制保证不同任务之间的切换速度十分迅速,因此给人多个任务同时运行的错觉。

---来自百度百科


初学者可以理解为:有类似上面的多个轮询系统


如下代码,将大while中的多项事情,分为几个事情,分别处理

void Task1(void){ /* 初始化 */ while(1) { /* 处理事情1 */ }}
void Task2(void){ /* 初始化 */ while(1) { /* 处理事情2 */ }}

这里就要牵涉到各个任务之间的切换:任务调度



2任务调度

说任务调度之前,先说一插曲:

我开始学RTOS时,觉得CPU这么短时间(1ms)在各个任务之间来回切换,而且切换还需要执行那么多代码,这样CPU还能执行多少代码啊?

其实,我当时太低估了处理器的能力。


拿STM32F103跑72M来说,1ms时间可以执行的代码有多少,你们心里有概念吗?


沿着这个问题,大家进一步思考其实都能明白,区区那切换(任务调度)的几行代码对于CPU速度来说,这个处理时间可以忽略不计(当然,这是相对高速处理而言。如果低频的处理器,这个时间可能相对较长)


任务调度

任务调度可以分抢占调度和轮询调度


在RTOS中,为了使任务得到实时响应,一般使用抢占调度方式,我们拿UCOS为例:


你会发现只程序执行过程中,如果有高优先级任务带来,高优先级任务就会打断低优先级任务。


直到高优先级任务执行完,低优先级任务才得到相应。


这里有人可能会问:如果高优先级一直或长时间执行可以吗?


答案是:NO


这里就关系到任务优先级分配,以及任务设计问题。


一般来说,高优先级任务是在等待一个事件的触发,执行一件紧急,而不会太耗时的事情


太耗时任务一般留给低优先级任务,在系统不忙时慢慢处理。



调度过程

我们设置系统滴答为1ms时间,那么系统就会间隔1ms检查一次就绪任务中优先级更高的任务。


这个1ms滴答是由定时器中断产生,一般像在STM32由内核滴答定时器产生。


如上图,他在(2)的位置就检测到有更高优先级任务(7)就绪,此时就会跳转到任务(7)去执行。


------------ END ------------

后台回复『RTOS』『单片机』阅读更多相关文章。


欢迎关注我的公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
欢迎关注我的视频号:


点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2023年8月1日讯)7月27日,黑芝麻智能RTOS Microkernel产品获得DEKRA德凯颁发的ASIL D功能安全产品认证。本次认证通过标志着黑芝麻智能可以为客户提供一款高实时性、高安全性的本土操...

关键字: KERNEL MICRO RTOS 智能汽车

(全球TMT2022年11月9日讯)近日,DEKRA德凯为黑芝麻智能科技颁发ISO 26262:2018 ASIL D功能安全流程认证证书,标志着黑芝麻智能科技建立起了符合功能安全最高等级ASIL D级别的车规芯片开发...

关键字: 智能科技 ASIL ISO RTOS

有深入理解RTOS原理,或阅读过RTOS源码的同学应该知道:RTOS实现任务间通信通常是由一系列指针进行操作实现的。

关键字: RTOS 指针 数组

这次我成功将妹子约到了公司附近的咖啡馆,继续探讨RTOS的heap的技术特点。当我把准备好的数据和动图展示在她面前,她立马激动起来了。

关键字: RTOS heap FreeRTOS

很多RTOS之所以可以用于资源很少的单片机,是因为它们可以配置,一般可以使用宏定义来选择需要的功能,而裁剪掉不必要的功能,以减少对硬件的资源占用。

关键字: RTOS 单片机

处理特定任务的单片机可减轻主单片机或微处理器的任务和工作负荷,从而有助于简化各种应用的设计流程。

关键字: Microchip 单片机 RTOS

关注星标公众号,不错过精彩内容作者|strongerHuang微信公众号 | 嵌入式专栏不知道大家有没有做过低功耗产品?低功耗产品看似很简单,其实,要做好一款低功耗产品,特别是做到超低功耗,难度相对更高。今天就来讲讲在R...

关键字: RTOS 低功耗设计 单片机 CPU

关注星标公众号,不错过精彩内容作者|strongerHuang微信公众号 | 嵌入式专栏不知道大家有没有做过低功耗产品?低功耗产品看似很简单,其实,要做好一款低功耗产品,特别是做到超低功耗,难度相对更高。今天就来讲讲在R...

关键字: RTOS 低功耗设计

星标「嵌入式大杂烩」,一起进步!作者|strongerHuang微信公众号|嵌入式专栏经常在交流群都会看到有些小伙伴在问:**资料、**文档、**源码在哪里下载?资料、文档、源码在哪里找?很多初学小白,找资料、文档、源码...

关键字: RTOS 开源

AzureRTOS使资源受限的设备能够连接到微软的AzureIoT,这是全球领先的IoT生态系统之一。AzureRTOS为企业级应用程序(如航空电子设备、医疗设备、运输和工业控制)提供理想的软件开发平台而闻名,然而,其设...

关键字: RTOS 硬件 物联网设备
关闭
关闭