CN1277190C - 动态扩充嵌入式计算机系统的实现方法 - Google Patents
动态扩充嵌入式计算机系统的实现方法 Download PDFInfo
- Publication number
- CN1277190C CN1277190C CN 03108901 CN03108901A CN1277190C CN 1277190 C CN1277190 C CN 1277190C CN 03108901 CN03108901 CN 03108901 CN 03108901 A CN03108901 A CN 03108901A CN 1277190 C CN1277190 C CN 1277190C
- Authority
- CN
- China
- Prior art keywords
- application
- computer system
- equipment
- storage medium
- embedded computer
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明是一种动态扩充嵌入式计算机系统的实现方法,包括启动操作系统和基础应用程序,运行存储介质或设备探测守护进程,安装存储设备,运行应用守护进程,选择和执行存储设备应用程序的步骤。本发明在同等条件下实现了硬件资源的充分利用,完成多个功能,节省了成本,同时在不改动计算机硬件的基础上增加了功能,拓展了嵌入式系统的应用。
Description
技术领域
本发明涉及一种动态扩充嵌入式计算机系统的实现方法,尤其是一种在嵌入式硬件上通过软件架构设计实现嵌入式应用的动态扩充嵌入式系统的实现方法,为用户提供一种功能可自行扩充的嵌入式方法。属于计算机应用领域。
背景技术
嵌入式系统是计算机的一种应用形式,是能直接与现实环境接口或交互的信息处理系统。在这种应用环境中,信息处理系统处于嵌入式工作状态,即实时工作方式或实时就绪与环互动;嵌入式系统通常由硬件和软件两部分组成。简单的嵌入式系统由微控制器或单片机及嵌入式软件组成。嵌入系统与通用计算机系统相比有专用性、可封装性、外来性、实时性、可靠性五个明显的特征。和通用计算机不同,嵌入式系统的硬件和软件都必须高效率和有更高的性能。嵌入式系统中的软件一般都固化在只读存储器中,因此更强调可承性和技术衔接性,发展比较稳定。应用软件是实现嵌入式系统性能的关键,对嵌入式处理器系统软件和应用软件要求也和通用计算机有所不同。软件要求固态化存储提高了执行速度和系统的可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中;软件代码高质量、高可靠性。在多任务嵌入式系统中,系统软件的高实时性是基本要求。
目前嵌入式系统都是为专门应用设计开发的,它操作简单,使用方便,体积小,功耗小。但是,为了实现应用的方便性,更多的嵌入式操作系统是封闭单一的,这在硬件使用上造成了一定程度的浪费,同时也限制了嵌入式应用的扩展性和扩充性。它的结构一般为:底层是确定的硬件,包括CPU、内存等,中间通过特定的操作系统实现硬件的驱动、内存分配、进程调度等工作,在上层会有相应的为特定功能设计的应用。比如:一个汽车GPS电子地图系统,在硬件上,它的所有硬件都已经确定,包括:单片机处理器、GPS芯片等,它的软件也是固定的如电子地图。而对于其它功能,此系统便不能提供,用户若希望增加一附加应用如地图打印或路线纪录,便需要整个更新此系统,具有很大的局限性。
发明内容
为克服现有技术中的不足,本发明的目的在于提供一种动态扩充嵌入式计算机系统的实现方法,在嵌入式硬件上通过软件架构设计实现嵌入式应用的动态运行,为用户提供一种功能可自行扩充的嵌入式计算机系统的实现方法。
本发明的另一个目的在于提供一种动态扩充嵌入式计算机系统的实现方法,降低硬件成本,在同等条件下实现了硬件资源的充分利用,完成多个功能。
为完成本发明的任务,本发明采取以下的技术方案:动态扩充嵌入式计算机系统的实现方法,至少包括以下步骤:
步骤1、启动操作系统和基础应用程序;
步骤2、运行存储介质或设备探测守护进程,安装存储设备;
步骤3、运行应用守护进程,选择和执行存储设备应用程序。
根据本发明的一个目的,本发明的主控程序启动后先启动系统中的基础应用程序,然后再运行存储介质或设备探测守护进程和应用守护进程,之后主控程序父进程就不再进行工作,其余任务由该两个子进程来互相协助完成,从而实现嵌入式应用的动态运行,使用户可自行扩充嵌入式计算机系统的功能。
存储介质探测守护进程进一步具体包括:存储介质或设备探测守护进程开始,初始化介质存在标志,探测存储介质,有标志赋值为1,无标志为0,判断存储介质标志是否变化,如果变大则安装设备到介质接口物理地址,并继续探测,不变则继续探测,如果标志变小,则通知主控释放设备文件,并通知应用守护进程杀掉当前进程,判断主控是否释放设备文件,如果已经释放,则卸载设备的步骤。
应用守护进程进一步具体包括遍历设备安装物理位置中所有目录的应用程序配置文件,创建应用链条,通过配置文件,把符合要求的应用程序动态加入应用链条,显示所有应用程序,用户选择并运行该应用程序,应用程序运行完毕或杀掉当前应用后返回的步骤。
配置文件包括扩展应用程序的名称、主要图标、运行程序、需存储的配置文件及系统认证文件,还包括版本号、版权信息或校验码。
根据本发明的另一个目的,本发明的主控程序启动后先启动系统中的基础应用程序,然后再运行存储介质或设备探测守护进程和应用守护进程,之后主控程序父进程就不再进行工作,其余任务由该两个子进程来互相协助完成,存储介质或设备探测守护进程探测和安装存储设备,应用守护进程则选择和执行存储设备应用程序,可扩展性高,达到动态运行,降低了成本。
本发明采用动态设计,解决了长期以来嵌入式系统单机单用单功能对硬件的浪费。在同等条件下实现了硬件资源的充分利用,完成多个功能,节省了成本。同时在不改动计算机硬件的基础上增加了多功能,拓展了嵌入式系统的应用。
附图说明
图1为本发明的系统架构图;
图2为本发明的应用程序关系图;
图3为本发明的主流程图;
图4为本发明的存储介质或设备探测守护进程流程图;
图5为本发明的应用守护进程流程图。
具体实施方式
下面结合附图和本发明的较佳实施例对本发明作进一步详细的说明。
参阅图1,本发明的系统结构包括硬件和软件结构,硬件架构上与一般嵌入式系统类似。包括中央处理器、存贮器、输入输出设备,和具有通用功能的存储介质或设备接口,可以扩展各种存储介质,最基本的系统硬件1有CPU、主板、内存、固定存储设备如硬盘、DOC等。本发明的硬件还包括存储介质或设备接口2,这些可扩展的设备接口2是磁盘9、U盘10、软盘8和其它存储介质11如软驱、光驱、USB等的接口。软件结构是:这些可扩展的设备都有应用程序7,存储在计算机系统的存储器中。本发明在操作系统3运行后,系统并不直接启动应用程序,而是先启动一主控程序5,主控程序5负责系统的扩展和功能的选择。最后一层是应用层6,它可以包含系统固有的几个特定的应用,然后等待扩展,再启动扩展程序7。
图2是本发明的软件关系图,该图显示了系统软件之间的关系。首先系统12为应用程序13提供了系统应用程序接口(API)。嵌入式系统中资源的获得是不确定的,比如:系统所使用的操作系统、所能满足应用所使用的内存大小、所能支持的图形显示接口、系统临时文件的配置存储规范等。这些详细的系统应用程序规范都必须提供给扩展应用开发者。只有这样才能保证扩展应用正确运行。如果允许用户开发,必须将这些开发规范都与系统一起发布。
本发明中,应用程序是以配置文件的方式向主控程序5报告其信息是否进行了系统注册。配置文件的主要作用是让系统8和主控程序5知道有新的应用程序13加入到系统之中。配置文件的格式规范,必须是应用开发者和系统共知的,也应是确定的,配置文件一般由系统设计者定义规格,应用程序3遵照建立。
配置文件包括扩展应用程序13的名称、主要图标、运行程序、需存储的配置文件机系统认证文件,还包括版本号、版权信息或校验码。
主控程序5在遍历设备安装位置中所有目录的文件如.ini文件,发现符合系统规格的应用程序13后,进行一定的检查确认,主要是认证和完整性校验检查,然后把正确的应用动态加入应用链条,便于运行。
本发明的应用注册也可采用其它方式进行,如系统API函数。注册的主要目的是让系统知道扩展应用程序的信息,便于以后调用。最后是主控程序5对每个应用程序13的控制了,它主要体现在发送消息、控制应用程序的运行、报告系统的运行状态等。本发明还可以设置主控权限,通过系统直接终止程序的
运行或启动应用程序13。
参阅图3本发明的主流程图。主控程序5在启动后,先启动系统中基础应用程序6,然后启动两个子进程:存储介质探测守护进程和应用守护进程。然后主控程序父进程就不再进行工作,其它的任务都由这两个子进程来互相协助完成。
参阅图4,存储介质探测守护进程主要负责存储设备的探测、安装和卸载。在初始状态,先设置一个介质存在标志为0,然后,系统进行存储介质的探测。主要的探测方法是由相应的设备驱动程序4所提供,例如USB存储设备,当每一个USB设备连接到系统,系统USB总线驱动就对USB设备的系统进行注册和对USB信息进行显示。本发明的探测进程通过这些信息或系统接口就可以得到当前的存储设备状态:是否有新的存储设备。在设备的探测中,一般采用轮询的方式,有些特殊的即插即用设备也提供了其它的发消息、中断等方式。当有存储设备时,设置介质存在标志为1,没有时设置为0。
通过与探测前的状态比较,可以知道存储介质2的变化。如果有新的存储介质2安装到了系统,存储介质探测守护进程就把此存储介质8或9、10、11安装到系统某一固定位置,即其物理地址。如果一个以前存在的存储介质现在探测已经被卸载了,存储介质探测守护进程就要及时通知应用守护进程关闭此当前存储介质上的应用。在这里,运行一个存储介质上的应用程序,一般有两种方式,一种是直接运行,一种是拷贝到内存中运行。拷贝到内存中运行一般比较安全,不会受到存储介质的状态变化,而且可以在存储介质移走后,仍然正确运行,所以可以在程序不大而内存充足的情况下使用。通常嵌入式系统都不会具有太富裕的内存,所以直接运行一般是比较常见的。本发明在存储介质探测已经被卸载时立刻终止(不是关闭)应用程序13的运行,因为失去程序载体的程序运行时必然会导致不确定出错问题。一般情况下,用户应在插拔设备前先手动关闭其上的应用。最后,等待一段时间再次进行新的探测。探测间的间隔由具体设备的访问速度和应用类型决定。
最后,决定应用的运行和关闭,这由应用守护进程完成,参阅图5,它遍历搜索设备的安装位置,然后通过配置文件把符合要求的应用加入到系统应用链条中。在显示选择运行菜单或界面后,由用户交互控制运行,也可以设置固定的运行优先级自动选择应用。
以上的处理都基于一个存储设备,当多个存储设备同时支持时,探测标志就要设置多个,以保证安装、卸载的正确性。探测循环也当然要建立同样多个。简单地,可以依次建立每一个设备的探测循环,探测完一种设备再探测另一种。参见图3,它显示了主控程序5在有一个存储介质的时候基本的运行流程和架构,多存储设备依次探测只要顺次建立多个同样的此流程即可。
较佳实施例:在一个嵌入式娱乐设备上,本发明为应用提供了一些嵌入式应用,如媒体播放、游戏等。但由于游戏的开发周期较长,本发明把游戏应用的接口开放。用户或第三方游戏厂商在此基础上可以开发出新的游戏应用。只要符合向主控注册和配置关系,系统就可以随时运行,实现游戏的即时连接。一个装有游戏的U盘,在任何一个嵌入式娱乐设备上在任何时候可以方便地进入运行。有新的版本出现时又可以马上运行新的版本。由于是在嵌入式设备上完成以下功能,避免了应用的安装和卸载,避免了升级导致的新老版本的不兼容,也使得系统运行可靠稳定。
在X86架构硬件上,安装了一个嵌入式Linux系统。在系统运行后,进入XWindow并运行主控程序现实程序选择界面,所有系统支持的应用对应一个图片快捷方式。本发明提供了系统API函数,并公布了相应的系统信息、库函数和接口以及应用程序开发规范。其它应用开发者在此基础上开发出了一个相应的应用程序,应用程序的所有文件都放置在一个目录如gamel下。当把此目录拷贝到U盘或光盘上后,此存储设备就成为一个应用的载体。在任何时候,希望运行它时,只要把U盘或光盘插入本系统,系统通过U盘或光盘检测,把它随时安装到Linux目录/mnt中。在主控每次遍历搜索/mnt目录时,就会发现/mnt/gamel中有符合规范的gamel.ini文件。该文件包括程序名、版本号、程序图标、运行名
通过读取gamel.ini文件中运行文件名和应用程序名,判断了其合法性和正确性后,把程序图标显示到主控选择界面上。当用户点击此画面时,便开始运行/mnt/gamel/gamel程序。
当用户拿走U盘或光盘时,此gamel游戏也就关闭了,回到主控选择界面上,原先的gamel选择图像也就相应的被去掉了。
以上实施例仅用以说明而非限制本发明所涉及的技术方案,尽管参照以上较佳实施例对本发明进行了详细说明,但本发明的技术方案可以进行修改、变化或者等同替换,而不脱离本发明技术方案的精神和实质,这些修改、变化或者替换均涵盖在本发明的权利要求范围之中。
Claims (10)
1、动态扩充嵌入式计算机系统的实现方法,其特征在于包括下述步骤:
步骤1、启动操作系统和基础应用程序;
步骤2、运行存储介质或设备探测守护进程,激活存储设备;
其中存储介质探测守护进程进一步具体包括:
步骤21、存储介质或设备探测守护进程开始;
步骤22、初始化介质存在标志;
步骤23、探测存储介质,并根据探测结果设置介质存在标志;
步骤24、判断存储介质标志是否变化,如果变大则安装设备到介质接口物理地址,并继续探测,不变则继续探测;
步骤25、如果标志变小,则通知主控释放设备文件,并通知应用守护进程杀掉当前进程;
步骤26、判断主控是否释放设备文件,如果已经释放,则卸载设备;
步骤3、运行应用守护进程,选择和执行存储设备中的应用程序。
2、根据权利要求1所述的动态扩充嵌入式计算机系统的实现方法,其特征在于:在设备探测中采用轮询方式进行存储介质探测。
3、根据权利要求1所述的动态扩充嵌入式计算机系统的实现方法,其特征在于:所说的探测是指即插即用设备采用发消息或中断等方式进行的设备探测。
4、根据权利要求1所述的动态扩充嵌入式计算机系统的实现方法,其特征在于:步骤3所说的应用守护进程进一步具体包括:
步骤31、遍历设备安装物理位置中所有目录的应用程序配置文件;
步骤32、创建应用链条,通过配置文件,把符合要求的应用程序动态加入应用链条;
步骤33、显示所有供用户选择并运行的应用程序;
步骤34、应用程序运行完毕,或删除当前应用后返回。
5、根据权利要求1所述的动态扩充嵌入式计算机系统的实现方法,其特征在于:应用程序以配置文件的方式向主控程序报告其信息是否已经在系统中注册。
6、根据权利要5所述的动态扩充嵌入式计算机系统的实现方法,其特征在于:所说的配置文件包括扩展应用程序的名称、主要图标、运行程序、需存储的配置文件及系统认证文件。
7、根据权利要求6所述的动态扩充嵌入式计算机系统的方法,其特征在于所说的配置文件还包括版本号、版权信息或校验码。
8、根据权利要求1所述的动态扩充嵌入式计算机系统的实现方法,其特征在于:主控程序启动后,先启动系统中的基础应用程序,然后再运行存储介质或设备探测守护进程和应用守护进程,之后主控程序父进程就不再进行工作,其余任务由该两个子进程来互相协助完成。
9、根据权利要求4所述的动态扩充嵌入式计算机系统的实现方法,其特征在于:步骤32所说动态应用程序加入应用链条的方法,还可以采用系统应用程序接口函数实现。
10、根据权利要求1所述的动态扩充嵌入式计算机系统的实现方法,其特征在于:当多个存储设备同时存在时,探测标志设置为多个,探测循环也要同样建立多个,以保证安装、卸载的正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03108901 CN1277190C (zh) | 2003-03-31 | 2003-03-31 | 动态扩充嵌入式计算机系统的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03108901 CN1277190C (zh) | 2003-03-31 | 2003-03-31 | 动态扩充嵌入式计算机系统的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1534472A CN1534472A (zh) | 2004-10-06 |
CN1277190C true CN1277190C (zh) | 2006-09-27 |
Family
ID=34283223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03108901 Expired - Fee Related CN1277190C (zh) | 2003-03-31 | 2003-03-31 | 动态扩充嵌入式计算机系统的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1277190C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100345112C (zh) * | 2005-11-25 | 2007-10-24 | 中国科学院软件研究所 | 操作系统的构件化扩充方法 |
CN101526892A (zh) * | 2008-03-04 | 2009-09-09 | 深圳市爱国者嵌入式系统科技有限公司 | 基于嵌入式系统扩展应用程序的方法 |
CN102238354A (zh) * | 2010-05-07 | 2011-11-09 | 康佳集团股份有限公司 | 一种电视机的应用程序的执行方法、系统及电视机 |
CN102520957A (zh) * | 2011-12-19 | 2012-06-27 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统的软件分离设计的方法 |
CN108073452B (zh) * | 2016-11-10 | 2022-01-28 | 阿里巴巴集团控股有限公司 | 一种动态语言的运行时环境处理方法、装置和设备 |
-
2003
- 2003-03-31 CN CN 03108901 patent/CN1277190C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1534472A (zh) | 2004-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2436150C2 (ru) | Создание шаблонов отключенных ресурсов | |
CN1290005C (zh) | 设备驱动程序安装方法及外围设备 | |
CN1163824C (zh) | 快速启动装置和方法 | |
US6988163B2 (en) | Executing binary images from non-linear storage systems | |
CN100451966C (zh) | 发现数据处理系统内的硬件的方法和设备 | |
CN1959640A (zh) | 在软件包管理系统将用户进程表示为软件包的系统和方法 | |
US7743072B2 (en) | Database for storing device handle data in an extensible firmware interface environment | |
CN101650660A (zh) | 从中央存储装置引导计算机系统 | |
US20080126879A1 (en) | Method and system for a reliable kernel core dump on multiple partitioned platform | |
CN101038551A (zh) | 在移动硬盘上实现启动Linux操作系统的方法 | |
EP1620796A2 (en) | Selective loading of remote classes or resources for debugging a java application in a java micro device | |
CN1825283A (zh) | 嵌入式操作系统硬件镜像启动优化的实现方法 | |
CN1786915A (zh) | 管理软件模块的管理方法和信息处理器 | |
US8539214B1 (en) | Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware | |
CN103246534A (zh) | 操作系统迁移方法及装置 | |
US6961848B2 (en) | System and method for supporting legacy operating system booting in a legacy-free system | |
CN1277190C (zh) | 动态扩充嵌入式计算机系统的实现方法 | |
US7082523B2 (en) | Bridging memory access across pre-boot and runtime phases | |
US20100017863A1 (en) | Portable storage apparatus for providing working environment migration service and method thereof | |
CN1755628A (zh) | 操作系统启动过程中自动安装软件的方法 | |
CN100465894C (zh) | 一种Java Processor启动时类装载方法 | |
CN1838075A (zh) | 操作系统选择方法及其计算机系统 | |
CN1167012C (zh) | 用于信息装置的测试系统及测试方法 | |
CN114124739B (zh) | 部署FreeSWITCH服务的方法、装置、电子设备及存储介质 | |
US7873807B1 (en) | Relocating a program module from NVRAM to RAM during the PEI phase of an EFI-compatible firmware |
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: 20060927 Termination date: 20210331 |