嵌入式系统道系统.docx

上传人:b****2 文档编号:17203425 上传时间:2023-07-22 格式:DOCX 页数:36 大小:71.90KB
下载 相关 举报
嵌入式系统道系统.docx_第1页
第1页 / 共36页
嵌入式系统道系统.docx_第2页
第2页 / 共36页
嵌入式系统道系统.docx_第3页
第3页 / 共36页
嵌入式系统道系统.docx_第4页
第4页 / 共36页
嵌入式系统道系统.docx_第5页
第5页 / 共36页
嵌入式系统道系统.docx_第6页
第6页 / 共36页
嵌入式系统道系统.docx_第7页
第7页 / 共36页
嵌入式系统道系统.docx_第8页
第8页 / 共36页
嵌入式系统道系统.docx_第9页
第9页 / 共36页
嵌入式系统道系统.docx_第10页
第10页 / 共36页
嵌入式系统道系统.docx_第11页
第11页 / 共36页
嵌入式系统道系统.docx_第12页
第12页 / 共36页
嵌入式系统道系统.docx_第13页
第13页 / 共36页
嵌入式系统道系统.docx_第14页
第14页 / 共36页
嵌入式系统道系统.docx_第15页
第15页 / 共36页
嵌入式系统道系统.docx_第16页
第16页 / 共36页
嵌入式系统道系统.docx_第17页
第17页 / 共36页
嵌入式系统道系统.docx_第18页
第18页 / 共36页
嵌入式系统道系统.docx_第19页
第19页 / 共36页
嵌入式系统道系统.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式系统道系统.docx

《嵌入式系统道系统.docx》由会员分享,可在线阅读,更多相关《嵌入式系统道系统.docx(36页珍藏版)》请在冰点文库上搜索。

嵌入式系统道系统.docx

嵌入式系统道系统

 

嵌入式系统——道系统介绍

 

1国产软硬件应用必要性分析

操作系统是装备应用的控制管理核心,对武器装备的功能、性能和可靠性等关键内容具有重要影响。

为适应现代战争的需要,装备应用向信息化、自动化、智能化、高性能、高可靠的方向快速发展,而这些特性大都需要通过软件来进行支持。

其中,操作系统起着至关重要的作用,为整个武器装备的功能、性能和可靠性提供核心支持。

我军装备应用研制现用操作系统为美国风河公司研制的嵌入式实时操作系统产品VxWorksv5.5.1,通过对装备用操作系统选型历史、应用研制、装备用国产操作系统需求进行深入分析,在项目中我军装备中应用国产操作系统(如“道”系统)替换现研制用操作系统是必要的。

装备用操作系统选型历史证明在我军装备中应用国产操作系统是必要的

从上世纪80年代至今,我军装备系统选用的操作系统产品包括:

美国英特尔(Intel)公司的iRMX、美国风河(WindRiver)公司的VxWorks等实时多任务操作系统以及美国微软(MicroSoft)公司的嵌入式操作系统产品WindowsXPEmbeded(XPE)。

国外商业货架嵌入式实时操作系统产品不是我我军装备的货架产品。

为了提升我军装备研发水平,另外基于我国当时没有相应产品这个现实,从1998年开始,我军装备研发部门引进了美国风河公司的VxWorks实时操作系统产品。

但是,嵌入式应用的开发特点决定了,除了购买商业货架产品以外,开发过程中还需要厂家提供及时的技术支持和服务,然而由于VxWorks是美国产品,其厂家在国内的技术支持力量薄弱,另外由于保密的原因,国外厂家也无法提供直接的技术支持。

所以,在引进后,工业部门自己花了大量的时间、精力和资金对VxWorks产品进行理解、熟悉、修改和定制。

VxWorks的升级产品将使我们的工业部门重复上述过程。

说明目前我军装备工业部门目前在这项技术上还是受制于人的。

国外嵌入式操作系统产品的生命周期不受国内我军装备和国防科技工业自主发展的制约。

在相关产品停止发展或是与自主发展我军装备的需求不一致的情况下,会制约我军装备的自主发展。

