找回密码
 注册
关于网站域名变更的通知
查看: 296|回复: 2
打印 上一主题 下一主题

ARM9(三星2410/2440) 多任务抢占式调度器 简易0S设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-9-27 13:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本文档以ARM9(三星 2410/2440)为平台,介绍一个多任务抢占式调度器------抢占式任务调度,提供延时,挂起,恢复任务操作。最精简化,没有加入信号量邮箱等同步通信机制。只实现一个基本任务调度器的功能。1 k; z3 _: s' I6 p
虽然不能称为操作系统,但已体现了小型嵌入式操作系统的精髓。OS代码不到1.5K,核心函数只有几个,思路简单明了。比起 UCOS,更适合用作多任务系统原理的学习入门。  对初学者来说,看UCOS的源代码很容易迷糊。
% Y: V0 M& d( S回想初学嵌入式多任务系统时,什么都不懂,Jean  J.Labrosse 的经典之作《嵌入式实时操作系统 uc/osII》看得我一头雾水。事实上,使我对多任务的原理印象最深的是网上的一篇文章----《建立一个属于自己的AVR的 RTOS》 。6 J3 H$ S) [; E4 q
学习就应该这样,循序渐进。把一步步把简单的东西弄懂了,便没有复杂的了,所谓水到渠成。8 Y( T9 G; u& ^: y3 g, \3 ?
这篇文章是面对初学者的,把很多问题简化了。希望对刚接触嵌入式多任务系统的兄弟有所帮助。
( a2 w$ m8 b/ a; ]* X, z% t3 [) W必定存在不少 bug,欢迎指正。2 a. |0 r4 v0 @: ^5 E* @

: v; `" k8 z, X* O, a$ g
& ?; f$ c3 |  t/ k, N  j  什么是多任务系统?4 S, J4 [# b( r  |0 D( ^7 G
就像我们用电脑时可以同时听歌,上网,编辑文档等。在多任务系统中,可以同时执行多个并行任务,各个任务之间互相独立。通过操作系统执行任务调度而实现宏观上的“并发运行” 。从宏观上不同的任务并发运行,好像每个任务都有自己的 CPU一样。% K& `: U! S8 b1 t- J6 t! @& z: {
其实在单一CPU的情况下,是不存在真正的多任务机制的,存在的只有不同的任务轮流使用CPU,所以本质上还是单任务的。但由于 CPU 执行速度非常快,加上任务切换十分频繁并且切换的很快,所以我们感觉好像有很多任务同时在运行一样。这就是所谓的多任务机制。9 ^' K6 b/ q; H
多任务的最大好处是充分利用硬件资源,如在单任务时(大循环结构,如大部分 51程序)遇到 delay函数时,CPU在空转;而在多任务系统,遇到 delay或需等待资源时系统会自动运行下一个任务,等条件满足再回来运行先前的任务,这样就充分利用了 CPU,提高了效率。( |+ [" }7 ^* G* u9 n- N9 L

) H* ~9 j1 Q% n7 q, o8 o4 y* |3 e1 y, A' {3 F
任务有下面的特性:( _( v! x/ b- q* a$ h

* [  {# o( m% `9 p4 Z6 Y/ ol  动态性。任务并不是随时都可以运行的,而一个已经运行的任务并不能保证一直占有CPU直到运行完。一般有就绪态,运行态,挂起态等。
% l+ I% m; N' f0 B' j+ w  运行态。一个运行态的任务是一个正在使用 CPU的任务。任何时刻有且只有一个运行着的任务。, ]: T/ w/ W! H$ [1 d0 R
  就绪态。一个就绪态任务是可运行的,等待占有 CPU的任务释放 CPU。% P+ |# v0 v- z
  挂起态。某些条件不满足而挂起不能运行的状态。
/ i7 A" M9 c7 [, x+ w6 O1 e
1 f4 B* f; u0 W4 ?2 c# r
) D' n0 U6 u8 j2 ~

4 p: e& H% T2 z
* e8 X+ {: j- B6 `7 Y
4 ?: J% o& s9 b' w/ N

/ A5 d8 x% ]" p  X' C

该用户从未签到

2#
发表于 2021-9-27 13:48 | 只看该作者
在单一CPU的情况下,是不存在真正的多任务机制的,存在的只有不同的任务轮流使用CPU,所以本质上还是单任务的

该用户从未签到

3#
发表于 2021-9-27 19:30 | 只看该作者
多任务的最大好处是充分利用硬件资源
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-18 22:26 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表