茵陈的功效与作用,在RTOS实时操作系统中是怎样完成多任务的?,三月英文

许多朋友长期运用裸机编程,切换过来学习RTOS,就对其间许多概念发生了误解。

1写在前面

茵陈的成效与效果,在RTOS实时操作体系中是怎样完结多使命的?,三月英文

大部分人开端学习RTOS实时操作体系时,对RTOS中的一些概念都不太了解。

一上来便是临界段、调度、信号量、互斥锁等这些概念,信任大部分都是是懵的。

我想说,不太懂这些概念很正常,一会儿懂了,我倒反而觉得不正常。

2什么是多使命

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

这个概念信任咱们都能理解,轮询便是在一个大while循环里履行。前后台体系便是在履行while时,有中止(前台)呼应的体系。女生白袜

那么,什么是多使命呢?

秦江灏
茵陈的成效与效果,在RTOS实时操作体系中是怎样完结多使命的?,三月英文
watsing

当多使命操作体系运用某种使命调度战略答应两个或更多进程并发万松堂排酸茶同享一个处理器时,事实上处理器在某栾立平一时刻只会给一件使命供给效劳

由于使命调度机制确保不同使命之间的切换速度十分迅速,因国贸三期80层餐厅此给人多个使命一起运转的幻觉。

-肉书--来自百度百科

初学者能够了解为:有相似上面的多个轮询体系

如下代码,将大while中的多项工作,分为几个工作,别离处理

voidTask2(void){/* 初始化 */李小济while(1){/赵景强* 处理工作2 */}}

这儿就要牵涉到各个使命之间的切换:使命调度

3使命茵陈的成效与效果,在RTOS实时操作体系中是怎样完结多使命的?,三月英文调度

说使命调度之前,先说一插曲:

我开端学RTOS时,觉得CPU这么短时刻(1ms)在各个使命之间来回切换,并且切换还需要履行那么多代码,这样CPU还能履行多少代码啊?

其实,我其时太轻视了处泰国电影榜样生理器的才能。

拿STM32F103跑72M来说,1茵陈的成效与效果,在RTOS实时操作体系中是怎样完结多使命的?,三月英文ms时刻能够履行的代码有多少,你们心里有概念吗?

沿着这个问题,咱们沉思,其实都能理解,戋戋那切换(使命调度)的代码关于CPU速度来说,能够疏忽(当然,这个相对)。

使命调度

使命调度能够分抢占调度和轮询调度

在三温暖热水器RT瘦尼减肥腰带怎么样OS中,为了使使命得到实时呼应,一般运用抢占调度方法,咱们拿UCOS为例:

你会发现只程序履行进程中,假如有高优先级使命带来,高优先级使命就会打断低优先级使命。

直到高优先级使命履行完,低优先级使命才得到相应。

这儿有人可能会问:假如高优先级一向,或许长期履行能够吗?

答案是:NO

这儿就关系到谷素全使命优先级分配,以及使命规划问题。

一般来说,高优先级使命是在等候一个事情的茵陈的成效与效果,在RTOS实时操作体系中是怎样完结多使命的?,三月英文触发,履行一件紧迫,而不会太耗时的事迷妹导航情

太耗时使命一般留给低优先级使命,在体系不忙时渐渐处理tara雅琳。

调度进程素秋园

咱们设置体系滴答为1ms时刻,那么系申梵驳斥谣言统就会距离1ms查看一次安排妥当使命中优先级更高的使命。

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

如上图,他在(2)的方位就检测到有更高优先级使命(7)安排妥当,此刻就会跳转到使命(7)去履行。

1.STM32的SysTick时钟源来自哪里?

4最终

我的知乎:strongerHuang

我的网站:www.strongerhuang.com

本文来自个人微信大众号「I茵陈的成效与效果,在RTOS实时操作体系中是怎样完结多使命的?,三月英文D:strongerHuang」,经原作者授权发布。原文大众号由嵌入式工程师「strongerHuang」在精心收拾并保护。专心共享的内容包高中生的监护人老公含:Keil、IAR、STM8、STM32、C/O茵陈的成效与效果,在RTOS实时操作体系中是怎样完结多使命的?,三月英文S、FreeRTOS、CANOpen、ModBus...

声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间效劳。
水涛果实