应用自动编译框架来快速开发嵌入式系统的方法及装置的制作方法

文档序号:6539365阅读:181来源:国知局
专利名称:应用自动编译框架来快速开发嵌入式系统的方法及装置的制作方法
技术领域
本发明提供一种开发一操作系统的方法及装置,特别指一种应用一自动编译框架来快速开发一嵌入式操作系统的方法及装置。
背景技术
随着嵌入式系统(Embedded System)的发展,相关的应用装置也日渐普及,举例来说,信息家电(information appliance,IA)、智能型手机(smartphone)、机顶盒(set-top-box)、多媒体音像播放机、打印机、路由器与个人数字助理等应用嵌入式系统结构的装置均是目前本领域极力发展的产品,一般而言,嵌入式系统由计算机软件(嵌入式操作系统)与计算机硬件(系统单芯片)所构成,亦即其基于某一种特殊用途而开发出来,因此,相较于一般个人计算机,嵌入式系统往往具有稳定性高、体积小与成本低的优点。对于嵌入式操作系统而言,目前本领域所使用的产品很多,例如Palm OS、Windows CE与Linux等,其中Linux操作系统由于具有免费授权的特性,因此目前大量地应用于嵌入式系统中。
请参阅图1,图1为公知开发一嵌入式操作系统的流程图。公知开发嵌入式操作系统的步骤说明如下步骤100准备组成一嵌入式操作系统所需的多个构件原始码(component source code);步骤102对该多个构件原始码中尚未完成编译的一构件原始码进行配置设定(configure);步骤104编译(compile)该已完成配置设定的构件原始码;步骤106该构件原始码是否成功编译成一相对应构件?若是,则进行步骤110;否则,进行步骤108;步骤108对该待编译的构件原始码重新进行配置设定,接着,回到步骤104;步骤110该多个构件原始码是否均已编译成功?若是,则进行步骤112;否则,回到步骤102;步骤112将已编译完成的多个构件综合成根文件系统(root filesystem);步骤114去除不必要的构件以减少存储空间与主存储器的使用量;步骤116压缩该根文件系统为一映像文档;以及步骤118将该映像文档下载至一目标装置中,并测试该映像文档所对应的该根文件系统是否可以正常执行。
上述开发流程简要说明如下。一嵌入式系统(亦即目标装置)的开发者会依据该嵌入式系统的功能需求来设计一适当的嵌入式操作系统,因此,该开发者首先将该嵌入式操作系统所需的多个构件的构件原始码(例如,核心的原始码、函式库的原始码与应用程序的原始码等等)存放于一开发系统(例如一计算机主机)上。接着,该开发者便通过该开发系统所提供的综合型开发环境(integrated development environment,IDE)来对各构件原始码进行配置设计,由于每一构件具有其功能与运作,因此,该开发者必须具有广泛且深入的软硬件知识,以便了解每一构件的功能与运作以及各构件之间的操作关联性,因此若一构件所对应的构件原始码的配置设定产生错误,则当该构件原始码后续执行编译程序时,该构件原始码便无法顺利地编译产生所要的构件,亦即,该构件原始码编译失败,所以,该开发者便必须重新检视该构件原始码的配置设定并进行修改,接着,再重新编译该构件原始码,上述编译与校正配置设定的程序会不断重复执行直到该构件原始码编译成功为止。
当该多个构件原始码均已编译成功之后,该开发者便使用该开发系统来将已编译完成的多个构件综合成根文件系统,此时,由于公知目标装置上的存储容量有限,因此,为了降低存储空间与主存储器的使用量,因此便会进一步地将该根文件系统中不必要的构件剔除,举例来说,开发过程中所使用的开发工具(例如编译器)并不会在该目标装置上执行,因此其便会被去除来降低根文件系统的实际容量。最后,为了于该目标装置上测试上述的根文件系统,因此,该根文件系统会先压缩成一映像文档,接着,该映像文档便被下载至该目标装置来测试该根文件系统的运作。若该根文件系统无法正确运作,则该开发者必须耗费大量时间来执行除错(debug),并且另需重头以手工操作来执行一遍开发流程,基本上,一个有经验的开发者大约需要一周才能顺利开发出一个原型系统(prototype)。
由上述说明可知,公知嵌入式操作系统的开发方法明显具有以下三缺点(一)开发者需要对所采用的构件有充份了解,不然,构件原始码的配置设定便极易发生错误而无法使构件原始码顺利编译成功;(二)公知嵌入式操作系统的开发流程十分复杂,而且环环相扣容易出错;以及(三)开发者需要验证与除错原型系统时,其必须利用特殊软硬件组合将所开发的根文件系统下载至目标装置上,这样的流程不但复杂而且耗时。

发明内容
因此本发明提供一种应用一自动编译框架来快速开发一嵌入式操作系统的方法及装置,以解决上述的问题。
依据本发明的一实施例,其公开一种开发一嵌入式操作系统的方法。该方法包含有(a)提供一工具软件原始码(utility source code)、一预建配置设定框架(pre-built configuration framework)以及一自动编译框架(automated building framework);以及(b)执行该自动编译框架来自动地编译该工具软件原始码以产生多个工具程序,以及自动地综合(integrate)该预建配置设定框架以及该多个工具程序来产生该嵌入式操作系统的根文件系统(root file system)。
依据本发明的一实施例,其另公开一种开发一嵌入式操作系统的装置。该装置包含有一存储装置,其包含有一工具软件原始码(utility sourcecode)、一预建配置设定框架(pre-built configuration framework)以及一自动编译框架(automated building framework);以及一微处理器(microprocessor),耦接于该存储装置,用来执行该自动编译框架以自动地编译该工具软件原始码以产生多个工具程序,以及自动地综合(integrate)该预建配置设定框架以及该多个工具程序来产生该嵌入式操作系统的根文件系统(root file system)。
本发明快速开发一嵌入式操作系统的方法与装置具有以下优点(一)开发者无须知道嵌入式系统的软硬件知识即可经由自动编译框架得到一嵌入式操作系统的原型系统;(二)由于预建配置设定框架所包含的软件元件预先验证过,所以可节省开发过程中进行验证和除错的时间;(三)自动编译框架为自动化处理机制,因此可节省大量的开发时间;以及(四)开发结果为一中介映像文档,其可让开发者依据需求来弹性选择使用何种测试机制来测试所开发的根文件系统。


