嵌入式实时操作系统需求规格说明.docx
- 文档编号:10202168
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:12
- 大小:51.81KB
嵌入式实时操作系统需求规格说明.docx
《嵌入式实时操作系统需求规格说明.docx》由会员分享,可在线阅读,更多相关《嵌入式实时操作系统需求规格说明.docx(12页珍藏版)》请在冰点文库上搜索。
嵌入式实时操作系统需求规格说明
分类:
软件项目计划
使用者:
E-fanciers
需求规格说明
Version:
1.0
项目承担队伍:
烟台大学
计算机学院
E-fanciers小组
撰写人(签名):
许超于歌
完成日期:
2009-7-16
本文档使用小组:
E-fanciers小组
评审负责人(签名):
孝瑞
评审日期:
2009-7-19
一、引言4
1.1编写目的4
1.2项目背景4
1.3定义4
1.4参考资料:
5
二、任务概述5
2.1目标5
2.2运行环境6
2.3条件与限制6
三、数据描述7
3.1静态数据7
3.2动态数据7
四、功能需求7
4.1功能划分7
4.2功能描述7
五、性能要求8
5.1时间特性..........................................8
5.2适应性............................................8
六、运行需求8
6.1用户界面...........................................8
6.2硬件接口...........................................9
6.3软件接口..........................................9
6.4故障处理.........................................10
七、其他需求10
需求规格说明
(RequirementsSpecification)
一.引言
1. 编写目的(阐明编写需求说明书的目的,指明读者对象。
)
1.作为嵌入式实时操作系统软件系统开发技术协议的参考依据,为开发提供参考。
2.根据齐鲁软件设计大赛2009赛题嵌入式实时操作系统(RTOS)设计的要求特点和当前背景下此类软件需求方向的特点,对被开发软件系统的主要功能、性能进行完整描述,为软件开发者进行详细设计和编程提供基础。
3.为软件提供测试和验收的依据,即为选取测试用例和进行验收的依据。
2. 项目背景(可包括:
(1)项目的委托单位,开发单位和主管部门;
(2)该软件系统与其他系统的关系。
)
随着微电子技术、计算机技术和网络通信技术的发展,嵌入式系统已广泛应用在各个领域,包括消费电子、汽车电子、网络通信、工业设备、航空航天和国防军事等。
随着嵌入式技术的发展,工业领域也一改过去传统的单片机应用模式,逐渐将一些新嵌入式技术引入到系统中。
特别是作为软件基础的嵌入式操作系统已广泛为业界所接受,借以提高系统的开发效率和运行效率。
是否采用嵌入式操作系统,已成为工业设备品质优劣的标志之一。
当今的嵌入式操作系统领域呈现百家争鸣的状态。
据最近的调查数据显示,嵌入式操作系统有数十种之多的。
这种多样性存在是必然的,是由嵌入式系统的定制性所决定的,是针对各个领域和行业的不同需求的应对。
也就是说,各个嵌入式操作系统都有自己的应用领域,针对不同的应用没有绝对的优劣之分,不会出现一种操作系统垄断的局面。
自主开发嵌入式操作系统绝对不是多余的,也是是对这种多样性的自然顺应,应该可拥有自己的用武之地。
有些国内嵌入式厂商将希望寄托在Linux之上,以为它可以帮助解决所面临的版税和安全等问题。
但事实并非完全如此,至少在嵌入式系统领域。
首先,Linux还是泊来货,国人并未掌握其核心技术和进程,也并未解决对外依赖的问题。
其次,Linux是为桌面系统而设计的,并不能很好地满足嵌入式系统高效性和灵活性的要求;再次,Linux的一统也违背了嵌入式系统应用灵活定制的本质特性。
3. 定义(列出文档中用到的专门术语定义和缩写词的原文。
)
inttaskInit(void);
/*创建一个任务,返回:
返回任务编号tid,>0:
成功,其他:
失败.*/
/*name:
任务名称,entryPtr:
任务函数入口,stack_size:
任务栈大小,priority:
任务优先级*/
inttaskCreate(char*name,void*entryPtr,intstack_size,intpriority);
/*启动一个任务,让taskCreat创建的任务参加调度*/
inttaskStart(unsignedchartid);
/*tid:
任务编号,由taskCreate返回*/
inttaskPriorityGet(unsignedchartid);
inttaskPrioritySet(unsignedchartid,intnewPriority);
/*获取和设置任务优先级,用于动态调整*/
inttaskSuspend(unsignedchartid);
/*将任务挂起,该任务退出调度*/
inttaskDelete(unsignedchartid);
/*将任务删除该任务退出调度且回收任务分配的资源*/
intsemCreate(void);
/*互斥信号量创建,返回信号量标识sid,<0:
失败*/
intsemTake(intsid);
intsemGive(intsid);
/*互斥信号量获取和释放*/
inttaskSleep(intticks);
/*任务睡眠(非忙等),由任务自己调用,主动阻塞一段时间.时间单位为tick,即10ms*/
4. 参考资料(可包括:
(1)项目开发计划;
(2)文档所引用的资料,标准和规范。
列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源。
)
[1]邵贝贝.μC/OS-Ⅱ—源码公开的实时嵌入式操作系统.北京:
中国电力出版2002
[2]郑宗汉.实时系统软件基础.北京:
清华大学出版社,2003
[3]陈智育,温彦军,陈琪编著.VxWorks程序开发实践.北京:
人民邮电出版社,2004
[4]罗蕾.嵌入式实时操作系统及应用开发.北京:
北京航空航天出版社,2007
[5]于渊.自己动手写操作系统.北京:
电子工业出版社,2005
[6]LPC2138芯片手册
二.任务概述
1.目标
本软件作品作为嵌入式实时操作系统系统,采用各种算法和策略,始终保证系统行为的可预测性(Predictability)。
可预测性是指在系统运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括CPU、内存等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。
与通用操作系统不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求,也就是说,实时操作系统注重的是个体表现,更准确地讲是个体最坏情况的表现。
基本功能
1.基于参考硬件平台,建立硬件抽象层,完成基本硬件初始化,建立时钟中断;
2.在硬件抽象层基础上,建立多任务操作系统环境;
3.任务调度采用同级时间片轮询机制;
4.实现任务间基本通讯机制:
互斥信号量(共享内存);
5.实现基本的时钟管理机制:
任务睡眠阻塞;
6.实现一个RS232串口驱动。
基于串口驱动实现一个命令行Shell(用一个独立的任务实现),可在超级终端显示信息和执行命令。
扩展功能
7.任务区分优先级,在同级轮询调度基础上添加优先级调度机制;
8.不同优先级任务之间实现抢占调度;
9.在抢占调度的基础上实现优先级逆转保护,避免逻辑死锁问题;
10.将代码移植到另一个硬件平台上运行,验证代码移植性。
设计要求
1.参考硬件平台为:
周立功EasyArm2138。
实际上,也可用其他LPC系列CPU和实验板,只要CPU有足够的RAM、Flash存储器和一个串口扩展就可以了。
但与LPC2138区别越小越好,最终的验证都统一在LPC2138上进行。
2.硬件抽象层的接口遵循uc/OS的接口规范。
这样现存的大量的uC/OS硬件抽象层可为新操作系统提供服务,减少移植工作量。
硬件抽象层可以直接借用uC/OS的代码,但最好自己实现,只是接口兼容。
3.操作系统的调用采用函数调用方式,不用中断陷入方式;
4.将各任务栈独立,作为任务的私有存储区;
5.同时支持任务数不小于255个。
空闲任务占用编号0。
6.同级任务的轮询时间片大小可以调节,单位为10毫秒(称为tick)。
7.串口接口参数:
波特率9600,8位数据,1位停止,无硬件流控制。
8.任务优先级不小于255级,最高优先级为0,最低优先级为255。
空闲任务优先级为255。
9.操作系统的应用接口的应遵循题目的规范,见后面的描述。
10.对于代码移植性验证,参赛者可自行选择硬件平台。
该硬件平台与LPC2138或ARM之间的区别越大越好。
2.运行环境
硬件平台采用的是EasyARM2138开发板,它是周立功公司设计的EasyARM系列开发套件之一。
软件平台采用了Keil开发环境和Jlink。
开发语言C语言、汇编语言。
3.条件与限制
硬件平台采用的是EasyARM2138开发板,它是周立功公司设计的EasyARM系列开发套件之一。
LPC2138具有32kB的片内静态RAM和512kB的片内Fash程序存储器,支持JTAG仿真调试、ISP编程等功能,EasyARM2138开发板上还提供了一些键盘、ED、蜂鸣器等常用功能部件,还具有RS232接口电路、I2C存储器电路。
另外,灵活的跳线组合(开发板内使用的所有I/O均可断开连接),还有用户I/O接口,极大地方便了用户进行32位ARM嵌入式系统的开发实验。
开发的小型嵌入式操作系统,代码量不是很大,对于拥有32kB的片内静态RAM和512kB的片内Flash程序存储器的PC2138来说是应该足够,再加上开发板还支持JTAG仿真测试,ISP编程,这样使得开发效率大幅度提高。
另外开发板上还提供了一些键盘、LED、蜂鸣器等常用功能部件,还具有RS232接口电路、I2C存储器电路。
这样更有利于通过小的试验才测试一下程序的正确性。
软件平台采用了Keil开发环境和Jlink。
Keil是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
Keil软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
JLink支持所有ARM7/ARM9内核芯片的仿真,支持ADS,KEIL,IAREWARM,Relview等集成开发环境.操作方便、连接方便,是开发ARM最好最实用的开发工具。
普通ARM仿真器限制2个FLASH断点(包括Multiice),此款FLASH断点无限制。
三.数据描述
1. 静态数据
任务管理、控制管理和信号量。
2. 动态数据(包括输入数据和输出数据。
)
输入:
用户相关操作
输出:
根据操作产生不同的输出
四.功能需求
1.功能划分
基于LPC2138硬件平台,建立硬件抽象层,在此基础上建立时钟中断、实现多任务操作系统环境,实现一个串口驱动,基于串口实现命令行SHELL.
2.功能描述
1.基于LPC2138硬件平台,建立硬件抽象层,完成基本硬件初始化,建立时钟中断;
2.在硬件抽象层基础上,建立多任务操作系统环境;
3.任务调度采用同级时间片轮询机制;
4.实现任务间基本通讯机制:
互斥信号量(共享内存);
5.实现基本的时钟管理机制:
任务睡眠阻塞;
6.实现一个RS232串口驱动。
基于串口驱动实现一个命令行Shell(用一个独立的任务实现),可在超级终端显示信息和执行命令。
7.参考硬件平台为:
周立功EasyArm2138。
实际上,也可用其他LPC系列CPU和实验板,只要CPU有足够的RAM、Flash存储器和一个串口扩展就可以了。
但与LPC2138区别越小越好,最终的验证都统一在LPC2138上进行。
8.硬件抽象层的接口遵循uc/OS的接口规范。
这样现存的大量的uC/OS硬件抽象层可为新操作系统提供服务,减少移植工作量。
硬件抽象层可以直接借用uC/OS的代码,但最好自己实现,只是接口兼容。
9.操作系统的调用采用函数调用方式,不用中断陷入方式;
10.将各任务栈独立,作为任务的私有存储区;
11.同时支持任务数不小于255个。
空闲任务占用编号0。
12.同级任务的轮询时间片大小可以调节,单位为10毫秒(称为tick)。
13.串口接口参数:
波特率9600,8位数据,1位停止,无硬件流控制。
14.任务优先级不小于255级,最高优先级为0,最低优先级为255。
空闲任务优先级为255。
15.操作系统的应用接口的应遵循题目的规范,见后面的描述。
16.对于代码移植性验证,参赛者可自行选择硬件平台。
该硬件平台与LPC2138或ARM之间的区别越大越好。
五.性能需求
1.时间特性(如响应时间、更新处理时间、数据转化与传输时间、运行时间等。
)
由于所开发软件为嵌入式实时操作系统,故要求本系统能及时对所请求的任务作出快速、高效的处理,并实现多任务的实时调度。
2.适应性(在操作方式运行环境与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。
)
软件要求具有良好的适应能力,能在不同的PC机上运行,不会因为所搭建环境的改变而影响工作效率。
六.运行需求
1.用户界面(如屏幕格式、报表格式、菜单格式、输入输出时间等。
)
务必做到简洁易懂,适合不同层次人员的需求。
2.硬件接口
遵循uc/OS的底层接口规范,可参考代码文件OS_CPU.H,OS_CPU_A.C,OS_CPU_A.S。
3.软件接口
第一部分:
/*初始化操作系统,建立多任务环境.该函数调用后,其他系统调用则可用*/
/*返回:
0:
成功,-1:
失败.后面返回无说明则同*/
inttaskInit(void);
/*创建一个任务*/
/*返回:
返回任务编号tid,>0:
成功,其他:
失败.*/
/*name:
任务名称,entryPtr:
任务函数入口,stack_size:
任务栈大小,priority:
任务优先级*/
inttaskCreate(char*name,void*entryPtr,intstack_size,intpriority);
/*启动一个任务,让taskCreat创建的任务参加调度*/
/*tid:
任务编号,由taskCreate返回*/
inttaskStart(unsignedchartid);
/*获取和设置任务优先级,用于动态调整*/
inttaskPriorityGet(unsignedchartid);
inttaskPrioritySet(unsignedchartid,intnewPriority);
/*将任务挂起,该任务退出调度*/
inttaskSuspend(unsignedchartid);
/*将任务删除该任务退出调度且回收任务分配的资源*/
inttaskDelete(unsignedchartid);
/*互斥信号量创建,返回信号量标识sid,<0:
失败*/
intsemCreate(void);
/*互斥信号量获取和释放*/
intsemTake(intsid);
intsemGive(intsid);
/*任务睡眠(非忙等),由任务自己调用,主动阻塞一段时间.时间单位为tick,即10毫秒*/
inttaskSleep(intticks);
第二部分:
Shell命令
名称
功能
备注
help
为所有的命令提供帮助
ti
显示所有任务信息:
名称,编号
tdn
显示编号n任务的详细信息:
调度状态,睡眠时间,优先级,分配栈大小,已用栈大小,
调度次数,CPU占用比率,……
tsn
挂起编号n任务,退出调度
trn
恢复编号n任务的运行
si
显示所有信号量的详细信息:
编号,状态,占用任务编号
其他
4.故障处理
软件设置了相应的出错处理机制。
七.其他需求(如可使用性、安全保密、可维护性、可移植性等。
)
本软件具有很高的可移植性与可维护性。
开发过程采用版本控制,易于管理,便于软件升级。
使用方便,不仅仅专业人士可操作该软件,普通用户也可快速学会熟练的操作该软件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式实时操作系统 需求规格说明 嵌入式 实时 操作系统 需求 规格 说明