嵌入式系统软件嵌入式系统软件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统软件
杨剑锋
1. 嵌入式操作系统
嵌入式操作系统是个集合,而且是个无限集合
–监控程序Æ常规操作系统
(红外线Æ紫外线)
–一维和多维
嵌入式操作系统常常有实时要求–早期:嵌入式操作系统= 实时操作系统
–近期:
»1)手持计算机和掌上计算机的出现;
»2)CPU速度的提高;
»3)常规操作系统增加实时进程调度的支持,如
POSIX.4
Æ嵌入式操作系统<>实时操作系统 许多嵌入式操作系统的内核是微内核结构 许多嵌入式操作系统都不带磁盘
–根本不支持文件系统
–结构上为了设备驱动而支持文件系统,但不
支持文件系统的文件存储功能
许多嵌入式操作系统不采用存储管理技术,即不支持虚拟存储技术
许多嵌入式操作系统不划分“系统空间”和“用户空间”
–操作系统的“内核”与外围应用程序之间不再
有物理的边界;
–系统中所谓“进程”实际上全都是内核线程»静态连接、系统调用、进程调度/切换–对任何一个应用程序做细微的修改,都得重新生成整个系统,并且“下载”之;
–系统调用的界面太庞大;
–共享变量的访问,需要谨慎对待;
–把通用操作系统上的应用移植过来需考虑“可重入”的问题;
不分系统空间和用户空间<>必须静态连接–如DOS、CP/M的INT21
不分系统空间和用户空间<>不能用页面映射技术
–但只用于不同进程之间,而非不同空间之间 即使采用了存储管理,基本上都不采用页面交换技术
重启动技术(watch dog )
2. RTOS
是否实时
–一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题;
–另一方面同时也是反映的速度在多大的程度上得到保证的问题
中断延迟(Interrupt Latency)–中断不可嵌套
–LINUX的Bottom Half
–中断可嵌套:优先级中断
»大多微处理器不支持;
»LINUX不支持;
»UNIX支持
–与指令集有关
–DMA操作有关
–保证系统调用的原子性有关 调度延迟(Scheduling Latency)–中断处理程序进程处理
–一般调度算法(Round Robin)不能及时选
中
–基于优先级调度算法,一般能及时选中»如果目标进程优先级低呢?
–可剥夺调度和不可剥夺调度
»LINUX是属于什么调度?
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯→
事件或软中断
Linux 既不是完全的可剥夺,也不是完全的不可剥夺
上下文切换延迟(Context Switch Latency)–大小取决于CPU和操作系统
–采用MMU > 不采用MMU 只要发生调度,就能选中目标进程吗?
–根据时间片的耗用调整优先级
–拉开距离,分等级
对实时进程而言,“应该没有问题”不够。 是否可以不用中断、也不用调度,回到
最简单的“监控程序”?
实时性简介
对于什么是实时系统,POSIX 1003.b作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务
实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型
一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于CPU和其他资源进行有效的调度和管理,即实时调度
实时调度分类
各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:基于优先级的调度算法(Priority-driven scheduling-PD)、基于CPU使用比例的共享式的调度算法(Share-driven scheduling-SD)、以及基于时间的进程调度算法(Time-driven scheduling-TD)
从调度方式上来讲可以分为:可抢占、不可抢占;从时间片来分:固定时间片、可变时间片
实时性改造
对操作系统实时性的扩展可以从两方面进行:向外扩展和向上扩展
向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多
向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理
实时多任务OS-RTOS 单片机
–无os
–主程序
RTOS
–资源包装
–API
–可移植(只要1-4%)
实时系统
在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间
响应时间限定
可预知
实时操作系统与I/O
实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。就是:
●系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。
●系统能够处理和存储控制系统所需要的大量的数据。
周期性的系统 非周期性系统 硬实时系统
–灾难后果
软实时系统
–性能下降
RTOS与分时系统
事件响应时间限定
事件随机到达
系统可确定性
Rtos的历史 1)早早期的监控系统
–系统init
–时钟
–简单的任务调度
2)专用实时OS
–依赖于特定硬件
–移植性不好
3)通用RTOS
嵌入式软件开发平台
RTOS
标准化
可移植
设备独立
RTOS基本struct
实时多任务core
–任务管理:多任务和基于优先级的任务调度
–定时器:系统的实时时钟服务,以及各个定时任务的调入等
–Mem:管理系统的内存资源,如
DRAM,ROM,FLASHRAM等
–资源管理:管理系统的各种资源如系统的各种设备,端口,中断等;
–事件和消息管理:管理各种系统级的事件,如实时
中断响应,各种异常等;任务间同步和通信(信号
量和邮箱等)以及各种系统消息和应用程序之间的
通讯 RTOS的系统调用
90%以上的设备独立
RTOS的任务---分时系统Process