基于ARM的嵌入式系统设计与实现第8讲 嵌入式实时多任务.pdf

上传人:qwe****56 文档编号:74664363 上传时间:2023-02-27 格式:PDF 页数:32 大小:104.59KB
返回 下载 相关 举报
基于ARM的嵌入式系统设计与实现第8讲 嵌入式实时多任务.pdf_第1页
第1页 / 共32页
基于ARM的嵌入式系统设计与实现第8讲 嵌入式实时多任务.pdf_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《基于ARM的嵌入式系统设计与实现第8讲 嵌入式实时多任务.pdf》由会员分享,可在线阅读,更多相关《基于ARM的嵌入式系统设计与实现第8讲 嵌入式实时多任务.pdf(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技基于基于ARM的嵌入式系统的嵌入式系统设计与实现设计与实现Design and Implementation of ARM Based Embedded SystemsCopyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技基于ARM的嵌入式系统设计与实现基于ARM的嵌入式系统设计与实现第1讲嵌入式系统基础第1讲嵌入式系统基础第2讲基于ARM的板级嵌入式系统硬件平台第2讲基于ARM的板级嵌入式系统硬件平台第3讲从软件开发的角度看AR

2、M硬件平台第3讲从软件开发的角度看ARM硬件平台第4讲板级嵌入式软件开发与运行环境第4讲板级嵌入式软件开发与运行环境第5讲基于ARM的硬件系统的启动及初始化第5讲基于ARM的硬件系统的启动及初始化第6讲嵌入式操作系统移植和使用第6讲嵌入式操作系统移植和使用第7讲板级嵌入式设备驱动程序第7讲板级嵌入式设备驱动程序第8讲嵌入式实时多任务应用软件第8讲嵌入式实时多任务应用软件第9讲嵌入式系统的测试与调试第9讲嵌入式系统的测试与调试第10讲 嵌入式系统的优化第10讲 嵌入式系统的优化Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技第8讲 嵌

3、入式实时多任务应用软件第8讲 嵌入式实时多任务应用软件8.1 引言8.2 传统实时软件开发8.3 基于实时操作系统的多任务软件开发8.4 常用实时嵌入式软件组件8.5 小结8.6 实验Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.1 引言引言嵌入式系统作为专用的计算机系统,往往对应用软件的实时性提出了一定的要求。在早期的单片机开发中,往往利用中断满足实时性要求。当系统变得越来越复杂时,基于中断的应用软件不能满足要求,而且也会带来设计和调试等方面的问题。基于实时操作系统的多任务应用软件将很好的解决这些问题。Copyright 2

4、003-2007 SinoSys.All Rights Reserved双实科技双实科技8.2 传统实时软件开发(传统实时软件开发(1)Main()InitHardware();/初始化硬件InitData();/初始化数据while()/主程序进入循环等待dosomething();/周期性一些操作ISR XX()有实时性要求的工作Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.2 传统实时软件开发(传统实时软件开发(2)?传统的不基于操作系统的应用软件一般使用外部中断来满足实时性要求。系统在上电后,跳转到用户代码段执行,用户

5、程序代码首先对硬件和数据进行必要的初始化,随后将进入一个循环。将对实时性要求不高的一些操作放在循环体内执行。一些对实时性有要求的操作,如A/D数据采集,串口数据发送等操作放在外部的时钟中断或设备中断服务子程序中。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.2 传统实时软件开发(传统实时软件开发(3)?基于中断应用软件的不足:a)不能满足复杂的应用b)时序问题c)很难调试Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3 基于实时操作系统的多任务软件开发基于实时

6、操作系统的多任务软件开发?8.3.1 实时多任务的基本概念?8.3.2 实时操作系统多任务内核?8.3.3 多任务通讯?8.3.4 实时多任务软件实现Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.1 实时多任务的基本概念(实时多任务的基本概念(1)?任务:任务:任务是代码运行的一个映像,从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、I/O设备及内存空间等系统资源,并独立于其它任务,与它们一起并发运行(宏观上如此)。?多任务多任务:多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转

7、换、调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行很像前后台系统,但后台任务有多个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.1 实时多任务的基本概念(实时多任务的基本概念(2)?临界区:临界区:指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执

8、行完以后要立即开中断。?资源:资源:任何为任务所占用的实体都可称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器,资源也可以是一个变量,一个结构或一个数组等。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.1 实时多任务的基本概念(实时多任务的基本概念(3)?Context Switch:在有的书中翻译成上下文切换,实际含义是任务切换,或CPU寄存器内容切换。当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(Context),即CPU寄存器中的全部内容。这些内容保存在任务的当前状况保存区(Tasks C

9、ontext Storage area),也就是任务自己的栈区之中。入栈工作完成以后,就是把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程叫做任务切换。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.2 实时操作系统多任务内核(实时操作系统多任务内核(1)?多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核

10、来管理它们。内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的栈空间,这一块吃起内存来是相当厉害的。内核本身对CPU的占用时间一般在2到5个百分点之间。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.2 实时操作系统多任务内核(实时操作系统多任务内核(2)?调度(Scheduler),英文还有一词叫dispatcher,也是调度的意思。这是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程

11、度的不同被赋予一定的优先级。基于优先级的调度法指,CPU总是让处在就绪态的优先级最高的任务先运行。然而,究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是不可剥夺型的还是可剥夺型内核。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.2 实时操作系统多任务内核(实时操作系统多任务内核(3)?可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在CPU寄存器中或堆

12、栈中。如果使用全局变量,则要对全局变量予以保护。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.2 实时操作系统多任务内核(实时操作系统多任务内核(4)?当两个或两个以上任务有同样优先级,内核允许一个任务运行事先确定的一段时间,叫做时间额度(quantum),然后切换给另一个任务。也叫做时间片调度。内核在满足以下条件时,把CPU控制权交给下一个任务就绪态的任务:a)当前任务已无事可做b)当前任务在时间片还没结束时已经完成了。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技

13、双实科技8.3.2 实时操作系统多任务内核(实时操作系统多任务内核(5)?每个任务都有其优先级。任务越重要,赋予的优先级应越高。?优先级反转问题?任务优先级分配Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.3 多任务通讯多任务通讯(1)?多任务通讯的方式a)共享内存,主要是数据的共享;b)信号量,用于基本的互斥和任务同步c)消息队列和管道,单CPU的消息传送d)Socket和远程过程调用,用于网络间任务消息传送Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.

14、3.3 多任务通讯多任务通讯(2)?共享内存:共享内存:任务间通信的最简单的方法是采用共享存储区,也即相关的各个任务分享属于它们的地址空间的同一内存区域。因为所有任务都存在于单一的线性地址空间,任务间共享数据。全局变量、线性队列、环形队列、链表、指针都可被运行在不同上下文的代码所指向。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.3 多任务通讯多任务通讯(3)?信号量:信号量:信号量提供最快速的任务间通信机制,它主要用于解决任务间的互斥和同步。针对不同类型的问题,有以下三种信号量:a)二进制信号量:使用最快捷、最广泛,主要

15、用于同步或互斥;b)互斥信号量:主要用于优先级继承、安全删除和回溯;c)计数信号量Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.3 多任务通讯多任务通讯(4)?消息队列:消息队列:现实的实时应用由一系列互相独立又协同工作的任务组成。信号量为任务间同步和联锁提供了高效方法。单处理器中任务间消息的传送采用消息消息队列。消息机制使用一个被各有关进程共享的消息队列,任务之间经由这个消息队列发送和接收消息。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.4 实时多

