CN101005420A - 一种综合接入设备的嵌入式系统跨平台实现方法 - Google Patents
一种综合接入设备的嵌入式系统跨平台实现方法 Download PDFInfo
- Publication number
- CN101005420A CN101005420A CN 200610124284 CN200610124284A CN101005420A CN 101005420 A CN101005420 A CN 101005420A CN 200610124284 CN200610124284 CN 200610124284 CN 200610124284 A CN200610124284 A CN 200610124284A CN 101005420 A CN101005420 A CN 101005420A
- Authority
- CN
- China
- Prior art keywords
- embedded system
- embedded
- access equipment
- integrated access
- implementation method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种综合接入设备的嵌入式系统跨平台实现方法,在综合接入设备的嵌入式操作系统及应用程序之间设置一跨平台抽象层,所述跨平台抽象层接口沿用vxWorks嵌入式系统的应用编程接口,并设置有嵌入式系统的基本系统调用编程接口。本发明实现IAD代码能在任何嵌入式操作系统下运行,提高设备的实时性、灵活性,减少代码的开发周期和设备版本的维护数量,从而降低开发成本,增加经济效益。
Description
技术领域
本发明属于综合接入设备领域,特别是涉及一种应用于综合接入设备上的嵌入式系统跨平台软件集成方法,通过该集成方法,不同的系统软件能够移植到任何操作系统、任何硬件平台、任何呼叫控制协议。
技术背景
随着计算机、通信和消费类产品的技术结合起来,以3C产品的形式迅速渗透到民用消费品、工业控制以及军事国防等领域。现在社会是一个高度信息化、网络化的社会,计算机和网络已经全面渗透到日常生活的每个角落,各种各样的新型嵌入式系统设备在应用数量上已远远超过通用计算机,这时更多公司看到嵌入式系统的广阔发展前景,开始大力发展嵌入式操作系统,老牌公司有Ready System公司的VRTX、ISI公司的Psos、WindRiver公司的VxWorks和QNX公司的QNX,新加入的公司有Palm OS、Win CE、Linux、Lynx、Nucleus、Hopen、Delta Os等。
VxWorks是专门为实时嵌入系统设计开发的操作系统内核,为程序员提供了高效的实时多任务调度、中断管理,实时的系统资源以及实时的任务间通信,是一个运行在目标机上的高性能、可裁剪的嵌入式实时操作系统,是一种功能非常强大的操作系统,包括进程管理、存储管理、设备管理、文件系统管理、网络协议以及系统应用,只占用很小的存储空间,并高度可裁剪。
Nucleus的特点是约98%的代码使用C语言编写,同时可提供Web支持、网络、图形和文件系统等模块。
Lynx与Unix兼容,符合POSIX标准,是专为要求快速响应、复杂的实时应用设计的,它能为任何一个Unix平台上的应用,提供源代码级水平的兼容性。
Win CE是微软开发的嵌入式操作系统,它支持众多的硬件平台,其最主要的特点是拥有与桌面型WINDOWS系列一致的程序开发界面,因此,WINDOWS上开发的程序都能在Win CE上运行。它在高效、节省方面是笨拙的,占用内存过大,应用程序也很庞大。
Linux是一种提供源程序、开放式自由软件,具有嵌入式操作系统的很多特色,突出的优势是适用于多种CPU和多种硬件平台,性能稳定、裁剪性好,开发和使用都很容易,是发展未来嵌入式设备的绝佳资源。
综上所述,由于每家公司开发的嵌入式操作系统都有各自的优点和特色,另外不同嵌入式设备功能及应用的环境不同,还有是因为设备制造商从自身的实际情况考虑,所以不同嵌入式操作系统都吸引了不同的用户群去使用。
然而很多设备制造商目前都意识到一个问题,随着嵌入设备开发使用的增加,功能的集成,系统的集成,很多设备的功能代码都是可重用的,但就是因为是在不同嵌入式操作系统下开发的,所以移植起来十分困难;但不去统一操作系统,设备程序版本太多,维护起来十分困难,需化费大量的人力和物力。
如对于综合接入设备IAD,申请人所开发的产品共有五种,分别是2端口、4端口、8端口、16端口和32端口,由于8端口以下的低端产品,其成本敏感,资源有限,首选的实时操作系统RTOS为是嵌入式Linux,而Linux内核较大,占用内存多,功能的完备性与资源的有限性矛盾,使得产品的设计难度非常高。而16端口以上的高端产品,其成本不敏感,但实时性要求高,采用Linux较难满足要求,最好采用vxWorks。高低端产品的应用是相同的,所不同的仅是硬件资源,功能也一样。IAD有5个产品,2种操作系统,软件版本的组合就有10个,非常的繁杂,如果能实现跨平台的软件集成,将极大地降低版本数量,降低版本的维护成本,提高研发效率。
发明内容
本发明的目的在于克服现有技术的不足,提供一种实现IAD代码能在任何嵌入式操作系统下运行,提高设备的实时性、灵活性,减少代码的开发周期和设备版本的维护数量,从而降低开发成本,增加经济效益的嵌入式系统跨平台实现方法。特别是提供一种跨vxWorks和Linux嵌入式系统的方法。
为了实现上述发明目的,采用的技术方案为:
一种综合接入设备的嵌入式系统跨平台实现方法,通过在综合接入设备的嵌入式操作系统及应用程序之间设置一跨平台抽象层,所述跨平台抽象层的接口沿用vxWorks嵌入式系统的应用编程接口API,并设置有嵌入式系统的基本系统调用编程接口。
本发明的跨平台抽象层之所以采用vxWorks的API,是因为其简单易学,且熟悉的技术人员也较多,跨平台抽象层的接口沿用vxWorks已有的API,对vxWorks特有的不具有共性的API不纳入抽象层范畴,跨平台抽象层所包括的为与其他嵌入式系统具有共性的API,使得本发明在可实现多种嵌入式系统跨平台的同时,也容易掌握。
上述技术方案中,所设置的嵌入式系统的基本系统调用编程接口包括任务应用编程接口、信号量应用编程接口、消息队列应用编程接口、看门狗应用编程接口。
本发明所述跨平台抽象层设置有LinuxThreads,所述LinuxThreads使用Linux实时线程模拟嵌入式系统的实时任务、并使用Linux线程的条件condition和锁lock模拟嵌入式系统的消息队列和信号量、并使用定时中断模拟嵌入式系统的看门狗定时器。
由于本发明跨平台抽象层采用vxWorks的API,所以在vxWorks平台下的系统抽象层基本不用实现,可直接使用系统的API。而对于Linux平台下的系统抽象层则使用上述LinuxThreads实现。
所述跨平台抽象层还设置有Linux内核触发可编程间隔定时器PIT,且增加了可编程间隔定时器PIT的频率,使定时中断处理程序的执行频率相应地增加。
本发明在综合上述技术特征之外,进一步还包括在综合接入设备的嵌入式操作系统及应用程序之间设置有硬件抽象层,所述硬件抽象层为包括用户摘挂机扫描、双音多频数字号码收发、数字信号处理芯片、实时时钟芯片的硬件编程接口。
进一步的,本发明还包括在综合接入设备的嵌入式操作系统及应用程序之间设置有实用组件集合,所述实用组件集合包括CPU占有率、内存占有率、命令行接口、在线升级。
本发明通过在嵌入式操作系统之上实现一个跨平台抽象层,该抽象层实现屏蔽各种嵌入式操作系统API的差异;又通过硬件抽象层来屏蔽不同端口综合接入设备之间的硬件差异;再通过一个常用功能的组件集合,便于系统的建构。实现IAD代码能在任何嵌入式操作系统下运行,提高设备的实时性、灵活性,减少代码的开发周期和设备版本的维护数量,从而降低开发成本,增加经济效益。
附图说明
图1为本发明的结构示意图。
具体实施方式
下面结合附图对本发明做进一步的说明。
本发明的结构示意图如附图1所是,为一种综合接入设备的嵌入式系统跨平台实现方法,通过在综合接入设备的嵌入式操作系统及应用程序之间设置一跨平台软件模块,所述跨平台软件模块的接口沿用vxWorks嵌入式系统的应用编程接口API,并设置有嵌入式系统的基本系统调用编程接口,如Linux系统、pSos系统等。采用该结构,呼叫控制、语音业务等应用基于该软件模块实现,但呼叫控制协议栈等第三方提供的模块仍然使用操作系统的API。
所设置的嵌入式系统的基本系统调用编程接口包括任务应用编程接口、信号量应用编程接口、消息队列应用编程接口、看门狗应用编程接口。具体包括:
1、任务相关的API
taskSpawn,taskInit,taskActivate,taskDelete,taskDeleteForce,taskRestart,taskPrioritySet,taskPriorityGet,taskLock,taskUnlock,taskSafe,taskUnsafe,taskDelay,taskName,taskNameToId,taskIdVerify,taskIdSelf,taskIdDefault,taskIsReady,taskIsSuspended,taskTcb,taskIdListGet。
2、信号量相关的API
semTake,semGive,semFlush,semDelete,semBCreate,semCCreate,semMCreate,semMGiveForce。
3、消息队列相关的API
msgQCreate,msgQDelete,msgQSend,msgQReceive,msgQNumMsgs。
4、看门狗定时器相关的API
wdCancel,wdCreate,wdDelete,wdStart。
5、日志相关的API
logInit,logFdAdd,logFdDelete,logFdSet,logMsg。
6、其它API
sysClkRateSet,sysClkRateGet,tickGet。
由于本发明跨平台抽象层采用vxWorks的API,所以在vxWorks平台下的系统抽象层基本不用实现,可直接使用系统的API。而对于Linux平台下的系统抽象层则使用LinuxThreads实现。
此外由于Linux线程的实时性较差,通过分析LinuxThreads代码,发现线程调度的实时性主要与线程锁的实现有关,而线程锁同步的实时性与sys_nanosleep系统调用的实现有关。为此本发明修改了Linux内核触发可编程间隔定时器PIT的频率,定时中断处理程序的执行频率增加了,sys_nanosleep的延时精度相应提高了,但时钟中断处理程序的下半部分的执行次数并不增加。
故而,所述跨平台抽象层还设置有Linux内核触发可编程间隔定时器PIT,且增加了可编程间隔定时器PIT的频率,使定时中断处理程序的执行频率相应地增加。
具体的相关代码修改如下:
#define RESOLUTION_RATIO 5
void do_timer(struct pt_regs*regs)
{
#ifdef HIGH_RESOLUTION_TIMER
hrt_jiffies++;
if(hrt_jiffies%RESOLUTION_RATIO!=0)
{
mark_bh(TIMER_BH);
return;
}
#andif
(*(unsigned long*)&jiffies)++;
#ifndef CONFIG_SMP
/*SMP process accounting uses the local APIC timer*/
update_process_times(user_mode(regs));
#endif
mark_bh(TIMER_BH);
if(TQ_ACTIVE(tq_timer))
mark_bh(TQUEUE_BH);
}
void timer_bh(void)
{
#ifdef HIGH_RESOLUTION_TIMER
sys_nanosleep睡眠任务到时唤醒处理;
if(hrt_jiffies%RESOLUTION_RATIO==0)
#endif
{
update_times();
run_timer_list();
}
}
本发明在综合上述技术特征之外,进一步还包括在综合接入设备的嵌入式操作系统及应用程序之间设置有硬件抽象层,所述硬件抽象层为包括用户摘挂机扫描、双音多频数字号码收发、数字信号处理芯片、实时时钟芯片的硬件编程接口。由于IAD设备都有用户摘挂机扫描、双音多频数字号码收发、数字信号处理芯片、实时时钟芯片等,将这些硬件操作对应用层的接口统一成硬件抽象层,基于硬件抽象层编程,应用代码可以做到跨硬件平台。
进一步的,本发明还包括在综合接入设备的嵌入式操作系统及应用程序之间设置有实用组件集合,所述实用组件集合包括CPU占有率、内存占有率、命令行接口、在线升级。CPU占有率、内存占有率、命令行接口、在线升级等功能是嵌入式设备必备的功能,并目其实现与操作系统紧密相关,本发明设计嵌入式系统跨平台方案时将它们做成独立的组件,方便应用移植。
基于上述方案,本发明顺利的实现了2~8口IAD代码从vxWorks平台到Linux平台的移植,同时也将2~8口Linux平台下的新功能移植到了16口vxWorks平台下的产品中。
Claims (6)
1、一种综合接入设备的嵌入式系统跨平台实现方法,其特征在于在综合接入设备的嵌入式操作系统及应用程序之间设置一跨平台抽象层,所述跨平台抽象层接口沿用vxWorks嵌入式系统的应用编程接口,并设置有嵌入式系统的基本系统调用编程接口。
2、根据权利要求1所述的综合接入设备的嵌入式系统跨平台实现方法,其特征在于所设置的嵌入式系统的基本系统调用编程接口包括任务应用编程接口、信号量应用编程接口、消息队列应用编程接口、看门狗应用编程接口。
3、根据权利要求1所述的综合接入设备的嵌入式系统跨平台实现方法,其特征在于所述跨平台抽象层设置有LinuxThreads,所述LinuxThreads使用Linux实时线程模拟嵌入式系统的实时任务、并使用Linux线程的条件condition和锁lock模拟嵌入式系统的消息队列和信号量、并使用定时中断模拟嵌入式系统的看门狗定时器。
4、根据权利要求3所述的综合接入设备的嵌入式系统跨平台实现方法,其特征在于所述跨平台抽象层还设置有Linux内核触发可编程间隔定时器PIT,且增加了可编程间隔定时器PIT的频率,使定时中断处理程序的执行频率相应地增加。
5、根据权利要求1所述的综合接入设备的嵌入式系统跨平台实现方法,其特征在于所述实现方法还包括在综合接入设备的嵌入式操作系统及应用程序之间设置有硬件抽象层,所述硬件抽象层为包括用户摘挂机扫描、双音多频数字号码收发、数字信号处理芯片、实时时钟芯片的硬件编程接口。
6、根据权利要求1所述的综合接入设备的嵌入式系统跨平台实现方法,其特征在于所述实现方法还包括在综合接入设备的嵌入式操作系统及应用程序之间设置有实用组件集合,所述实用组件集合包括CPU占有率、内存占有率、命令行接口、在线升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610124284 CN101005420A (zh) | 2006-12-18 | 2006-12-18 | 一种综合接入设备的嵌入式系统跨平台实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610124284 CN101005420A (zh) | 2006-12-18 | 2006-12-18 | 一种综合接入设备的嵌入式系统跨平台实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101005420A true CN101005420A (zh) | 2007-07-25 |
Family
ID=38704300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610124284 Pending CN101005420A (zh) | 2006-12-18 | 2006-12-18 | 一种综合接入设备的嵌入式系统跨平台实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101005420A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508644A (zh) * | 2011-09-22 | 2012-06-20 | Tcl集团股份有限公司 | 一种3d用户界面图形引擎架构 |
CN103093777A (zh) * | 2012-12-28 | 2013-05-08 | Tcl集团股份有限公司 | 一种采用Android系统控制DVD设备的方法及系统 |
CN103729243A (zh) * | 2013-12-04 | 2014-04-16 | 上海斐讯数据通信技术有限公司 | 语音接入设备通用硬件抽象接口实现方法及呼叫方法 |
CN106293806A (zh) * | 2016-07-27 | 2017-01-04 | 中航华东光电有限公司 | 道系统中基于u盘接口的镜像和应用程序的升级方法 |
CN108205503A (zh) * | 2016-12-16 | 2018-06-26 | 龙芯中科技术有限公司 | 硬件驱动兼容方法及终端 |
CN112148360A (zh) * | 2020-08-20 | 2020-12-29 | 深圳英飞拓智能技术有限公司 | 一种跨平台嵌入式软件虚拟接口实现方法及系统 |
-
2006
- 2006-12-18 CN CN 200610124284 patent/CN101005420A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508644A (zh) * | 2011-09-22 | 2012-06-20 | Tcl集团股份有限公司 | 一种3d用户界面图形引擎架构 |
CN102508644B (zh) * | 2011-09-22 | 2015-04-29 | Tcl集团股份有限公司 | 一种3d用户界面图形引擎系统 |
CN103093777A (zh) * | 2012-12-28 | 2013-05-08 | Tcl集团股份有限公司 | 一种采用Android系统控制DVD设备的方法及系统 |
CN103093777B (zh) * | 2012-12-28 | 2015-12-23 | Tcl康钛汽车信息服务(深圳)有限公司 | 一种采用Android系统控制DVD设备的方法及系统 |
CN103729243A (zh) * | 2013-12-04 | 2014-04-16 | 上海斐讯数据通信技术有限公司 | 语音接入设备通用硬件抽象接口实现方法及呼叫方法 |
CN103729243B (zh) * | 2013-12-04 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 语音接入设备通用硬件抽象接口实现方法及呼叫方法 |
CN106293806A (zh) * | 2016-07-27 | 2017-01-04 | 中航华东光电有限公司 | 道系统中基于u盘接口的镜像和应用程序的升级方法 |
CN108205503A (zh) * | 2016-12-16 | 2018-06-26 | 龙芯中科技术有限公司 | 硬件驱动兼容方法及终端 |
CN108205503B (zh) * | 2016-12-16 | 2020-11-06 | 龙芯中科技术有限公司 | 硬件驱动兼容方法及终端 |
CN112148360A (zh) * | 2020-08-20 | 2020-12-29 | 深圳英飞拓智能技术有限公司 | 一种跨平台嵌入式软件虚拟接口实现方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101226487B (zh) | 基于嵌入式Linux操作系统的内核级线程库的实现方法 | |
Karmani et al. | Actor frameworks for the JVM platform: a comparative analysis | |
CN107329799A (zh) | 一种融合Docker容器与KVM虚拟化技术的系统 | |
CN103473031B (zh) | 协同并发式消息总线、主动构件组装模型及构件拆分方法 | |
CN101005420A (zh) | 一种综合接入设备的嵌入式系统跨平台实现方法 | |
Shahverdi et al. | Big stream processing systems: an experimental evaluation | |
CN101464810A (zh) | 服务程序处理方法及服务器 | |
CN102779047A (zh) | 一种嵌入式软件支撑平台 | |
WO2020248511A1 (zh) | 一种基于运行时模型实现对终端应用控制的方法 | |
WO2020248510A1 (zh) | 一种终端应用行为反射的处理方法 | |
CN105607904B (zh) | 基于Linux平台的通信软件的快速开发框架及其使用方法 | |
CN113672240A (zh) | 一种基于容器的多机房批量自动化部署应用的方法及系统 | |
CN101789944B (zh) | 多功能电能表通信协议栈的开发系统 | |
US20210365457A1 (en) | Graph database and methods with improved functionality | |
CN103399735A (zh) | 远程函数调用接口中间层开发方法 | |
CN113849399A (zh) | 多国产化平台下的多机协同软件的自动化测试系统和方法 | |
CN106656552A (zh) | 一种数据平台系统的扩展方法、系统及电子设备 | |
CN102109981A (zh) | 实时通讯通用插件 | |
Bagrodia | Parallel languages for discrete-event simulation models | |
WO2021168861A1 (zh) | 一种多核处理器、多核处理器处理方法及相关设备 | |
WO2020248512A1 (zh) | 一种构造终端应用行为的运行时模型的方法 | |
CN113723931B (zh) | 一种适用于多尺度高通量材料计算的工作流建模方法 | |
CN115951970A (zh) | 一种异构多仿真软件集成开发环境 | |
CN101968747A (zh) | 一种机群应用管理系统及其应用管理方法 | |
CN103473032B (zh) | 独立主动构件和可运行主动构件组装模型及构件拆分方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |