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

单片机支持操作系统的特性

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-11-16 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
1、支持操作系统的特性概述:+ V( o% r$ m. n
就拿M0核的单片机来说,就有一部分特性是针对嵌入式操作系统的(OS),包括:; M( i8 \: P3 p7 ?( c) L
l Systick定时器,24位向下计数,且周期产生SysTick异常。
- {7 [, j! m" t/ P  f+ m# S3 O+ L5 C0 Kl 栈指针,即进程栈指针,两个栈指针的结构可以使得应用栈和OS内核栈相互独立。) O. D6 p3 J) U0 c! f$ f4 B# B  s
l SVC异常和SVC指令,通过异常机制,应用程序可以使用SVC访问OS服务。
. I6 Y) ]: h7 A( f. fl PendSV异常,其可以被OS、设备驱动或者应用程序使用来产生可延迟的服务请求。4 C5 T6 h3 _7 h
2 f# p9 M- r; t0 ]
2、为什么要使用嵌入式操作系统?  j! B' w1 `0 g# N, w# x* d/ U
当提到操作系统的时候,大多数人首先会想到Windows和Linux之类的桌面操作系统。这些操作系统要想运行起来,需要强大的处理器、大量的存储器以及其他硬件,而对于嵌入式设备,各种OS的差别很大。嵌入式操作系统可以运行在低功耗的微控制器上,它们需要很少的存储器(相对于桌面系统),并且运行的时钟频率要低很多,比如Keil RTX只需要4KB的程序空间以及大约0.5KB的SRAM,一般情况下,这些操作系统设置不需要显示或者键盘。当然也可以增加一些显示接口和输入设备,并且通过运行在OS上的应用任务来访问这些输入和输出接口。
# I$ }$ m" D3 L3 Q: _7 i' ?2 Z
3 h3 J$ i7 H3 J/ I: |7 z: v在嵌入式应用程序中,OS一般用来管理多任务。在这种情况下,OS将处理器时间划分多个时间片,并且在每个时间片上执行不同的任务。当一个时间片结束时,OS任务调度器开始执行,这样在下一个时间片开始的时候,处理器已经切换到其他任务执行了。这种任务切换一般被称作上下文切换。
* F6 V8 C' d3 y) v& {- x, O* [2 A6 j0 a5 C
每个时间片的长度依赖于硬件以及操作系统的设计,有些嵌入式操作系统每秒会进行几百次的任务切换。# C9 p" I/ _! ^; S- }3 c" ]; ^

( U- `7 e8 R1 ?有些嵌入式OS也为每个任务定义了优先级,这样高优先级的任务就能在低优先级任务之前执行。如果一个任务的优先级比其他的都要高,在其到达空闲状态前,OS可能会连续多个时间片都在执行这个任务。应该注意的是,OS的优先级的定义与异常优先级是完全独立的(例如中断的优先级)。任务的优先级基于特定的OS,并且随着OS的不同而有所区别。6 {3 o5 U- O( e' P! J

6 n! c6 a6 r% u  e! r" }除了支持多任务以外,嵌入式OS也提供了其他各种功能,包括资源管理、内存管理、电源管理,以及应用程序编程接口(API)用以访问外设、硬件和信道。
" C9 v  I6 S* b4 U* s" u- E. N5 N( p( B% ^% @

" Q: S# R* u4 e+ V8 z7 g: t
# J& L* G7 d! ~7 X- u9 ^使用嵌入式OS并不总是有好处的,因为它需要额外的程序空间来存放OS内核,而且会增加执行周期的开销。多数简单应用并不需要嵌入式OS,不过,有些复杂的嵌入式应用需要并行执行任务,这时使用OS会使软件开发更加容易,并且降低出现错误的概率。" i4 C1 @1 O9 F7 h5 ]$ K- m
- a; l% f  l9 I0 d4 d1 S
目前,可以应用在M0上的嵌入式OS有很多,例如,Keil 微控制器开发套件提供的免费且易于使用的RTX kernel,另外还有Micrium的uc/OS-II和uc/OS-III等都支持M0处理器。并且这个支持的操作系统在不断的增加中。
8 d" q3 K, D/ }  D. v* }0 [, f! o1 a' d/ Q3 `
由于很多微控制器是不具备存储器管理单元(MMU),比如我们上面时候的M0核的处理器,所以它不能运行需要虚拟地址的嵌入式OS,比如Windows CE或Symbian OS。平常使用的Linux OS也需要MMU,它也不能再M0上工作。而uCLinux是Linux的特殊版,并且面向的是没有MMU的嵌入式设备,所以要在微控制器上加入OS也要先看能不能支持,并且支持哪些,再结合自己的项目实际选取。
& H# Z0 u  q7 l! T/ Z4 {) E( o$ k

该用户从未签到

2#
发表于 2021-11-16 14:18 | 只看该作者
在嵌入式应用程序中,OS一般用来管理多任务

该用户从未签到

3#
发表于 2021-11-16 14:18 | 只看该作者
嵌入式OS也提供了其他各种功能,包括资源管理、内存管理、电源管理,以及应用程序编程接口
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-5 12:10 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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