16、任务软件实现(实时多任务软件实现(1)?以C/OS-为例,介绍操作系统提供给用户的多任务管理接口。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.4 实时多任务软件实现(实时多任务软件实现(2)?建立任务,OSTaskCreate()?建立任务,OSTaskCreateExt()?堆栈检验,OSTaskStkChk()?删除任务,OSTaskDel()?请求删除任务,OSTaskDelReq()?改变任务的优先级,OSTaskChangePrio()?挂起任务,OSTaskSuspend()?恢复任务,OSTaskResum

17、e()Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.3.4 实时多任务软件实现(实时多任务软件实现(3)应用软件开发指导:应用软件开发指导:a)任务划分要合理b)防止死锁、饥饿和优先级翻转c)函数的可重入性(Reentrancy)正确运用d)使用名称访问资源e)用户任务优先级确定Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.4 常用实时嵌入式系统组件常用实时嵌入式系统组件?8.4.1 时钟管理?8.4.2 内存管理?8.4.3 文件系统?8.4.4 设备管理?

18、8.4.5 网络通讯?8.4.6 图形编程Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.4.1 时钟管理时钟管理?时钟管理提供以下功能:?维护系统日历时钟;?在任务等待消息包、信号量、事件或内存段时的超时处理;?以一定的时间间隔或在特定的时间唤醒或发送告警到一个任务。?处理任务调度中的时间片轮循。?这些功能都依赖于周期性的定时中断,离开实时时钟或定时器硬件就无法工作。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.4.2 内存管理内存管理?在嵌入式实时操作系统中

19、,多次动态分配内存会把原来很大的一块连续内存区域,逐渐地分割成许多非常小而且彼此又不相邻的内存区域,也就是内存碎片。由于这些碎片的大量存在,使得程序到后来连非常小的内存也分配不到。因此,多数嵌入式操作系统会提供内存管理机制,实现对内存的管理,减少内存碎片。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.4.3 文件系统文件系统?从某种意义上说,文件系统是IO系统的一部分,或者说是IO系统的扩展。如果将IO系统作为一个独立的高层抽象,文件系统和字符设备驱动一样是一个驱动程序,用于辅助设备的管理。?常用文件系统介绍。Copyrigh

20、t 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.4.4 设备管理设备管理?嵌入式操作系统利用设备管理机制驱动系统底层的硬件,而向应用软件提供统一的接口。大大简化了应用软件中对硬件设备的操作。?IO设备一般可分为字符型设备和块设备。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.4.5 网络通讯网络通讯?嵌入式操作系统中实现网络通讯一般使用套接字(sockets)。?套接口可以根据通讯性质分类。用户目前使用两种套接口,即流套接口(采用TCP协议)和数据报套接口(采用UDP协议)。?

21、套接口(socket)通信的最大优点是:过程间的通信是完全对等的,不管网络中过程的定位或主机所运行的操作系统。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.4.6 图形编程图形编程?针对有图形化人机界面需求的嵌入式应用软件,嵌入式操作系统一般会提供图形化编程的API接口供应用程序调用。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.5 小结小结本章由传统的实时软件的实现方法引出基于嵌入式操作系统的多任务应用软件。介绍了多任务的概念及实现方法。最后列举出应用开发中使用的操作系统基本组件。Copyright 2003-2007 SinoSys.All Rights Reserved双实科技双实科技8.6 实验实验?构建嵌入式Linux文件系统。?制作和烧写Cramfs文件系统。?安装与建立QT桌面运行环境?交叉编译Qt/Embedded?安装与建立QTOPIA桌面运行环境?交叉编译QTOPIA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com