2022年微实时操作系统方案与实现大学方案 .pdf
《2022年微实时操作系统方案与实现大学方案 .pdf》由会员分享,可在线阅读,更多相关《2022年微实时操作系统方案与实现大学方案 .pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、个人资料整理仅限学习使用目 录摘要 1 1.1 选题的目的和意义31.2 国内外的研究现状和趋势31.2.1 ARM 处理器 31.2.2 操作系统 52 系统设计 72.1 可行性分析 72.2 需求分析 72.3 系统功能设计 82.3.1 总体结构 82.3.2 RTOS 内核处理流程 83 系统开发环境和工具103.1 开发环境 103.2 开发工具 104 系统详细设计 104.1 任务创建模块 114.2 任务调度模块 124.3 任务通信模块 125 系统具体实现 135.1 任务创建模块 135.1.1 任务 135.1.2 任务状态 135.1.3 任务控制块 145.1.4
2、 任务就绪表 155.2 任务调度模块 175.2.1 基于优先级抢占调度175.2.2 时钟节拍函数 185.3 任务间的通信 196 系统测试 216.1 工程一:内核移植到周立功LPC2138 测试及 RS232串口的实现 216.2 工程二:内核多任务的抢占调度及任务的睡眠机制226.3 工程三:任务管理测试226.4 工程四:任务间通信测试- 互斥信号量 227 总结和展望 22Abstract24参考文献 25精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 24 页个人资料整理仅限学习使用微实时操作系统设计与实现田德伟德州学
3、院计算机系,山东德州 253023)摘要 :随着物联网的发展,嵌入式系统在人们的生活中的作用日益凸显。嵌入式操作系统在嵌入式开发中也逐步得到了开发人员的关注,如何在保证嵌入式系统的效率的前提下,降低开发成本,成为诸多厂商关注的焦点。该微实时操作系统与现行linux 系统具有相比,具有更高实时性;与 /COS-ii 相比内核更精简、在控制产品成本中有巨大优势。该系统主要针对低端微处理器平台,旨在降低开发成本同时提高嵌入式系统对外围设备管理效率。该系统支持八个优先级,每个优先级可以创建一个任务,任务间同步采用信号量机制。关键字 :嵌入式实时操作系统,/COS-ii ,嵌入式系统1 引言1.1 选题
4、的目的和意义随着微电子技术的快速发展,芯片功能更加强大,微嵌入式实时操作系统必将成为嵌入式操作系统发展的趋势,这不仅能降低成本,缩小产品体积,还能增强产品的可靠性。同时,软件硬件的紧密结合,嵌入式软件与硬件界线更加模糊,嵌入式软件时常以硬件形态存在,这种方式可提高实时性,增强可维护性。1.2 国内外的研究现状和趋势嵌入式操作系统种类繁多,有资源开销很少的IC 卡操作系统,也有功能较强的网络计算机操作系统。这些嵌入式操作系统从功能到性能各具特色,为各种硬件环境及应用提供了相应的支持和服务。目前市场上共有几十种操作系统,有多任务系统,也有单任务系统;有实时系统系统,也有分时系统。总之,不同厂商推出
5、的操作系统或多或少都有差异,但许多嵌入式操作系统一般具有如下一些内容和功能:系统核心、窗口图形系统、文件系统、设备驱动程序和网络协议等。嵌入式操作系统系统将有以下方向趋势:1. 随着微电子技术的快速发展,芯片功能更加强大,嵌入式实时操作系统必将成为嵌入式操作系统的发展趋势,这不仅能降低成本,缩小产品体积,还能增强产品的可靠性。同时,软件硬件的紧密结合,嵌入式软件与硬件界线更加模糊,嵌入式软件时常以硬件形态存在,这种方式可提高实时性,增强可维护性。 2. 嵌入式操作系统会与嵌入应用软件协同发展。嵌入式系统中的重要角色包括嵌入式应用软件,嵌入式系统应用领域千差万别,只有充分重视应用精选学习资料 -
6、 - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 24 页个人资料整理仅限学习使用软件的发展,才能满足丰富多彩的应用要求。1.2.1 ARM 处理器ARMAdvanced RISC Machines )是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC 处理器、相关技术及软件。技术具有性能高、成本低和能耗小的特点。适用于多种领域,比如嵌入控制、消费/ 教育类多媒体、 DSP和移动式应用等。ARM 处理器共有 7 种运行模式:用户模式 user ,use ) 正常程序执行模式快速中断模式 fiq )用于高速数据传输和通道处理外部中断模式
7、 irq )用于通常的中断处理管理模式 sve ) 操作系统使用的一种保护模式数据访问终止模式 abt )用于虚拟存储及存储保护未定义指令终止模式 und )用于支持通过软件方针硬件的协处理器系统模式 sys )用于运行特权级的操作系统任务除了用户模式之外的6 种处理器模式称为特权模式privileged modes )。在这些模式下,程序可以访问所有的系统资源,也可以任意的进行处理器模式切换。除系统模式外,其他5 种特权模式又称为异常模式。处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下。这时,应用程序不能够访问一些受操作系统保护
8、的系统资源,应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器处理器模式的切换。这种体系结构可以使系统控制整个系统的资源。当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,拥护模式下的寄存器 保存了程序运行状态)不被破坏。系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源
9、,同时该任务仍然使用拥护模式的寄存组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时任务状态不被破坏。ARM 处理器含有 37 个寄存器,这些寄存器包括以下两类寄存器。1 )31 个通用寄存器:包括程序计数器PC 等,这些寄存器都是32位寄存器。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 24 页个人资料整理仅限学习使用操作系统的工作方式是:用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,在系统中形精选学习资料 - - - - - - - - - 名师归纳总结 - - - -
10、- - -第 4 页,共 24 页个人资料整理仅限学习使用成一个自动转接的连续的作业流,然后启动操作系统,系统自动、依次执行每个作业,最后由操作员将作业结果交给用户。批处理操作系统的特点是:多道和成批处理。2. 分时操作系统分时(Time Sharing操作系统的工作方式是:一台主机连接了若干个终端,每个终端有一个用户在使用。用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。用户根据上步结果发出下道命。分时操作系统将CPU 的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。每个用户轮流
11、使用一个时间片而使每个用户并不感到有别的用户存在。分时系统具有多路性、交互性、 “ 独占” 性和及时性的特征。多路性指,伺时有多个用户使用一台计算机,宏观上看是多个人同时使用一个CPU,微观上是多个人在不同时刻轮流使用CPU。交互性是指,用户根据系统响应结果进一步提出新请求(用户直接干预每一步 。“ 独占 ”性是指,用户感觉不到计算机为其他人服务,就像整个系统为他所独占。及时性指,系统对用户提出的请求及时响应。它支持位于不同终端的多个用户同时使用一台计算机,彼此独立互不干扰,用户感到好像一台计算机全为他所用。常见的通用操作系统是分时系统与批处理系统的结合。其原则是:分时优先,批处理在后。 “
12、前台” 响应需频繁交互的作业,如终端的要求;“ 后台 ” 处理时间性要求不强的作业。3. 实时操作系统实时操作系统 (RealTimeOperatingSystem,RTOS 是指使计算机能及时响应外部事件的请求在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统要追求的目标是:对外部请求在严格时间范围内做出反应,有高可靠性和完整性。其主要特点是资源的分配和调度首先要考虑实时性然后才是效率。此外,实时操作系统应有较强的容错能力。4. 网络操作系统网络操作系统是基于计算机网络的,是在各种计算机操作系统上按网络体系结构协议标准开发的软件,包括网络
13、管理、通信、安全、资源共享和各种网络应用。其目标是相互通信及资源共享。在其支持下,网络中的各台计算机能互相通信和共享资源。其主要特点是与网络的硬件相结合来完成网络的通信任务。5. 分布式操作系统精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 24 页个人资料整理仅限学习使用它是为分布计算系统配置的操作系统。大量的计算机通过网络被连结在一起,可以 获 得 极 高 的 运 算 能 力 及 广 泛 的 数 据 共 享 。 这 种 系 统 被 称 作 分 布 式 系 统(DistributedSystem 。它在资源管理,通信控制和操作系统的结
14、构等方面都与其他操作系统有较大的区别。由于分布计算机系统的资源分布于系统的不同计算机上,操作系统对用户的资源需求不能像一般的操作系统那样等待有资源时直接分配的简单做法而是要在系统的各台计算机上搜索,找到所需资源后才可进行分配。对于有些资源,如具有多个副本的文件,还必须考虑一致性。所谓一致性是指若干个用户对同一个文件所同时读出的数据是一致的。为了保证一致性,操作系统须控制文件的读、写、操作,使得多个用户可同时读一个文件,而任一时刻最多只能有一个用户在修改文件。分布操作系统的通信功能类似于网络操作系统。由于分布计算机系统不像网络分布得很广,同时分布操作系统还要支持并行处理,因此它提供的通信机制和网
15、络操作系统提供的有所不同,它要求通信速度高。分布操作系统的结构也不同于其他操作系统,它分布于系统的各台计算机上,能并行地处理用户的各种需求,有较强的容错能力。2 系统设计2.1 可行性分析1)技术可行性:根据开发人员提供的系统函数接口、实时性及实现系统的各项条件,从技术的角度研究实现系统的可行性。2)经济可行性:经济可行性是可行性研究的重要组成部分,它用于评估基于计算机系统的经济合理性,给出系统开发的成本论证。本系统是为保险公司信息管理而做的系统,装上该应用系统后即可使用,在系统移植方面简单,对硬件设备的要求进一步降低,节约了不必要的支出,所带来的效益大于系统的开发成本,在经济上完全可行。函数
16、从空闲 TCB 池取得空闲的TCB,并根据用户 分 配 堆 栈 的 大 小 确 定 任 务 堆 栈 的 栈 顶 指 针 , 调 用 任 务 堆 栈 初 始 化 函 数OSTaskStkInit(对任务堆栈进行初始化,返回任务堆栈的栈顶指针;然后调用函数 OSTCBInit(完成对任务控制块的初始化工作;最后把任务控制块存放任务就绪列表中,具体流程如图4-2 所示:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 24 页个人资料整理仅限学习使用空闲TCB池空闲TCB任务控制块初始化任务堆栈初始化任务堆栈栈顶指针任务编号任务列表空闲TCB
17、图 4-2 4.2 任务调度模块首先 taskStart(函数根据任务编号和任务列表得到任务控制块,把任务的编号和优先级放存放到OSIDPrioTbl和就绪列表中,然后启动任务调度器,根据OSIDPrioTbl和就绪列表查找进入就绪态优先级最高的任务,最后调用函数OS_TASK_SW(完成任务切换。任务调度具体流程如图4-3 所示:OSTCBRdyTbl列表taskStart()任务进入多任务调度列表任务编号任务列表任务控制块任务控制块优先级存储OS_Sched()多任务调度器任务优先级任务控制块任务优先级OS_TASK_SW()任务切换启动任务图 4-3 4.3 任务通信模块首先, semC
18、reate(函数从空闲的OS_EVENT池中取得一个空闲事件控制块,并完成对其的初步初始化,将其放到事件列表中;然后,当前任务调用函数semTake(时,检查互斥信号量是否可用,如果可用当前任务占用该信号量,否则调用OSEventTaskWait(函数将当前任务从就绪列表移除存放到事件等待列表精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 24 页个人资料整理仅限学习使用中;最后,如果占用该互斥信号量任务的任务调用semGive(释放信号量,调用函数 OSEventTaskRdy(,查找等待该互斥信号量优先级最高的任务,将其从等待列表
19、移除存放到就绪列表中,等待任务调度。具体数据流程如图4-4 所示:事件控制块初始化事件列表空闲OS_EVENT 池互斥信号量事件等待列表OS_EVENT事件编号任务编号控制块任务编号任务编号任务编号OS_EVENT图 4-4 5 系统具体实现5.1 任务创建模块5.1.1 任务一个任务通常是一个无限的循环。一个任务看起来像其它C 的函数一样,有函数返回类型,有形式参数变量,任务返回类型必须定义为void型,但是任务是绝不会返回的。任务可以在一次执行完毕之后被删除,并不是任务代码被删除,只是内核不会再理会该任务的代码,该任务再也不能运行了。5.1.2 任务状态图 5-1 是 RTOS 内核控制下
20、的任务状态转换土,在任一给定时刻,任务的状态一定是在这六种状态之一。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 24 页个人资料整理仅限学习使用僵死状态就绪态运行态阻塞态睡眠态中断服务态taskDelete()taskCreate()任务被抢占OS_TASK_W()semTake()taskSleep()OSTimeTick()semGive()时钟中断OSIntExit()taskDelete()taskDelete()图 5-1 僵死状态 来实现。任务一旦被创建就处于僵死状态,通过taskStart(使任务进入就绪态。任何任务
21、的创建可以是在多任务运行之前,也可以是动态地被一个运行着的任务建立。如果一个任务是被另一个任务建立的,而这个任务的优先级高于建立它的那个任务,则这个刚刚建立的任务将立即得到CPU 的控制权。一个任务可以通过taskDelete(返回到僵死状态,也可以通过调用该函数使另一个任务进入僵死状态。正在运行的任务可以通过调用函数taskSleep(使自身主动放弃CPU 控制权,休眠一段时间,这个任务进入睡眠态,等待这段时间过去,下一个最高优先级的就绪态 任 务 立 即 获 得 CPU 的 控 制 权 。 等 待 的 时 间 过 去 以 后 , 由 系 统 服 务 函 数OSTimeTick(使处于睡眠状
22、态的任务进入就绪态。正在运行的任务等待某一事件时要等待,当任务因等待事件被阻塞,下一个优先级最高的任务立即得到CPU 的控制权。当等待的事件放生了,阻塞状态最高优先级的任务进入就绪态。事件发生的报告可能来自另一个任务,也可能来自中断服务子程序。正在运行的任务是可以被中断的,除非该任务将中断关了或者RTOS 将中断关了。被中断了的任务就进入了中断服务态ISR )。响应中断时,正在执行的任务被挂起,中断服务子程序控制了CPU 的使用权。中断服务子程序可能会报告一个或多个事件的发生,而使一个或多个任务进入就绪态。在这种情况下,从中断服务子程序返回之前, RTOS 要判定被中断的任务是否还是就绪态任务
23、中优先级最高的。如果中断服务子程序使一个优先级更高的任务进入了就绪态,则新进入就绪态的这个优先级更高的任务将得以运行;否则原来被中断了的任务才能继续运行。5.1.3 任务控制块为了避免动态内存分配引起的问题,该RTOS 内核采用内存静态分配的方式,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 24 页个人资料整理仅限学习使用同时为了减少对内存的需求量引入了回收和复用的机制。任务控制块OS_TCB )回收使用和任务编号 OSTCBNext。 /* 修改空闲TCB 链表的指针 */在任务被删除时回收TCB,如图 5-3 所示:OSTCB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年微实时操作系统方案与实现大学方案 2022 实时 操作系统 方案 实现 大学
限制150内