80年代初期,我军装备开始在不同类型的电子装备的研发中引进了Intel公司的CPU技术和其配套的实时操作系统产品i-RMX/86,但是,由于Intel的商业方向转而定位在PC机和服务器领域,Intel在90年初期放弃了嵌入式实时操作系统产品i-RMX,使得我军装备研发部门也于90年代中期停止了i-RMX产品系列的使用。

然而,安装了i-RMX操作系统的装备至今还在使用,但是熟悉这套系统的人已经很少,配套的调试设备和维护设备也已经过时。

这种事件的发生,不仅对老装备的维护带来很大困难,对新装备的发展也带来不利影响

2009年6月,Intel收购WindRiver公司再次给国内我军装备的持续发展已经带来了非常现实的威胁。

Intel收购的目的是WindRiver在嵌入式Linux方面的实力,以在移动终端等民用市场同其他IT巨头进行生死竞争。

其直接结果便是WindRiver的国防产品会受到冷落。

尽管这种影响不会即刻体现出来,但我军装备大量应用VxWorks产品的前途已经毋容置疑的严峻而紧迫。

2008年3月,微软宣布WindowsXP产品将于2009年4月14日停止主流支持服务,09年5月宣布延长,但是并没有说延长至何时。

一旦WindowsXP停止更新,WindowsXP产品系列,包括WindowsXP/Embeded将面临淘汰,而选用XPE的我军装备也将面临存在安全隐患、无法得到持续的技术支持和服务等关键问题;微软后续是推出Windows7的嵌入式版本还是只推WindowsCE也会导致我军装备再次面临抉择。

i-RMX、VxWorks、WindowsXP/Embeded等我军装备选用的装备用操作系统产品或被生产厂商停止维护,或被收购的事实充分说明:

国外嵌入式实时操作系统产品生命周期不受我军装备维护需要的影响,对我军装备的可维护性造成了巨大困难,提高我军装备维护成本;国外嵌入式实时操作系统产品不会因为我军装备的发展需要制定相应发展规划,使我军装备的研制受到相应产品的严重制约,不能满足我军装备的可持续发展需要。

因此,在我军装备中应用国产操作系统产品替代国外操作系统产品是必要的。

2现有装备替换国外操作系统产品需求

我军装备现装备用操作系统选用的均为国外操作系统产品,为保障系统安全性、可维护性,具有替换现装备用操作系统为国产操作系统,并在新研型号中逐步推广应用国产操作系统的需求。

我军装备现装备用操作系统是美国风河公司生产、销售的嵌入式实时操作系统产品VxWorksv5.5.1,配套开发工具为。

近十年来,工业部门基于VxWorks开发了大量的装备应用,开发人员已经适应了的开发工具,并、的功能特点形成了一套研制模式。

替换,不仅仅是替换一个操作系统内核,还涉及多方面需求,包括:

1)国产操作系统应提供与VxWorksv5.5.1对等的功能,如基于优先级抢占的任务调度算法、信号量、消息队列、内存管理、设备管理等;

2)国产操作系统应提供与VxWorksv5.5.1近似的性能,提供同等数量级的操作响应时间;

3)国产操作系统应提供与VxWorksv5.5.1一致的编程接口,减少应用迁移的工作量;

4)国产操作系统应支持已开发的装备用硬件设备驱动模块、软件中间件模块二进制代码的迁移,以更多地利用工业部门已有研制成果;

5)国产操作系统应提供功能、使用方式与一致的开发工具,以适应工业部门已经形成的开发模式,便于开发人员快速掌握。

3“道”系统概述

“道”系统是北京科银京成技术有限公司自主研制的嵌入式基础软件,包括嵌入式实时操作系统DeltaOS和集成开发环境LambdaTOOL。

1)嵌入式实时操作系统DeltaOS

DeltaOS具备微秒级的响应时间,提供基于优先级抢占的实时任务调度策略,提供动态加载功能,在功能、性能上可以替代。

DeltaOS提供VxWorks接口兼容层,兼容多功能标准显控台标准配套模块所使用的全部VxWorks操作系统接口,支持目标代码的加载、运行,保障多功能标准显控台已有成果的无缝迁移,保障基于多功能标准显控台开发的应用的快速迁移。

图31“道”系统嵌入式实时操作系统组成

2)LambdaTOOL

LambdaTOOL基于Eclipse框架构建,与风河公司Workbench采用同一框架。

