CN1577261B - 一种对单片机封装的系统 - Google Patents

一种对单片机封装的系统 Download PDF

Info

Publication number
CN1577261B
CN1577261B CN 200310116379 CN200310116379A CN1577261B CN 1577261 B CN1577261 B CN 1577261B CN 200310116379 CN200310116379 CN 200310116379 CN 200310116379 A CN200310116379 A CN 200310116379A CN 1577261 B CN1577261 B CN 1577261B
Authority
CN
China
Prior art keywords
module
task
message
timer
scheduler
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.)
Expired - Fee Related
Application number
CN 200310116379
Other languages
English (en)
Other versions
CN1577261A (zh
Inventor
张彦春
葛文韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN 200310116379 priority Critical patent/CN1577261B/zh
Publication of CN1577261A publication Critical patent/CN1577261A/zh
Application granted granted Critical
Publication of CN1577261B publication Critical patent/CN1577261B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明的一种对单片机封装的系统,包括:分别封装的调度模块、网络层模块、链路层模块、驱动模块和扩展函数模块,组成一单片机操作系统;所述调度模块对主程序进行封装,该主程序完成系统初始化,用户程序初始化,以及运行一个调度任务;所述网络层模块用于发送和接收数据,并根据用户选择决定发送的数据要送到的链路以及对接收的数据的派发;所述链路层模块负责将接收的数据送至网络层;所述驱动模块负责对不同的物理设备提供相应的驱动;所述扩展函数模块包括通用的扩展功能函数。本发明系统通过分层封装代码,用户可裁剪设置,方便用户对单片机软件的移植、扩展、裁剪和开发,提高了单片机软件的开发效率和软件运行效率。

Description

一种对单片机封装的系统
技术领域
本发明涉及一种单片机,具体地,涉及一种对单片机进行封装的系统,尤其涉及C51单片机领域的嵌入式操作系统软件的封装系统。
背景技术
8051及与其兼容的系列单片机作为工业的标准地位,广泛应用于各类电器及通讯产品中。从1985年开始就有8051单片机的C语言编译器,但能为用户提供简捷、高效的较为实用的内核系统却不多见,Keil C51编译器在这方面可以说是做得最好的,它提供了一个支持多任务操作系统的微内核和全内核。但其微内核功能较为简单,全内核所占空间较大。也有人将uc0S II移植到了51系列的单片机上,(美)Jean J.Labrosse先生在《us/OS-II:源码公开的实时嵌入式操作系统》(邵贝贝等译.-北京:中国电力出版社,2001.11)一书中对uc/OS-II操作系统作了详实的描述。但它与Keil C一样,只是为用户提供了一个进行抢占式或轮询式的多任务调度内核,可裁剪性有限,并没有为用户的开发带来更多的益处,用户在它们的基础上进行开发所带来的开发效率不是很明显,许多功能均需要用户自行实现。
很多系统采用51系列的单片机,本身对时间的要求性不是很强,其处理的内容相比使用CPU要简单。而传统的C51单片机软件,主要是从一个被称为main()的主程序开始运行,不停地检测各种标志位,若有标志被置位,则做相应的处理;标志一般是在中断中被置位的。在单片机类应用技术丛书中,如《单片机的C语言应用程序设计》(马忠梅等编著.-北京:北京航空航天大学出版社,1997.3)等书中,几乎全部是这样的实例。这种单片机软件设计的最明显的缺点是:代码没有进行封装,很难进行移植,不同的项目经常会做重复的劳动,如I2C驱动,485驱动,时钟驱动,汉字驱动等;另外,主程序的执行时间不确定,其最大的时间延迟可能是所有的标志均被置位,写在最后的标志只能在其他所有标志均处理完成之后才被执行;这样响应结果也很有可能导致中断丢失。
发明内容
本发明的目的是为了克服现有技术中单片机软件开发重复性劳动多,开发效率低,设计和维护不方便,移植困难等缺点,提出了一种对单片机封装的系统。具体地说,本发明为单片机软件设计提供一种协同式的多任务调度内核,支持消息管理和定时器管理;提供通用的扩展功能函数;提供对不同设备或器件的常用标准驱动;提供前后台通信;并且具有可裁剪(可配置)等功能的单片机嵌入式操作系统。
本发明所述的对单片机封装的系统如下:
包括分别封装的调度模块、网络层模块、链路层模块、驱动模块和扩展函数模块,共同组成一单片机操作系统;
所述调度模块对主程序进行封装,该主程序完成系统初始化,用户程序初始化,以及运行一个调度任务;
所述网络层模块用于发送和接收数据,并根据用户选择决定发送的数据要送到的链路以及对接收的数据的派发;
所述链路层模块负责将接收的数据送至网络层;
所述驱动模块负责对不同的物理设备提供相应的驱动;
所述扩展函数模块包括通用的扩展功能函数。
所述的系统,其中,所述调度模块的调度任务操作如下:
设定一定时器任务队列和消息队列;
所述所述调度模块的调度任务不停地检测该定时器任务队列和消息队列;
若队列不空,则调度相应的任务运行,并将消息参数传递给相应的任务。
所述的系统,其中,所述调度模块的调度任务操作还包括:
检测定时器队列中是否有定时器,若有则调度相应的定时器任务运行;
检测消息队列中是否有消息,若有则将消息参数传给相应的任务,并调度任务运行;
以上两项周而复始。
所述的系统,其中,所述调度模块的调度任务操作中检测的定时器任务队列和消息队列均采用单循环队列进行管理。
所述的系统,其中,所述调度模块的调度任务操作中检测的定时器任务队列采用宏开关进行编译控制。
所述的系统,其中,所述调度模块的调度任务操作中检测的定时器任务队列和消息队列大小可由用户配置。
所述的系统,其中,所述调度模块的调度任务操作中检测的消息队列采用在静态分配的内存缓冲区,形成消息缓冲池,每一消息指针包括有任务号、消息缓冲池位置和消息静荷长度。
所述的系统,其中,对调度模块的调度任务操作中检测的消息队列的进行写消息:
对所述消息队列和缓冲池进行写操作时关中断;
保存消息到所述缓冲池中的对应写位置;
缓冲池尾指针+=信息体长度;
写操作完毕开中断。
所述的系统,其中,所述驱动模块对同一类设备提供不同的驱动程序,其对外接口基本相同。
所述的系统,其中,所述驱动模块提供时钟中断驱动,标准串口驱动,扩展串口驱动,HDLC驱动,I2C驱动,软件模拟I2C驱动的驱动程序。
所述的系统,其中,所述驱动模块提供的时钟中断驱动包括:
为用户提供一个记录流逝掉的最小时钟中断粒度数的计数器;
对该计数器进行检测,若大于0则减1,否则不对其处理;
检测是否有定时器时间到,若有则将其加入定时器队列,供调度任务调度其运行,否则对定时器计数器做减1操作;
为用户提供一个可扩展的外部接口宏。
所述的系统,其中,所述驱动模块提供的时钟中断驱动还为用户提供一个可设置时钟中断工作模式的带参数的宏。
所述的系统,其中,所述扩展函数模块包括通用延迟功能,CRC检验,断言及错误处理函数。
所述的系统,其中,所述调度模块对用户程序初始化包括初始化CPU、初始化设备、初始化变量、初始化启动。
为方便用户使用本系统,并且达到最优使用FLASH和内存,本发明为用户提供可裁剪(可配置)功能,用户可根据具体项目的需要对本系统进行裁剪(配置),如可配置是否使用定时器,定时器队列大小,消息队列大小,消息缓冲池大小,是否使用I2C或软件模拟I2C等。
本发明的对单片机封装的系统,由于采取了协同式任务调度、可裁剪(可配置)、分层封装、为用户提供标准功能函数等技术措施,使用户将精力主要集中在核心代码的设计上,从而方便了单片机软件的移植、扩展、裁剪和开发,提高了单片机软件的开发效率和软件运行效率。
附图说明
附图中,
图1是本发明的对单片机封装的系统层次结构图;
图2是本发明的对单片机封装的系统调度流程图;
图3是本发明的对单片机封装的系统消息队列示意图;
图4是本发明的对单片机封装的系统的时钟中断驱动流程图;
图5是利用本发明对单片机封装的系统的进行二次开发的流程图。
具体实施方式
以下结合附图,将对本发明的较佳实施例加以详细描述。
本发明的系统层次结构,如图1所示的,主要包括:调度模块110、网络层模块120、链路层模块130、驱动模块140、扩展函数模块150以及应用层模块160和物理设备170,其中:
所述调度模块110主要是为调度系统任务及用户任务的运行,管理消息队列和定时器队列等;
所述网络层模块120的主要功能是在底层为所述调度模块110及单片机软件的上层应用程序提供通过网络层访问不同链路的途径,用户可以不用了解网络层是如何与链路层通信的;
所述驱动模块140主要是针对具体的器件写好特定的驱动程序,使得运行支撑包和上层用户不用关心其具体的实现细节,而只需使用驱动提供的接口就可以。其主要包括:I2C驱动、软件模拟I2C、串口驱动、时钟中断驱动、扩展串口驱动、485驱动、FLASH驱动、EEPROM驱动、LCD驱动等。对于同一类设备或器件,在驱动部分提供不同的驱动程序,但对外接口基本相同,这样对于运行支撑包和上层用户而言,就象是使用同一个设备一样,方便编程时使用。
上述分层封装代码的原因是:整个系统层次结构清晰,利于用户理解、移植和维护,用户也可以在需要时扩展驱动模块及扩展函数模块部分,例如,用户可以写一个Atmel公司的T89C51RD2的看门狗驱动,放到驱动模块部分,只需在应用中使用它就可以了。
由于网络层和链路层只是为用户及所述调度模块110提供不同的通路的底层支持,除此之外不做任何工作;而所述驱动模块140只是将各种设备或器件与硬件密切相关的驱动代码进行封装,提供函数或带参数的宏供用户调用,所述扩展函数模块150则为用户提供了CRC检验、断言及错误处理等功能函数(用户也可以自行扩展这一部分),因此这四部分无需详加说明,以下主要介绍所述调度模块110的实现。
本发明对单片机封装的系统的调度模块进行操作的流程图,如图2所示的,所述调度模块110包括以下任务:系统初始化、用户程序初始化、运行调度任务。
本发明系统启动后,先进行本系统自身的初始化,接着对用户程序进行初始化,然后就将控制权限交给调度任务。用户程序初始化功能包括初始化CPU、初始化设备、初始化变量、初始化启动等。这样设计的目的在于:用户在本系统上进行二次开发时,不再需要写主程序代码;但用户程序初始化只是为用户提供的一个接口,因为本发明不能够准确地知道用户的项目具体要做什么,因此用户可根据不同的项目确定上电初始化该做什么。
其中,所述调度任务主要进行以下步骤:检测定时器队列中是否有定时器,若有则调度相应的定时器任务运行;检测消息队列中是否有消息,若有则将消息参数传给相应的任务,并调度任务运行。以上两项周而复始。其中,是否检测定时器队列采用宏开关进行编译控制,用户可针对不同的项目确定是否使用定时器,通过配置项对其可以进行裁剪,以减少编译后的代码空间及内存空间。本发明支持多任务,但不支持抢占式、不分时间片,只有一个任务运行结束后,下一个任务才能够运行,所以本发明对于定时器队列和消息队列的管理采用单循环队列的方式。调度任务每次只在相应的队列头取数据,中断或其他任务则只在队列尾插入数据。定时器队列和消息队列的大小也可由用户配置(裁剪)。
本发明的消息队列,如图3所示的,消息队列用于给任务发消息。通过本发明提供的各项服务,中断服务子程序或任务都可以将一则消息放入消息队列,等待调度任务的参数使用,一个或多个任务可以通过内核提供的服务从消息队列中得到消息做为参数。由于C51及与其兼容系列的单片机指令周期长,执行速度慢,所以为了提高速度,本发明不使用动态申请内存的办法,所有缓冲区均使用静态的。本发明在内存中开辟一块缓冲区,作为消息缓冲池(POOL),用于存放消息体静荷,消息队列中则存放消息的指针。一则消息包含任务号、在消息缓冲池中的位置、消息静荷长度三部分。这样,通过消息队列的消息指针就可以找到消息缓冲池中的相应部分,并且可以使调度任务知道要调度哪个任务,消息该传给哪个任务。本发明在运行支撑包中为用户提供了将消息发送到消息队列的函数,用户可在中断中有数据来时,或在用户任务中调用该函数将一则消息发送到消息队列。
由于可能存在下面的情况:
多个优先级不同的中断在接收到外界的信息后,向消息队列中发消息;
Figure G2003101163794D00072
用户的某个任务向消息队列中发消息;
可能会出现写缓冲区时出现写冲突,比如一个中断在写缓冲池的过程中,一个高优先级的中断来了,也进行写操作;本发明不允许多个中断或任务向消息缓冲池中写消息体,这就需要在对消息队列和缓冲池进行写操作时开关中断,以便在写操作过程中防止中断的进入,而在写操作完毕接受中断请求的继续。由于单片机的执行速度所限,可能一次要写入缓冲池的消息体较大;这样在进行开关中断时将有可能导致中断延迟过长,并可能导致中断丢失。为了防止这种情况的发生,就要求进行开关中断时延迟尽可能的小。本发明采用如下的处理:
每来一条消息,内核进行如下处理:
对所述消息队列和缓冲池进行写操作时关中断;
将每则消息保存自己在缓冲池中当前的写位置;
缓冲池尾指针+=消息体长度;
Figure G2003101163794D00076
写操作完毕开中断;
由于本发明对任务的调度是先来的先处理,每则消息记录了自己在写消息缓冲池的写位置,并同时从该位置将消息写入消息缓冲池,所以不会造成写冲突,并且关中断时间很短。
本发明的时钟中断驱动,如图4所示的,本发明为用户提供了标准的时钟中断驱动功能,用户可配置USR_CLOCKS_PER_TICK宏定义最小时钟中断粒度(在后面的文档中本发明称之为Tick)所占时钟周期,本发明根据该宏值计算多长时间产生一次时钟中断,用户也可以配置系统使用时钟中断0还是使用时钟中断1,或时钟中断2完成图4所示功能。
所述时钟中断驱动流程如下:
为用户提供一个记录流逝掉的Ticks数功能的计数器,该计数器只是简单的做加1操作,当溢出后自动从0开始计数;
Figure G2003101163794D00082
对延时计数器进行检测,若大于0则减1;否则不对其处理;该功能供延时模块查询延时时间是否到;
Figure G2003101163794D00083
检测是否有定时器时间到,若有则将其加入定时器队列,供调度任务调度其运行;否则对定时器计数器做减1操作;
为用户提供一个可扩展的外部接口宏。
另外,时钟中断驱动部分为用户提供一个可设置时钟中断工作模式的带参数的宏。
利用本发明的对单片机封装的系统进行二次开发的流程,如图5所示的,其包括以下步骤,但在实际的开发过程中,图5所示流程并没有严格的时序,哪一项先做和后做并不重要:
通过配置使用支撑包的哪些功能,该操作会影响到编译后的文件大小和执行速度,以及占用内存的大小。例如配置是否使用定时器任务:#define OS_TIMER_TASK_ENABLE YES,将使用定时器任务;若配置为NO,则不使用定时器任务,编译时与定时器相关的代码将不被编译到用户最终的生成文件中。
若用户不修改系统配置,则使用缺省配置参数。
通过配置各用户参数的大小,也会影响到编译后的文件大小和执行速度,以及占用内存大小。例如配置消息队列及消息缓冲池大小:
#define USR-MSG_POOL_SIZE 255:配置消息缓冲池大小;
#define USR_MSG_QUERY_NUM 10:配置消息队列的最大消息数量;
若用户不修改配置,系统使用缺省配置参数。
Figure G2003101163794D00091
通过配置任务表和定时器任务表以告知系统哪些任务需要系统调度,例如,用户配置任务表和定时器任务如下:
任务表,用户定义了4个任务:
    T_TaskTbl gtTaskTbl[]={
       /*信号,任务名*/
       /*0*/0x0901,Task1,
       /*1*/0x0910,Task2,
       /*2*/0x0945,Task3,
       /*3*/0x0802,Task4
    };
    定时器任务表,用户定义了3个定时器任务:
    T_TimerTaskTbl gtTimerTaskTb1[]={
    /*任务名,时间间隔,计数初值,是否允许定时器工作0:禁止;!0:允许*/
        /*0*/TimerTask2,200,200,1,
        /*1*/TimerTask1,200,200,1,
        /*2*/NULL,          0,0,0
    };
其中第3个定时器由于允许定时器工作标志设置为假,所以定时器任务名填为NULL,为预留定时器,用户可在运行过程中通过osSetTimer()函数动态设置;也可以在运行过程中,通过osEnableTimer()、osDisableTimer()函数动态改变定时器的工作状态为允许或禁止。
接下来用户可以编写用户任务部分:
用户的一个任务例程:
void Task1(BYTE byMsgPos,BYTE byMsgLen,BYTE*byPara)
{
    CHAR*cp=″Hello World!″;
    /*延时20个Ticks*/
    osDelayTicks(20);
    /*发送运行信息*/
    osOutputRunInfo(12,cp);
}
用户的一个定时器任务例程:
void TimerTask1(void)
{
    /*延时5个Ticks*/
    osDelayTicks(5);
    /*运行过程中动态设置定时器2,间隔为150个Ticks,允许定时
       器工作,定时器定时执行定时器任务TimerTask3*/
    osSetTimer(2,150,true,TimerTask3);
    /*接着该定时器禁止自己工作*/
    osDisableTimer(1);
}
Figure G2003101163794D00102
在用户程序初始化,即上电初始化部分,用户可根据实际需要进行设置,包括初始化CPU、初始化设备、初始化用户的全局变量、初始化启动四部分。下面给出初始化的简单例程:
初始化设备:
#define usrInitialDevice    \
{                           \
    /*初始化看门狗*/        \
    drvInitWatchdog();     \
}
初始化用户全局变量:
#define usrInitialVar       \
{                           \
gbHumidity=0;/*湿度初值为0*/\
/*…*/                        \
}
初始化CPU:
#define usrInitialCPU();     \
{                             \
    /*…*/                    \
    IE=0xB6;                \
}
初始化启动:
#define usrInitialStart();   \
{                             \
    /*选择运行分枝*/   \
    SelectRunBrunch();\
}
用户可配置使用宏还是使用函数来写初始化部分,因为用户的初始化代码如果很多,用宏定义写起来不够方便,本发明在这里给用户留有选择的余地,用户可在代码运行效率和程序书写方便性之间进行权衡。
Figure G2003101163794D00121
当项目所需设备驱动程序在本发明中没有时,用户可自行编写相应的驱动,只要在用户自己编写的代码中包含自己写的头文件就可以了,在这里不做过多描述。
采用本发明所述系统,与现有技术相比,由于采取了协同式任务调度、可裁剪(可配置)、分层封装、为用户提供标准功能函数等技术措施,使用户将精力主要集中在核心代码的设计上,从而方便了单片机软件的移植、扩展、裁剪和开发,提高了单片机软件的开发效率和软件运行效率。
应当理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其较佳实施例做出各种可能的改变或替换,而所有这些改变或替换都应属于本发明的权利要求的保护范围。

Claims (14)

1.一种对单片机封装的系统,该系统包括:
分别封装的调度模块、网络层模块、链路层模块、驱动模块和扩展函数模块;
所述调度模块对主程序进行封装,该主程序完成系统初始化,用户程序初始化,以及运行一个调度任务;
所述网络层模块用于发送和接收数据,并根据用户选择决定发送的数据要送到的链路以及对接收的数据的派发;
所述链路层模块负责将接收的数据送至网络层;
所述驱动模块负责对不同的物理设备提供相应的驱动;
所述扩展函数模块包括通用的扩展功能函数。
2.根据权利要求1所述的系统,其特征在于,所述调度模块进行调度任务操作包括:
设定一定时器任务队列和消息队列;
所述调度任务不停地检测该定时器任务队列和消息队列;
若队列不空,则调度相应的任务运行,并将消息参数传递给相应的任务。
3.根据权利要求2所述的系统,其特征在于,所述调度模块的调度任务操作还包括:
检测定时器队列中是否有定时器,若有则调度相应的定时器任务运行;
检测消息队列中是否有消息,若有则将消息参数传给相应的任务,并调度任务运行;
以上两项周而复始。
4.根据权利要求3所述的系统,其特征在于,所述调度模块调度任务操作中检测的定时器任务队列和消息队列均采用单循环队列进行管理。
5.根据权利要求4所述的系统,其特征在于,所述调度模块调度任务操作中检测的定时器任务队列采用宏开关进行编译控制。
6.根据权利要求4或5所述的系统,其特征在于,所述调度模块调度任务操作中检测的定时器任务队列和消息队列大小可由用户配置。
7.根据权利要求6所述的系统,其特征在于,所述调度模块调度任务操作中检测的消息队列采用在静态分配的内存缓冲区,形成消息缓冲池,每一消息指针包括有任务号、消息缓冲池位置和消息静荷长度。
8.根据权利要求7所述的系统,其特征在于,对调度模块调度任务操作中检测的消息队列的进行写消息操作:
对所述消息队列和缓冲池进行写操作时关中断;
保存消息到所述缓冲池中的对应写位置;
缓冲池尾指针+=信息体长度;
写操作完毕开中断。
9.根据权利要求1所述的系统,其特征在于,所述系统中的驱动模块对同一类设备提供不同的驱动程序,其对外接口基本相同。
10.根据权利要求9所述的系统,其特征在于,所述驱动模块提供时钟中断驱动,标准串口驱动,扩展串口驱动,HDLC驱动,I2C驱动,软件模拟I2C驱动的驱动程序。
11.根据权利要求10所述的系统,其特征在于,所述驱动模块提供的时钟中断驱动包括:
为用户提供一个记录流逝掉的最小时钟中断粒度数的计数器;
对该计数器进行检测,若大于0则减1,否则不对其处理;
检测是否有定时器时间到,若有则将其加入定时器队列,供调度任务调度其运行,否则对定时器计数器做减1操作;
为用户提供一个可扩展的外部接口宏。
12.根据权利要求11所述的系统,其特征在于,所述驱动模块提供的时钟中断驱动还为用户提供一个可设置时钟中断工作模式的带参数的宏。
13.根据权利要求1所述的系统,其特征在于,所述扩展函数模块包括通用延迟功能,CRC检验,断言及错误处理函数。
14.根据权利要求1所述的系统,其特征在于,所述调度模块对用户程序初始化包括初始化CPU、初始化设备、初始化变量、初始化启动。
CN 200310116379 2003-06-30 2003-11-06 一种对单片机封装的系统 Expired - Fee Related CN1577261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200310116379 CN1577261B (zh) 2003-06-30 2003-11-06 一种对单片机封装的系统

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN03139672 2003-06-30
CN03139672.0 2003-06-30
CN 200310116379 CN1577261B (zh) 2003-06-30 2003-11-06 一种对单片机封装的系统

Publications (2)

Publication Number Publication Date
CN1577261A CN1577261A (zh) 2005-02-09
CN1577261B true CN1577261B (zh) 2010-04-28

Family

ID=34593046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200310116379 Expired - Fee Related CN1577261B (zh) 2003-06-30 2003-11-06 一种对单片机封装的系统

Country Status (1)

Country Link
CN (1) CN1577261B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257864A (zh) * 2013-05-09 2013-08-21 南京航空航天大学 嵌入式软件任务调度方法
CN109144844B (zh) * 2017-06-27 2023-01-31 阿里巴巴集团控股有限公司 追踪方法、装置、设备和机器可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0314614A2 (de) * 1987-10-28 1989-05-03 Benninger AG Hohlwalze zur Führung von Materialbahnen
CN1274441A (zh) * 1997-10-09 2000-11-22 艾利森公司 应用程序封装器的方法和系统
US6334146B1 (en) * 1998-06-05 2001-12-25 I2 Technologies Us, Inc. System and method for remotely accessing data
CN1416058A (zh) * 2001-10-31 2003-05-07 精工爱普生株式会社 动态类封装

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0314614A2 (de) * 1987-10-28 1989-05-03 Benninger AG Hohlwalze zur Führung von Materialbahnen
CN1274441A (zh) * 1997-10-09 2000-11-22 艾利森公司 应用程序封装器的方法和系统
US6334146B1 (en) * 1998-06-05 2001-12-25 I2 Technologies Us, Inc. System and method for remotely accessing data
CN1416058A (zh) * 2001-10-31 2003-05-07 精工爱普生株式会社 动态类封装

Also Published As

Publication number Publication date
CN1577261A (zh) 2005-02-09

Similar Documents

Publication Publication Date Title
CN100517236C (zh) 智能卡嵌入式操作系统及其控制方法
CN102375761A (zh) 业务管理方法和装置、以及设备
Reusing Comparison of operating systems tinyos and contiki
CN103473031B (zh) 协同并发式消息总线、主动构件组装模型及构件拆分方法
TW200413889A (en) Mechanism for processor power state aware distribution of lowest priority interrupts
EP2488947A1 (en) Single-stack real-time operating system for embedded systems
CN105573825A (zh) 一种跨操作系统的任务间同步的方法及装置
CN103262035A (zh) 组合式cpu/gpu体系结构系统中的装置发现和拓扑报告
Bruyninckx Real-time and embedded guide
CN1577261B (zh) 一种对单片机封装的系统
CN100383743C (zh) Java操作系统中实时任务调度方法
CN101005420A (zh) 一种综合接入设备的嵌入式系统跨平台实现方法
CN109445959A (zh) 一种传感器数据处理实时操作系统
CN103473032B (zh) 独立主动构件和可运行主动构件组装模型及构件拆分方法
Han et al. CoMOS: An operating system for heterogeneous multi-processor sensor devices
CN112597413A (zh) 一种新型嵌入式系统框架及设备
GB2388213A (en) Improvements relating to task dispatch in priority pre-emptive real-time operating systems
Pizka et al. A language-based approach to construct structured and efficient object-based distributed systems
Zheng et al. A parallel-object programming model for petaflops machines and blue gene/cyclops
CN110262874A (zh) 一种基于java虚拟机的新型物联网多任务操作系统及方法
Gammoudi et al. New reconfigurable middleware for adaptive rtos in ubiquitous devices
Labrosse Inside real-time kernels
Masson et al. Handling non-periodic events in real-time java systems
CN102096381A (zh) 一种低功耗rtu微控制器
Gong CORBA application in real-time distributed embedded systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100428