嵌入式实时操作系统μCOS原理与实践1.pdf

上传人:qwe****56 文档编号:74660014 上传时间:2023-02-27 格式:PDF 页数:38 大小:1.02MB
返回 下载 相关 举报
嵌入式实时操作系统μCOS原理与实践1.pdf_第1页
第1页 / 共38页
嵌入式实时操作系统μCOS原理与实践1.pdf_第2页
第2页 / 共38页
点击查看更多>>
资源描述

《嵌入式实时操作系统μCOS原理与实践1.pdf》由会员分享,可在线阅读,更多相关《嵌入式实时操作系统μCOS原理与实践1.pdf(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践嵌入式实时操作系统嵌入式实时操作系统C/OS原理与实践原理与实践作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 考虑到各专业读者学习方向不同,有些已经学习过操作系统原理,对一般的操作系统原理有一定的认识,有些电子专业的读者并没有深入学习过操作系统原理,另外有些读者对C语言掌握的程度并不太高,因此本书采用由浅入深,层层推进的方作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 在第一章给出实时操作系统的基础,为以后各章的学习打下基础,满足未学习过操作系统的读者,而学习过操作系统的读

2、者也要掌握本章的内容,因为嵌入式实时操作系统有其个性。代码的讲解上在第2章任务管理的部分尽量详尽,从第3章中断和时间管理开始,因为读者已经具备了或提高了C语言的能力,对读者已经掌握的内容就不赘述,但对新的难点仍给以详尽解析嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践2.关于实践 实践是检验真理的标准,所学的知识必须结合实际。除给出在基于Nios II的FPGA系统上移植,前面各章例子都是通过将作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 通过本书的学习,应能较为全面、深入的掌握嵌入式实时操作系统的基本原理,能够读懂读通C/OS的包括内核、任务管理、

3、时间和中断管理、信号量管理、互斥信号量管理事件标志组管理消息邮箱管理作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 第一章是操作系统和嵌入式实时操作系统的基本原理,第一章是操作系统和嵌入式实时操作系统的基本原理,对于对原理掌握已经比较好的有一定基础的读者可以选对于对原理掌握已经比较好的有一定基础的读者可以选择跳过或略读。择跳过或略读。第二章是任务管理,是基本内容,需要对数据结构和源第二章是任务管理,是基本内容,需要对数据结构和源代码仔细体会。代码仔细体会。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 第三章是时间和中断管理,时间

4、管理包括一些函数,中第三章是时间和中断管理,时间管理包括一些函数,中断管理主要是中断的流程。断管理主要是中断的流程。第四章、第五章是事件和消息部分,包含了各种事件和第四章、第五章是事件和消息部分,包含了各种事件和消息机制。消息机制。第六章是内存管理。第六章是内存管理。第七章是移植的流程分析和在虚拟平台以及具有软核的第七章是移植的流程分析和在虚拟平台以及具有软核的FPGA下的移植。下的移植。嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践5.先期知识 学习本课程的先前知识是:C语言,汇编,简单的数据结构。可以同步学习微机原理或单片机、DSP等。作者卢有亮 图书作者卢有亮 图书PPT和全部

5、代码下载和全部代码下载http:/ 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 书上有路勤为径书上有路勤为径 学海无涯苦作舟学海无涯苦作舟作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 购买本人图书的朋友,请不吝发表评购买本人图书的朋友,请不吝发表评价和建议!在此表示感谢!价和建议!在此表示感谢!嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践关于C/OS-II一一.要高效的开发嵌入式系统,就离不开嵌入式操作系要高效的开发嵌入式系统,就离不开嵌入式操作系统,一方面,高实时性的操作系统软件是嵌入式软件统,一方面,高实时性的操作系统软

6、件是嵌入式软件的基本要求。另一方面,嵌入式软件开发要想走向标的基本要求。另一方面,嵌入式软件开发要想走向标准化准化,就必须使用多任务的操作系统就必须使用多任务的操作系统。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 第一章是操作系统和嵌入式实时操作系统的基本原理。第二章是任务管理,是基本内容,需要对数据结构和源代码仔细体会。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 第三章是时间和中断管理,时间管理包括一些函数,中断管理主要是中断的流程。第四章、第五章是事件和消息部分,包含了各种事件和消息机制。第六章是内存管理。嵌入式实时操

7、作系统原理与实践嵌入式实时操作系统原理与实践第一章 实时操作系统基础第一章 实时操作系统基础 1.1 操作系统概述 1.2 实时操作系统概述 1.3任务作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 1.4基于优先级的不可剥夺内核 1.5同步与通信嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践1.1 操作系统概述操作系统概述1.1.1 什么是操作系统什么是操作系统操作系统操作系统OS(Operating System)是裸机上的第)是裸机上的第一层软件。操作系统是计一层软件。操作系统是计算机系统中最重要的系统算机系统中最重要的系统软件,是硬件的第一层封