LambdaTOOL提供功能强大、方便易用的源码编辑环境,快速、稳定的调试环境,支持编译的目标代码的下载、调试,覆盖编码、调试、测试、部署等装备用嵌入式软件生产周期,形成生产线。

LambdaTOOL针对存在大量VxWorks已有成果的JZ我军装备定制大量功能,保障应用的快速迁移。

图32“道”系统集成开发工具组成

“道”系统详细情况参阅:

附件一:

《道系统3.2.3产品介绍》

附件二:

《道系统3.2.4产品介绍》

“道”系统与的对比

3.1.1操作系统

3.1.1.1功能对比

功能模块

功能说明

“道”系统

VxWorks

消息队列模块

创建或打开一个消息队列

支持

支持

关闭指定的消息队列

支持

支持

移除消息队列

支持

支持

发送一个消息到消息队列

支持

支持

从消息队列中接收消息

支持

支持

注册/取消消息队列的通知请求

支持

支持

为消息队列设置属性

支持

支持

获取指定的消息队列的属性

支持

支持

线程管理模块

初始化线程属性结构。

支持

支持

销毁线程属性结构。

支持

支持

设置线程属性结构中堆栈大小属性。

支持

支持

获取线程属性结构中堆栈大小属性。

支持

支持

设置线程属性结构中堆栈地址属性。

支持

支持

获取线程属性结构中堆栈地址属性。

支持

支持

设置线程属性结构中分离状态属性。

支持

支持

获取线程属性结构中分离状态属性。

支持

支持

设置线程属性结构中竞争范围属性。

支持

支持

获取线程属性结构中竞争范围属性。

支持

支持

设置线程属性结构中调度继承属性。

支持

支持

获取线程属性结构中调度继承属性。

支持

支持

设置线程属性结构中调度策略属性。

支持

支持

获取线程属性结构中调度策略属性。

支持

支持

设置线程调度参数属性。

支持

支持

获取线程属性结构中调度参数属性。

支持

支持

创建一个线程。

支持

支持

结束当前的线程。

支持

支持

等待一个线程终止。

支持

支持

动态设置线程的分离状态属性

支持

支持

获取当前线程的ID。

支持

支持

比较两个线程是否相同。

支持

支持

提供一次性初始化功能。

支持

支持

获取指定线程调度策略及调度参数。

支持

支持

动态设置指定线程的调度策略及调度参数。

支持

支持

向指定的线程发送信号。

支持

支持

设置执行线程信号屏蔽码

支持

支持

撤销指定的线程

支持

支持

设置当前线程的撤销状态。

支持

支持

设置当前线程的撤销类型。

支持

支持

设立一个撤销点。

支持

支持

向调用线程的清理函数栈的栈顶增加一个清理函数。

支持

支持

删除调用线程的清理函数栈顶的一个清理函数。

支持

支持

线程专有匙模块

创建线程专有匙(线程私有数据)对象。

支持

支持

删除线程专有匙(线程私有数据)对象。

支持

支持

设置线程专有匙(线程私有数据)对象的值。

支持

支持

获取线程专有匙(线程私有数据)对象的值。

支持

支持

线程条件变量模块

初始化条件变量属性结构。

支持

支持

销毁条件变量属性结构。

支持

支持

初始化条件变量。

支持

支持

销毁已创建的条件变量。

支持

支持

唤醒等待条件变量的线程。

支持

支持

唤醒所有被阻塞在条件变量cond上的线程。

支持

支持

无限等待条件变量。

支持

支持

限时等待条件变量。

支持

支持

线程互斥锁模块

初始化互斥锁属性结构。

支持

支持

销毁互斥锁属性结构。

支持

支持

设置互斥锁属性结构中协议属性。

支持

支持

获取互斥锁属性结构中协议属性。

支持

支持

设置互斥锁属性结构的优先级天花板属性。

支持

支持

获取互斥锁属性结构中优先级天花板属性。

支持

支持

创建并初始化互斥锁。

支持

支持

销毁互斥锁。

支持

支持

互斥锁的阻塞式加锁。

支持

支持

限时加锁互斥锁。

支持

支持

非阻塞加锁互斥锁。

支持

支持

解锁互斥锁。

支持

