版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、概要设计说明书Version:1.0项目承担队伍:大学计算机学院E-fanciers小组撰写人(签名):孝瑞完成日期:2009-7-16本文档使用小组:E-fanciers小组评审负责人(签名):孝瑞评审日期:2009-8-19分类:软件项目设计使用者:E-fanciers一、弓I言41.1编写目的41.2项目背景41.3定义41.4参考资料:5二、任务概述52.1目标52.2运行环境62.3需求概述62.4条件与限制6三、总体设计63.1处理流程63.2总体结构和模块外部设计63.3.功能分配7四、接口设计74.1外部接口74.2部接口7五、数据结构设计85.1逻辑结构设计85.2物理结构设
2、计85.2物理结构设计六、运行设计86.1运行模块的组合86.2运行控制86.3运行时间8七、出错处理设计9八、安全设计9九、维护设计9概要设计说明书(ArchitecturalDesignSpecification)1. 一.引言编写目的MyRTOS是E-fanciers小组通过开源的微型操作系统ucos-ii开发的嵌入式实时操作系统,目标板选用周立功ARMLPC2138+JLINK调试头,开发环境选用RealView公司的MDK.2. MyRTOS的设计采用ucos-ii的设计思想,并在其基础上进行了扩展和创新.尤其设计解决了优先级反转问题和同级时间片轮询调度机制项目背景嵌入式实时操作系统
3、是09年省齐鲁软件大赛新增的题目,本题目迎合了目前非常热门的嵌入式产业的人才需求,让学生了解嵌入式开发的方方面面.并逐渐进入嵌入式开发的领域.E-fanciers小组经过分析本次大赛的题目,最后决定选择这个具有挑战性的题目.后来经过学习和老师的指导,认识到选择此题目的必要性:目前市场上有很多嵌入式产品,嵌入式实时操作系统也是层出不穷,如何开发出一个功能完善、而又高效的嵌入式实时操作系统成为一大热点课题.3.定义3.1嵌入式实时操作系统嵌入式实时操作系统(EmbeddedRealTimeOS,简称RTOS)是嵌入式系统应用开发的核心软件,是嵌入式系统的灵魂,就像我们日常所用计算机桌面系统中,微软
4、公司的Windows操作系统一样重要。市场上有很多著名的商业化嵌入式操作系统,如VxWorks、PamOS、WindowsCE、嵌入式Linux和C/OS-II等上千种RTOS。3.2临界区和其它核一样,MyRtos为了处理临界段代码需要关中断,处理完毕后再开中断。这使得MyRtos能够避免同时有其它任务或中断服务进入临界段代码。关中断的时间是实时核开发商应提供的最重要的指标之一,因为这个指标影响用户系统对实时事件的响应性。MyRtos努力使关中断时间降至最短,但就使用MyRtos而言,关中断的时间很大程度上取决于微处理器的架构以及编译器所生成的代码质量。3.3任务一个任务通常是一个无限的循环
5、。一个任务看起来像其它C的函数一样,有函数返回类型,有形式参数变量,返回任务编号.3.4任务调度确定哪个任务优先级最高,下面该哪个任务运行了的工作是由调度器(Scheduer)完成的。3.5空闲任务系统的空闲任务OS_TaskIdle(),MyRtos总是建立一个空闲任务,这个任务在没有其它任务进入就绪态时投入运行。这个空闲任务永远设为最低优先级,即OS_LOWEST_PRI0。空闲任务OS_TaskIdle()什么也不做,只是在不停地给一个32位的名叫OSIdeCtr的计数器加1,注意空闲任务不可能被应用软件删除。属于系统服务3.6统计任务统计任务用来根据计数器的值计算cpu利用率,属于系统
6、服务.3.7任务管理对任务进行的操作,包括任务创建、删除、阻塞睡眠、挂起、恢复等操作。属于核部分。3.8任务堆栈每个任务都有自己的堆栈空间。堆栈必须声明为OS_STK类型,并且由连续的存空间组成。用户可以静态分配堆栈空间(在编译的时候分配)也可以动态地分配堆栈空间(在运行的时候分配)。3.9优先级在用户建立任务的时候会分配给任务一个优先级。优先级决定了任务的运行次序和调度次序。3.10互斥信号量使用互斥信号量进行任务间通信,避免了优先级反转问题的发生。互斥信号量的操作包括:创建互斥信号量、等待信号量、发送信号量3.11ShellShell是用来进行人机交互的界面。供操作系统的用户对系统进行操作
7、.用户可以通过Shell查看任务运行情况、可以挂起、恢复任务,查看信号量的使用情况等操作编亏名称(1)项目开发计划;(2)需求规格说明书;(3)测试计划(初稿);(4)用户操作手册(初稿);(5)ucos-ii中文版(6)自己动手做操作系统4.参考资料(列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:作者/来源E-fanciersE-fanciersE-fanciersE-fanciers1 .任务概述.目标:2. 实现大赛要求的基本功能,并着手实现一些扩展功能运行环境MDk3.5实验板:lpc2138调试头:JLINK开发环境:RealView需求概述本赛题要求完成一个
8、小型微核嵌入式实时操作系统的设计和实现。需提交实际可运行代码,并在参考硬件平台上演示功能。软件实现过程应遵循敏捷性方法的指导,注意代码和文档的质量和版本控制,编写测试用例验证软件功能和重构代码。条件与限制参考硬件平台为:周立功EasyArm2138。实际上,也可用其他LPC系列CP成日实验板,只要CPW足够的RAMFlash存储器和一个串口扩展就可以了。但与LPC2138区别越小越好,最终的验证都统一在LPC2138上进行。硬件抽象层的接口遵循uc/OS的接口规。这样现存的大量的uC/OS硬件抽象层可为新操作系统提供服务,减少移植工作量。硬件抽象层可以直接借用uC/OS的代码,但最好自己实现,
9、只是接口兼容。1. 操作系统的调用采用函数调用方式,不用中断陷入方式;将各任务栈独立,作为任务的私有存储区;同时支持任务数不小于255个。空闲任务占用编号0。2. 同级任务的轮询时间片大小可以调节,单位为10毫秒(称为tick)。3. 串口接口参数:波特率9600,8位数据,1位停止,无硬件流控制。任务优先级不小于255级,最高优先级为0,最低优先级为255。空闲任务优先级为255。4. 操作系统的应用接口的应遵循题目的规,见后面的描述。对于代码移植性验证,参赛者可自行选择硬件平台。该硬件平台与LPC2138或ARM之间的区别越大越好。三. 总体设计.处理流程设计和实现一个小型微核嵌入式实时操
10、作系统,硬件抽象层的接口遵循uc/OS的接口规。操作系统的调用采用函数调用方式,不用中断陷入方式,同时支持任务数不小于255个。空闲任务占用编号0。同级任务的调度采用时间片轮询的方式,不同优先级任务采用按优先计调度的方式,及时对请求的任务进行处理。.总体结构和模块外部设计任务管理模块对任务进行的操作,包括任务创建、删除、阻塞睡眠、挂起、恢复等操作。属于核部分。任务堆栈模块每个任务都有自己的堆栈空间。堆栈必须声明为OS_STK类型,并且由连续的存空间组成。用户可以静态分配堆栈空间(在编译的时候分配)也可以动态地分配堆栈空间(在运行的时候分配)。优先级模块在用户建立任务的时候会分配给任务一个优先级
11、。优先级决定了任务的运行次序和调度次序。互斥信号量模块使用互斥信号量进行任务间通信,避免了优先级反转问题的发生。互斥信号量的操作包括:创建互斥信号量、等待信号量、发送信号量ShellShell是用来进行人机交互的界面。供操作系统的用户对系统进行操作.用户可以通过Shell查看任务运行情况、可以挂起、恢复任务,查看信号量的使用情况等操作.功能分配(表明各项功能与程序结构的关系。)各个模块既是相互独立的又是互相关联的,各个模块的互相调用配合共同使得系统得以稳定的工作。四. 接口设计外部接口遵循uc/OS的底层接口规,参考代码文件OS_CPU.H,OS_CPU_A.C,OS_CPU_A.S.部接口部
12、各模块间设计容易访问的接口。下面为os.h头文件容,该文件为对外应用接口说明文件。若需使用操作系统服务,需引用该文件。列出为基本部分,参赛者必须遵循,根据需要可扩展。/*初始化操作系统,建立多任务环境.该函数调用后,其他系统调用则可用*/*返回:0:成功,-1:失败.后面返回无说明则同*/inttaskInit(void);/*创建一个任务*/*返回:返回任务编号tid,0:成功,其他:失败.*/*name:任务名称,entryPtr:任务函数入口,stack_size:任务栈大小,priority:任务优先级*/inttaskCreate(char*name,void*entryPtr,in
13、tstack_size,intpriority);/*启动一个任务,让taskCreat创建的任务参加调度*/*tid:任务编号,由taskCreate返回*/inttaskStart(unsignedchartid);/*获取和设置任务优先级,用于动态调整*/inttaskPriorityGet(unsignedchartid);inttaskPrioritySet(unsignedchartid,intnewPriority);/*将任务挂起,该任务退出调度*/inttaskSuspend(unsignedchartid);/*将任务删除该任务退出调度且回收任务分配的资源*/inttask
14、Delete(unsignedchartid);/*互斥信号量创建,返回信号量标识sid,0:失败*/intsemCreate(void);/*互斥信号量获取和释放*/intsemTake(intsid);intsemGive(intsid);/*任务睡眠(非忙等),由任务自己调用,主动阻塞一段时间.时间单位为tick,即10毫秒*/inttaskSleep(intticks);1 数据结构设计.逻辑结构设计1.1任务状态任务共有五种状态,在任一给定的时刻,任务的状态一定是在这五种状态之一1.2任务控制块一旦任务建立了,任务控制块将被赋值。任务控制块是一个数据结构,当任务的CPW!用权被剥夺时
15、,系统用它来保存该任务的状态。当任务重新得到CPL用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。控制块全部驻留在RA。读者将会注意到笔者在组织这个数据结构时,考虑到了各成员的逻辑分组。任务建立的时候,控制块就2 被初始化了.物理结构设计硬件抽象层的建立,遵循ucos-ii的规.3 .数据结构与程序的关系就绪队列使用链表数据结构,查找最高优先级任务时遍历链表查询.1 运行设计.运行模块的组合各模块互相配合共同完成对任务的实时调度。2 .运行控制通过Shell来控制任务的运行,可以对任务进行挂起、恢复、运行、删除等操作。运行时间通过以时钟心跳tick为单位对任务状态计时,任务调度有同级时间片轮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 局工作绩效考核制度
- 校外辅导员考核制度
- 统计员业务考核制度
- 中心理论中考核制度
- 煤矿安全科考核制度
- 快餐店员工考核制度
- 检验科轮转考核制度
- 阿里第三套考核制度
- 养老院责任考核制度
- 校级志愿者考核制度
- 花旗-中国经济:AI驱动的新经济中宏观与微观的脱节-The Macro-Micro Disconnect of AI-Driven New Economy-20260203
- 人格特质课件
- 境外产品营销方案(3篇)
- 2025至2030老年手机行业产业运行态势及投资规划深度研究报告
- TCNAS 51-2025成人患者医用粘胶相关性皮肤损伤的预防及护理
- 山东万级洁净室施工方案
- 物业客服对客沟通培训
- 2025年浙江省中考科学试题卷(含答案解析)
- 卡西欧手表5114机芯中文说明书
- 急腹症的超声诊断课件
- T/BIKE 7.2-2020电动自行车锂离子蓄电池换电柜技术要求第2部分:锂离子电池组
评论
0/150
提交评论