图1为公知开发一嵌入式操作系统的流程图。
图2为本发明开发一嵌入式操作系统的流程图。
图3为本发明开发一嵌入式操作系统的装置的功能方块图。
主要元件符号说明300计算机主机 302微处理器304存储装置306工具软件原始码308预建可执行码310预建配置设定框架312自动编译框架314操作系统316模拟器软件 318编译工具组320目标装置具体实施方式
请参阅图2,图2为本发明开发一嵌入式操作系统的流程图。本发明开发嵌入式操作系统的操作说明如下步骤200于一开发系统中准备一工具软件原始码(utility sourcecode)、一预建可执行码(pre-built binary)、一预建配置设定框架(pre-built configuration framework)以及一自动编译框架(automatedbuilding framework);步骤202执行该自动编译框架;步骤204该自动编译框架自动地读取该工具软件原始码,并自动地编译该工具软件原始码来产生多个工具程序;步骤206该自动编译框架自动地读取该预建配置设定框架与该多个工具程序,并自动地将该预建配置设定框架以及该多个工具程序综合(integrate)成根文件系统(root file system);
步骤208该自动编译框架自动地产生对应一特定文件系统格式的空白映像文档;步骤210该自动编译框架自动地侦测该预建可执行码是否包含有一系统核心(kernel)?若是,则执行步骤212;否则,执行步骤214;步骤212该自动编译框架自动地将该预建可执行码(该系统核心除外)综合至该根文件系统,并自动地将该根文件系统与该系统核心写入至该空白映像文档以产生一中介映像文档(Meta image),接着,执行步骤216;步骤214该自动编译框架自动地将该预建可执行码综合至该根文件系统,并自动地将该根文件系统写入至该空白映像文档以产生一中介映像文档;以及步骤216测试该中介映像文档所对应的该根文件系统是否可以正常执行。
上述开发流程详细说明如下。一开发者于一开发系统(例如一计算机主机)上执行嵌入式操作系统的开发程序,首先,该开发者会先将一工具软件原始码、一预建可执行码、一预建配置设定框架以及一自动编译框架载入该开发系统(步骤200)。本实施例中,该预建配置设定框架为符合Linux标准库(Linux standards base,LSB)的文件系统框架,其本身可视为一个简化版的根文件系统,例如其目录结构除了根目录(root)/外,另具有下列目录/etc、/usr、/dev及/bin等等,此外,构成该预建配置设定框架的所有软件元件事先经过验证而可正确地运作,换句话说,该预建配置设定框架所包含的软件元件会于操作时产生错误的机率微乎其微。上述说明中,该预建配置设定框架并未包含任何工具软件,然而,亦可依据设计需求将部分已完成验证的工具软件设置于该预建配置设定框架中,亦属本发明的范畴。请注意,本发明可用来快速地开发一嵌入式操作系统的原型系统(prototype),因此,该预建配置设定框架所对应的根文件系统并非针对一特定用途的嵌入式系统来建置,相反地,该预建配置设定框架所对应的根文件系统支持大部分嵌入式系统可能会需要的功能,所以,虽然本发明方法所产生的嵌入式操作系统的原型系统会具有较大的数据量,然而,不论开发者所要处理的嵌入式系统为何,其都能依据本发明所公开的技术来快速地开发出所要的嵌入式操作系统的原型系统。
该工具软件原始码包含有对应多个工具软件的原始码,举例来说,该多个工具软件为一系统壳程序(例如bash shell)、一文件处理工具(例如cp、mv与mkdir等)以及软件管理程序(例如rpm),本实施例中,该工具软件原始码应用BusyBox之类的软件原始码来加以建置。另外,该预建可执行码则可包含有一系统核心或多个系统函式库(例如glibc与libnss等)。对于该自动编译框架而言,其为一文字型批次档(script),用来控制嵌入式操作系统的开发流程,换句话说,该自动编译框架提供一自动化处理机制,而该自动编译框架的运作与功能则详细说明如下。
于该工具软件原始码、该预建可执行码、该预建配置设定框架以及该自动编译框架载入该开发系统后(步骤200),该开发者便可执行该自动编译框架来启动一自动化处理机制(步骤202)。该自动编译框架会先读取该工具软件原始码,并使用该开发系统所具有的编译器(compiler)、链接器(linker)、交叉编译器(cross-compiler)或交叉链接器(cross-linker)来对该工具软件原始码进行编译或链接的操作,以产生多个工具程序,例如上述的系统壳程序、文件处理工具以及软件管理程序(步骤204),接着,该自动编译框架便将该预建配置设定框架以及该多个工具程序综合成根文件系统(步骤206),此时,原本为一精简版根文件系统的预建配置设定框架便可经由该多个工具程序的加入而支持更多的功能。然后,该自动编译框架会产生一空白映像文档,其所对应的文件系统格式可依据设计需求而符合ISO 9660、JFFS2、EXT2、EXT3、ROMFS、CRAMFS或RAMDISK的规范,举例来说,该自动编译框架线先执行一公知指令”dd”来建立一存储空间,接着在执行另一公知指令”mkfs”来格式化该存储空间以建立对应所需的文件系统格式的空白映像文档。
如前所述,该预建可执行码可包含有一系统核心或多个系统函式库。假设该预建可执行码同时包含一系统核心与多个系统函式库,所以,步骤210便侦测到该预建可执行码包含有系统核心,因此,本实施例中,该自动编译框架便将该多个系统函式库综合至目前的根文件系统而进一步地扩充其功能,此外,该自动编译框架接着便将该根文件系统与该系统核心一起写入至该空白映像文档以产生一中介映像文档(步骤212),换句话说,该中介映像文档具有独立开机的能力。另一方面,假设该预建可执行码仅包含多个系统函式库而不含系统核心,所以,步骤210便侦测到该预建可执行码不包含有系统核心,因此,本实施例中,该自动编译框架便将该多个系统函式库综合至目前的根文件系统而进一步地扩充其功能,此外,该自动编译框架接着便将该根文件系统写入至该空白映像文档以产生一中介映像文档(步骤214),由于该中介映像文档此时仅包含根文件系统,所以其便不具有独立开机的能力。请注意,假设该预建可执行码仅包含一系统核心,则于步骤212中,目前的根文件系统并不会产生变动,因此于该自动编译框架仅会将该根文件系统与该系统核心一起写入至该空白映像文档以产生一中介映像文档。
如同公知开发流程一般,本发明开发流程的最后阶段必定要测试该中介映像文档所对应的该根文件系统是否可以正常执行(步骤216)。本实施例可采用两种测试机制(一)执行一模拟器软件(例如VMWare)来对该中介映像文档进行测试,由于该模拟器软件与该开发系统于同一计算机主机上被执行,因此,可避免公知开发流程将该中介映像文档下载至一目标装置(例如应用于网路的嵌入式系统)所耗费的时间;以及(二)实际使用一目标装置(例如应用于网路的嵌入式系统)来对该中介映像文档进行测试。
由于本发明开发嵌入式操作系统的方法采用一自动化运作的自动编译框架,因此本发明不需要开发者手动地控制该中介映像文档的形成,亦即,若该根文件系统于步骤216无法通过验证,则开发者于完成除错后后,自动编译框架便可快速地产生另一中介映像文档来进行测试,因此可大幅地缩短系统开发时间。
请参阅图3,图3为本发明开发一嵌入式操作系统的装置的功能方块图。此一实施例中,开发一嵌入式操作系统的装置为一计算机主机300,其包含有一微处理器(microprocessor)302与一存储装置304(例如一硬盘),如图3所示,存储装置304中存储有一工具软件原始码306、一预建可执行码308、一预建配置设定框架310、一自动编译框架312、一操作系统314、一模拟器软件316以及一编译工具组(compiler toolchain)318。工具软件原始码306、预建可执行码308、预建配置设定框架310、自动编译框架312以及模拟器软件316的功能与操作已于前详述,于此不另赘述,而编译工具组(compiler toolchain)318包含有开发软件所需的编译器、链接器、交叉编译器或交叉链接器。一开发者可使用计算机主机300来开发一嵌入式操作系统的原型系统,首先,计算机主机300于开机后会载入并执行操作系统314(例如Linux操作系统)来作为一开发系统,因此,当该开发者输入一指令至计算机主机300而执行自动编译框架312后,自动编译框架312便会读取并使用编译工具组318来依据工具软件原始码306产生多个工具软件,换句话说,自动编译框架312依据前述步骤204-214来自动地产生一中介映像文档。接着,该开发者可依据其需求将该中介映像文档载入至一外部的目标装置320来进行功能验证,或者通过计算机主机300本身执行模拟器软件316来测试该中介映像文档是否可正常运作。
相较于公知技术,本发明快速开发一嵌入式操作系统的方法与装置具有以下优点(一)开发者无须知道嵌入式系统的软硬件知识即可经由自动编译框架得到一嵌入式操作系统的原型系统;(二)由于预建配置设定框架所包含的软件元件预先验证过,所以可节省开发过程中进行验证和除错的时间;(三)自动编译框架为自动化处理机制,因此可节省大量的开发时间;以及(四)开发结果为一中介映像文档,其可让开发者依据需求来弹性选择使用何种测试机制来测试所开发的根文件系统。
以上所述仅为本发明的优选实施例,凡依本发明权利要求所进行的等效变化与修改,皆应属本发明的涵盖范围。
权利要求
1.一种开发一嵌入式操作系统的方法,其包含有(a)提供一工具软件原始码、一预建配置设定框架以及一自动编译框架;以及(b)执行该自动编译框架来自动地编译该工具软件原始码以产生多个工具程序,以及自动地综合该预建配置设定框架以及该多个工具程序来产生该嵌入式操作系统的根文件系统。
2.如权利要求1所述的方法,其中步骤(a)还包含有提供一预建可执行码,其未包含该嵌入式操作系统的一系统核心,以及步骤(b)还包含有自动地将该预建可执行码综合至该根文件系统。
3.如权利要求1所述的方法,其中步骤(b)还包含有自动地产生一空白映像文档,以及自动地将该根文件系统写入至该空白映像文档以产生一中介映像文档。
4.如权利要求3所述的方法,其中步骤(a)还包含有提供一预建可执行码,其为该嵌入式操作系统的一系统核心,以及步骤(b)还包含有自动地将该系统核心写入至该中介映像文档。
5.如权利要求3所述的方法,其中该空白映像文档所对应的文件系统格式符合ISO 9660、JFFS2、EXT2、EXT3、ROMFS、CRAMFS或RAMDISK的规范。
6.如权利要求3所述的方法,其中步骤(a)还包含提供一模拟器软件,以及该方法还包含有执行该模拟器软件来载入该中介映像文档以测试该根文件系统的运作。
7.如权利要求1所述的方法,其中该预建配置设定框架所包含的所有软件元件均已完成功能验证。
8.如权利要求1所述的方法,其中该预建配置设定框架为符合Linux标准库(LSB)的文件系统框架。
9.如权利要求1所述的方法,其中步骤(a)还包含有提供一编译工具组,以及该自动编译框架使用该编译工具组来自动地编译该工具软件原始码产生该多个工具程序。
10.一种开发一嵌入式操作系统的装置,其包含有一存储装置,其包含有一工具软件原始码、一预建配置设定框架以及一自动编译框架;以及一微处理器,耦接于该存储装置,用来执行该自动编译框架以自动地编译该工具软件原始码以产生多个工具程序,以及自动地综合该预建配置设定框架以及该多个工具程序来产生该嵌入式操作系统的根文件系统。
11.如权利要求10所述的装置,其中该存储装置还包含有一预建可执行码,其未包含该嵌入式操作系统的一系统核心,以及该微处理器另执行该自动编译框架来自动地将该预建可执行码综合至该根文件系统。
12.如权利要求10所述的装置,其中该微处理器另执行该自动编译框架来自动地产生一空白映像文档,以及自动地将该根文件系统写入至该空白映像文档以产生一中介映像文档。
13.如权利要求12所述的装置,其中该存储装置还包含有一预建可执行码,其为该嵌入式操作系统的一系统核心,以及该微处理器另执行该自动编译框架来自动地将该系统核心写入至该中介映像文档。
14.如权利要求12所述的装置,其中该空白映像文档所对应的文件系统格式符合ISO 9660、JFFS2、EXT2、EXT3、ROMFS、CRAMFS或RAMDISK的规范。
15.如权利要求12所述的装置,其中该存储装置还包含有一模拟器软件,以及该微处理器另执行该模拟器软件来载入该中介映像文档以测试该根文件系统的运作。
16.如权利要求10所述的装置,其中该预建配置设定框架所包含的所有软件元件均已完成功能验证。
17.如权利要求10所述的装置,其中该预建配置设定框架为符合Linux标准库(LSB)的文件系统框架。
18.如权利要求10所述的装置,其中该存储装置还包含有一编译工具组,以及该自动编译框架于执行时使用该编译工具组来自动地编译该工具软件原始码产生该多个工具程序。
全文摘要
一种开发一嵌入式操作系统的方法与装置。该方法包含有提供一工具软件原始码、一预建配置设定框架以及一自动编译框架;以及执行该自动编译框架来自动地编译该工具软件原始码以产生多个工具程序,以及自动地综合该预建配置设定框架以及该多个工具程序来产生该嵌入式操作系统的根文件系统。
文档编号G06F9/44GK1831760SQ20051005432
公开日2006年9月13日 申请日期2005年3月8日 优先权日2005年3月8日
发明者曾瑞源 申请人:光宝科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1