支持

动态设置互斥锁的优先级天花板。

支持

支持

获取互斥锁优先级天花板。

支持

支持

调度管理模块

获取最大调度优先权

支持

支持

获取最小调度优先权

支持

支持

获取按RR算法调度的实时进程的时间片长度

支持

支持

主动放弃CPU调度资源

支持

支持

信号量管理模块

初始化未命名信号量

支持

支持

关闭未命名信号量

支持

支持

创建/打开命名信号量

支持

支持

关闭已命名信号量

支持

支持

移除一个命名的信号量

支持

支持

以阻塞方式等待信号量

支持

支持

以非阻塞方式等待信号量

支持

支持

解锁一个信号量

支持

支持

获取信号量值

支持

支持

异步信号模块

加入信号到指定的信号集

支持

支持

从指定的信号集中删除一个信号

支持

支持

初始化指定的信号集包含所有信号

支持

支持

判断指定信号是否是指定信号集中的成员

支持

支持

初始化指定的信号集为空

支持

支持

审查/改变信号动作

支持

支持

查询或设置执行线程信号屏蔽码

支持

支持

查询当前执行线程未决的信号

支持

支持

挂起线程直到一个信号被发送到调用线程

支持

支持

向指定的线程发送指定信号

支持

支持

向指定的线程发送指定的需要排队的信号

支持

支持

非超时等待信号

支持

支持

阻塞调用线程直到特定信号发生

支持

支持

以超时方式等待信号

支持

支持

时钟和定时模块

获取指定时钟精度

支持

支持

获取当前时钟值

支持

支持

设置当前时钟

支持

支持

以秒和纳秒为单位延时

支持

支持

以秒为单位延时

支持

支持

设置信号传送闹钟

支持

支持

创建定时器

支持

支持

销毁已创建定时器

支持

支持

设置定时器的定时值

支持

支持

获取定时器的到时的当前剩余值和周期性重新装载的定时值

支持

支持

返回定时器到期计数

支持

支持

3.1.1.2接口对比

接口类别

“道”系统

“道”系统接口

支持

VxWorks应用API接口

支持

支持

POSIX接口

支持

支持

3.1.1.2.1“道”系统POSIX接口支持列表

功能模块

接口

消息队列模块

mq_open

mq_close

mq_unlink

mq_send

mq_receive

mq_notify

mq_setattr

mq_getattr

线程管理模块

pthread_attr_init

pthread_attr_destroy

pthread_attr_setstacksize

pthread_attr_getstacksize

pthread_attr_setstackaddr

pthread_attr_getstackaddr

pthread_attr_setdetachstate

pthread_attr_getdetachstate

pthread_attr_setscope

pthread_attr_getscope

pthread_attr_setinheritsched

pthread_attr_getinheritsched

pthread_attr_setschedpolic

pthread_attr_getschedpolicy

pthread_attr_setschedparam

pthread_attr_getschedparam

pthread_create

pthread_exit

pthread_join

pthread_detac

pthread_self

pthread_equal

pthread_once

pthread_getschedparam

pthread_setschedparam

pthread_kill

pthread_sigmask

pthread_cancel

pthread_setcancelstate

pthread_setcanceltype

pthread_testcancel

pthread_cleanup_push

pthread_cleanup_pop

线程专有匙模块

pthread_key_create

pthread_key_delete

pthread_setspecific

pthread_getspecific

线程条件变量模块

pthread_condattr_init

pthread_condattr_destroy

pthread_cond_init

pthread_cond_destroy

pthread_cond_signal

pthread_cond_broadcast

pthread_cond_wait

pthread_cond_timedwait

线程互斥锁模块

pthread_mutexattr_init

pthread_mutexattr_destroy

pthread_mutexattr_setprotocol

pthread_mutexattr_getprotocol

pthread_mutexattr_setprioceiling

pthread_mutexattr_getprioceiling

pthread_mutex_init

pthread_mutex_destroy

pthread_mutex_lock

pthread_mutex_timedlock

pthread_mutex_trylock

pthread_mutex_unlock

pthread_mutex_setprioceiling

pthread_mutex_getprioceiling

调度管理模块

sched_get_priority_max

sched_get_priority_min

sched_rr_get_interval