8、软件,是硬件的第一层封装与抽象,在计算机系统装与抽象,在计算机系统中占据着重要的地位中占据着重要的地位,所所作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 操作系统概述操作系统概述1.1.2 操作系统基本功能操作系统基本功能1.任务管理任务管理任务是程序的一次执行。任务可以任务是程序的一次执行。任务可以分为系统任务和用户任务。系统任分为系统任务和用户任务。系统任务是操作系统本身的任务,如操作务是操作系统本身的任务,如操作系统的主程序,时钟中断服务程序,系统的主程序,时钟中断服务程序,如后面要讲到的空闲任务和统计任如后面要讲到的空闲任务和统计任务等。用户任务是用户

9、应用程序的务等。用户任务是用户应用程序的运行,如用户设计的计算器软件的运行,如用户设计的计算器软件的一次执行或一次执行或WORD软件的运行软件的运行,2.CPU管理管理CPU管理的含义在于多任务管理的含义在于多任务OS对对CPU的分配,也就是分配对的分配,也就是分配对CPU的所有权,简单说,哪个软件正在的所有权,简单说,哪个软件正在运行,占有运行,占有CPU。可以把它归入。可以把它归入任务管理。任务管理。3.内存管理内存管理内存是任务的生存空间。内存管理内存是任务的生存空间。内存管理用于给任务分配内存空间,相应的,用于给任务分配内存空间,相应的,在任务结束后释放内存空间。在任务结束后释放内存空

10、间。4.文件管理文件管理文件管理系统是实现对文件的统一文件管理系统是实现对文件的统一管理,是对文件存储器的存储空间管理,是对文件存储器的存储空间进行组织,分配和回收,负责文件进行组织,分配和回收,负责文件的存储,检索,共享和保护。从用的存储,检索,共享和保护。从用户角度来看,文件系统主要是实现户角度来看,文件系统主要是实现按名取存按名取存文件系统的用户只要文件系统的用户只要5.IO设备管理设备管理管理系统中的各种硬件设备,如打管理系统中的各种硬件设备,如打印机,显示器,硬盘等。很明显,印机,显示器,硬盘等。很明显,用户应用程序应该调用用户应用程序应该调用IO设备管理设备管理模块提供的模块提供的

11、API来对设备进行操作,来对设备进行操作,而不是直接读写硬件而不是直接读写硬件作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ Time Operating System)是指当外界事件或数据产生时,能够接收并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。1.2.1什么是实时操作系统什么是实时操作系统作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 图书作者卢有亮 图书PPT和

12、全部代码下载和全部代码下载http:/ usertask(void*pParam)INT8U i=0;for(;)printf(%dn,i);作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ tick,指每个时钟周期)中断一次,而被剥夺指每个时钟周期)中断一次,而被剥夺CPU的使的使用权,而进入挂起态。在中断返回的时候,若该任务还是最高优用权,而进入挂起态。在中断

13、返回的时候,若该任务还是最高优先级的,就恢复运行,如果不是这样,只能回到就绪态。先级的,就恢复运行,如果不是这样,只能回到就绪态。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ switch,是任务调度的重要部分。从字面上是上,是任务调度的重要部分。从字面上是上下文切换。任务切换是暂停一个任务的运行,运行另一个就绪的任务。下文切换。任务切换是暂停一个任务的运行,运行另一个就绪的任务。暂停一个任务,以后又能恢复运行,必须考虑将这个任务运行的信息保暂停一个任务,以后又能恢复运行,必须考虑将这个任务运行的信息保存,而恢复运行的时候需要将这些信息恢复到运行环境。存,而恢

14、复运行的时候需要将这些信息恢复到运行环境。任务切换必须做环境的保存和恢复的操作任务切换必须做环境的保存和恢复的操作。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 可重入和不可重入函数可重入和不可重入函数函数可重入是指一个函数可以被多个任务调用,而不需要担心在任务切函数可重入是指一个函数可以被多个任务调用,而不需要担心在任务切换的过程中,代码的执行会产生错误的结果。换的过程中,代码的执行会产生错误的结果。如果函数被多个任务调用,可能产生错误的结果,就是不可重入函数。如果函数被多个任务调用,可能产生错误的结果,就是不可重入函数。例子:教材表例子:教材表1.4-1.

