1 / 119
文档名称:

嵌入式系统设计与实例开发.ppt

格式:ppt   大小:1,469KB   页数:119页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式系统设计与实例开发.ppt

上传人:明哥 2022/7/7 文件大小:1.43 MB

下载得到文件列表

嵌入式系统设计与实例开发.ppt

相关文档

文档介绍

文档介绍:嵌入式系统设计与实例开发PPT模板课件
嵌入式系统设计与实例开发
——ARM与C/OS-Ⅱ
基本概念及设计方法
文档附赠有可编辑的3D小人素材
冯·诺依曼体系结构和哈佛体系结构
CISC与RISC
影响CPU性能的因素
统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有CPU的控制权。
按实时性分类
强实时系统,其系统响应时间在毫秒或微秒级(数控机床);
一般实时系统,其系统响应时间在毫秒-几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询)。
弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。
1)循环轮询系统:(Polling Loop)
最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。
Initialize()
While(true){
if(condition_1) action_1();
if(condition_2) action_2();
……
if(condition_n) acition_n();
}
按软件结构分类
2)事件驱动系统:(Event-Driven system)
事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。
应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。
后台也可以叫做任务级,前台也叫中断级。
例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。
前后台系统(后台循环、前台中断)
ISR
ISR
后台 前台
ISR
时间
代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。
在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。
代码的临界区
多任务(任务、进程和线程)
CPU寄存器
任务
控制
块1
任务
控制
块2
任务
控制
块n
休眠、就绪、运行、挂起、被中断
任务
1
任务
2
任务
n
……
CPU
寄存器
一个任务,也称作一个线程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级, 有它自己的一套CPU寄存器和自己的栈空间。
多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。
CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。
在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化-综合实验(时钟、位图、USB、KEY)。
任务的状态
系统内核(Kernel)与调度(Scheduler)
多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。
内核提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加ROM用量,内核本身的数据结构增加了RAM的用量。内核本身对CPU的占用时间一般在2到5个百分点之间。
调度(Scheduler)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指,CPU总是让处在就绪态的优先级最高的任务先运行。
任务优先级
静态优先级
应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的
动态优先级
应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。
优先级反转
信号量(Semaphore)
信号量是60年代中期Edgser Dijkstra 发明的。信号量实际上是一种约定机制,:
控制共享资源的使用权(满足互斥条件)
标志某事件的发生
使两个任务的行为同步
信号与信号量在英文中都叫做Semaphore,并不加以区分,而说它有两种类型,二进制型(binary)和计数器型(counting)
死锁(或抱死) Deadlock
死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在独享资