sched_yield

信号量管理模块

sem_init

sem_destroy

sem_open

sem_close

sem_unlink

sem_wait

sem_trywait

sem_post

sem_getvalue

异步信号模块

sigaddset

sigdelset

sigfillset

sigismember

sigemptyset

sigaction

sigprocmask

sigpending

sigsuspend

kill

sigqueue

sigwait

sigwaitinfo

sigtimedwait

时钟和定时模块

clock_getres

clock_gettime

clock_settime

nanosleep

sleep

alarm

timer_create

timer_delete

timer_settime

timer_gettime

timer_getoverrun

3.1.1.2.2“道”系统VxWorks接口支持列表

“道”系统已支持标准台硬件设备驱动、中间件软件模块所使用的全部VxWorks接口,如下表所示:

功能模块

接口

任务管理

kernelTimeSlice

taskPrioritySet

taskLock

taskUnlock

taskSpawn

taskActivate

taskName

taskNameToId

taskIdSelf

taskIdVerify

taskName

taskNameToId

taskIdSelf

taskIdVerify

taskOptionsGet

taskIdListGet

taskIsSuspended

taskIsReady

taskDelete

taskDeleteForce

taskSafe

taskUnsafe

taskSuspend

taskResume

taskRestart

taskDelay

taskPriorityGet

taskStatusString

taskInfoGet

taskShow

任务变量

taskVarAdd

taskVarDelete

taskVarSet

taskVarGet

taskVarInit

taskVarInfo

任务扩展

taskHookInit

taskCreateHookAdd

taskCreateHookDelete

taskSwitchHookAdd

taskSwitchHookDelete

taskDeleteHookAdd

taskDeleteHookDelete

信号量

semBCreate

semCCreate

semMCreate

semDelete

semFlush

semGive

semTake

semInfo

semBLibInit

semCLibInit

semMLibInit

semMGiveForce

管道

pipeDrv

pipeDevCreate

pipeDevDelete

周期任务

period

repeat

消息

msgQCreate

msgQInit

msgQDelete

msgQSend

msgQReceive

msgQLibInit

msgQNumMsgs

msgQInfoGet

Log信息

logInit

logMsg

logFdSet

中断

intConnect

intContext

intCount

intLock

intUnlock

事件

eventSend

eventReceive

eventClear

错误码

__errno

errnoGet

errnoOfTaskGet

errnoSet

看门狗定时器

wdCreate

wdStart

wdDelete

wdCancel

wdLibInit

内存管理

memPartOptionsSet

memalign

valloc

memPartRealloc

memPartFindMax

memOptionsSet

calloc

realloc

cfree

memFindMax

3.1.1.3性能对比

硬件环境:

宿主机:

CPU:

AMDXP3000+

内存:

512M

网卡:

RTL8139

目标机:

CPU:

Intel845Celeron

内存:

256M

网卡:

DeltaCORE:

RTL8139

软件环境:

DeltaOS3/“道”系统3

VxWorksTornado

测试均使用了CACHE,没有使用编译优化。

性能数据:

任务

(时间在微秒级)

(时间在微秒级)

创建任务(delta_task_create/taskInit)

启动任务(delta_task_start/taskActivate)

删除任务

(delta_task_delete/taskDelete)

删除就绪态任务

删除延迟任务

删除处于阻塞态的任务

删除运行态任务

挂起任务

(delta_task_suspend/taskSuspend)

挂起就绪态任务

挂起处于挂起态的任务

挂起运行态任务

解挂任务

(delta_task_resume/taskResume)

解挂就绪态任务不导致切换

解挂高优先级任务导致当前任务被抢占

获得任务优先级

(delta_task_get_priority/taskPriorityGet)

设置任务优先级

(delta_task_set_priority/taskPrioritySet)

设置当前任务优先级

设置任务优先级导致当前任务被抢占

任务切换

同优先级任务切换

不同优先级任务切换

定时器

创建定时器(delta_timer_create/wdCreate)

启动定时器

(delta_timer_fire_after/wdStart)

时间链上有定时器(1000个)

时间链上没有定时器

删除定时器

(delta_timer_delete/wdDelete)

定时器未启动便删除

定时器启动之后再被删除

取消定时器(delta_timer

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2