15、5作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 内核内核1.4.1内核内核内核是操作系统最核心的部分,其主要功能就内核是操作系统最核心的部分,其主要功能就是进行任务调度。所谓调度,就是决定多任务是进行任务调度。所谓调度,就是决定多任务的运行状态,哪个任务应该处于图的运行状态,哪个任务应该处于图1.4中的哪种中的哪种作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 内核内核1.4.1基于优先级的调度算法基于优先级的调度算法在在C/OS中,可以同时有中,可以同时有64个就绪任务,每个个就绪任务,每个任务都有各自的优先级。优先级用无符号

16、整数任务都有各自的优先级。优先级用无符号整数来表示,从来表示,从0到到63,数字越大则优先级越低。,数字越大则优先级越低。总是调度就绪了的总是调度就绪了的优先级最高的任务优先级最高的任务作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 内核内核1.4.1不可剥夺和可剥夺内核不可剥夺和可剥夺内核作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.1同步同步任务是独立的,但是任务之间又有着各种各样的关系,任务是独立的,但是任务之间又有着各种各样的关系,以成为一个整体,来完成某一项工作。有时候一个任务以成为一个整体

17、,来完成某一项工作。有时候一个任务完成的前提是需要另一个任务给出一个结果,任务之间完成的前提是需要另一个任务给出一个结果,任务之间的这种制约性的合作运行机制叫做任务间的同步。的这种制约性的合作运行机制叫做任务间的同步。例如,例如,A任务实现计算功能,任务实现计算功能,B任务输出任务输出A任务计算的任务计算的作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.2互斥互斥前面的例子中,前面的例子中,A和和B两个任务都要访问计算结果这个两个任务都要访问计算结果这个共享资源,但是在共享资源,但是在A写这个资源的同时,写这个资源的同时,B必须等待,

18、必须等待,而不能在而不能在A写到一半的时候结束写到一半的时候结束A而让而让B来读,这样会来读,这样会产生灾难性的后果。产生灾难性的后果。这样的共享资源称为临界资源(这样的共享资源称为临界资源(Critical Resource)。)。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.3临界区临界区每个任务中访问共享资源的那段程序称为临界区每个任务中访问共享资源的那段程序称为临界区(Critical Section),因为共享资源的访问是要互斥),因为共享资源的访问是要互斥的。在临界区不允许任务切换,这是最根本的原则。的。在临界区不允许任

19、务切换,这是最根本的原则。因为如果在访问共享资源的时候进行任务切换,就可能因为如果在访问共享资源的时候进行任务切换,就可能发生前面提到的灾难性后果发生前面提到的灾难性后果。因此因此,在进入临界区访问在进入临界区访问作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.4任务事件任务事件事件(事件(Event)就是在操作系统运行过程中发生的事情。)就是在操作系统运行过程中发生的事情。例如任务被挂起、唤醒、创建等。例如任务被挂起、唤醒、创建等。C/OS操作系统在处理任务的同步和通信等环节,大操作系统在处理任务的同步和通信等环节,大量的使用了事件

20、这一概念,创建了事件控制块这样的数量的使用了事件这一概念,创建了事件控制块这样的数据结构以进行事件的管理。据结构以进行事件的管理。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.5信号量信号量在一个时刻,有些共享资源只可以被一个任务所占有,在一个时刻,有些共享资源只可以被一个任务所占有,而有些可以被至多而有些可以被至多N个任务所共享。前一种共享资源就个任务所共享。前一种共享资源就好比有一把钥匙,钥匙发出去了,得到钥匙的任务可以好比有一把钥匙,钥匙发出去了,得到钥匙的任务可以访问共享资源,其他请求该资源的任务必须等得到钥匙访问共享资源,

21、其他请求该资源的任务必须等得到钥匙的任务把钥匙归还。后者则可以有的任务把钥匙归还。后者则可以有N把钥匙,如果把钥匙,如果N把把钥匙都发完了,第钥匙都发完了,第N+1个请求访问共享资源的任务就必个请求访问共享资源的任务就必须等待须等待这些钥匙就可以用信号量这些钥匙就可以用信号量(semaphore)来来作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.5信号量信号量信号量三种操作:信号量三种操作:1.建立(建立(create)建立并初始化信号量,在一个事件块里标志该信号,记录该信号建立并初始化信号量,在一个事件块里标志该信号,记录该信号的

22、量值,执行的是给资源配钥匙的操作。该操作的条件是系统中的量值,执行的是给资源配钥匙的操作。该操作的条件是系统中还有空余的事件块。操作系统能处理的事件是有限的,任何的数还有空余的事件块。操作系统能处理的事件是有限的,任何的数据结构都不能无限,尤其是在实时系统中。据结构都不能无限,尤其是在实时系统中。2.请求(请求(pend)请求信号请求信号,如果还有钥匙如果还有钥匙(信号量大于信号量大于0),),就去领一把就去领一把(信号量信号量作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.6互斥信号量互斥信号量互斥信号量是一种特殊的信号量,这不仅在

23、于该信号互斥信号量是一种特殊的信号量,这不仅在于该信号量只有用于互斥资源的访问,还在于使用互斥信号量管量只有用于互斥资源的访问,还在于使用互斥信号量管理需要解决的优先级反转问题。理需要解决的优先级反转问题。如系统中有三个任务分别是高优先级、中优先级和低如系统中有三个任务分别是高优先级、中优先级和低优先级的,当低优先级的任务在运行的时候访问互斥资优先级的,当低优先级的任务在运行的时候访问互斥资源,而中优先级的任务运行的时候将使低优先级的任务源,而中优先级的任务运行的时候将使低优先级的任务得不到运行而死抱着资源不放得不到运行而死抱着资源不放这是高优先级的任务开这是高优先级的任务开作者卢有亮 图书作

24、者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.7事件标志组事件标志组在信号量和互斥信号量的管理中,任务请求资源,在信号量和互斥信号量的管理中,任务请求资源,如果资源未被占用就可继续运行,否则只能阻塞,等待如果资源未被占用就可继续运行,否则只能阻塞,等待资源释放的事件发生。这种事件是单一的事件。如果任资源释放的事件发生。这种事件是单一的事件。如果任务要等待多个事件的发生,或多个事件中的某一个事件务要等待多个事件的发生,或多个事件中的某一个事件的发生就可以继续运行,那么就应该采用事件标志组管的发生就可以继续运行,那么就应该采用事件标志组管理。理。事件标志

25、组管理的条件组合可以是多个事件都发生事件标志组管理的条件组合可以是多个事件都发生作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 同步和通信同步和通信1.5.8 消息邮箱和消息队列消息邮箱和消息队列邮箱邮箱(MailBox)很明显是用于通信的,邮箱中的内容一很明显是用于通信的,邮箱中的内容一般是信件。操作系统也通过邮箱来管理任务间的通信与般是信件。操作系统也通过邮箱来管理任务间的通信与同步,邮箱中的内容却不是信件本身,而是指向消息内同步,邮箱中的内容却不是信件本身,而是指向消息内容的地址!这个指针是容的地址!这个指针是void类型的,可以指向任何的类型的,可以指向

26、任何的数据结构。因而这样的设计更经济,所发送的信息范围数据结构。因而这样的设计更经济,所发送的信息范围也就更宽,邮箱中可以容纳下任何长度的数据了。也就更宽,邮箱中可以容纳下任何长度的数据了。消息队列消息队列(message queue)也用于给任务发消息也用于给任务发消息作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ queue)也用于给任务发消息也用于给任务发消息,但是它是由多个消息邮箱组合形成的,是消息邮箱的集但是它是由多个消息邮箱组合形成的,是消息邮箱的集合,实质上是消息邮箱的队列。一个消息邮箱只能容纳合,实质上是消息邮箱的队列。一个消息邮箱只能容纳一条消

27、息,采用消息队列,一是可以容纳多条消息,二一条消息,采用消息队列,一是可以容纳多条消息,二是消息是有序的。是消息是有序的。嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践1.6 中断和时钟中断和时钟嵌入式实时操作系统的中断是指在任务的执行过程中,当出现异常情况嵌入式实时操作系统的中断是指在任务的执行过程中,当出现异常情况或特殊请求时,停止任务的执行,转而对这些异常情况或特殊请求进行或特殊请求时,停止任务的执行,转而对这些异常情况或特殊请求进行处理,处理结束后再返回当前任务的间断处,或由于中断服务程序使更处理,处理结束后再返回当前任务的间断处,或由于中断服务程序使更高优先级的程序就绪,转

28、而执行优先级更高的任务。中断是实时地处理高优先级的程序就绪,转而执行优先级更高的任务。中断是实时地处理内部或外部事件的一种内部机制。这里异常情况或特殊请求是中断源,内部或外部事件的一种内部机制。这里异常情况或特殊请求是中断源,称为异步事件,处理异步事件所的程序是中断服务程序。称为异步事件,处理异步事件所的程序是中断服务程序。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/ 习题习题 1.什么是操作系统,什么是实时操作系统,实时操作系统应该具有哪些特性?2.什么是任务,任务和程序有什么区别?任务都有哪些状态?3.编写一个可重入函数,实现将整数转换字符串。说明为什么该函数是可重入的。作者卢有亮 图书作者卢有亮 图书PPT和全部代码下载和全部代码下载http:/

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

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

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