嵌入式软件的开发方法

文档序号:6610631阅读:226来源:国知局

专利名称::嵌入式软件的开发方法
技术领域
:本发明涉及嵌入式软件的开发技术,更具体地说,涉及一种嵌入式软件的开发方法。
背景技术
:为便于对本发明的理解,先对一些术语作简单介绍。嵌入式系统本发明涉及的嵌入式系统由嵌入式硬件与嵌入式软件组成;其中嵌入式硬件以芯片、插座、模板、组件、控制器、处理器形式埋藏于设备内部;嵌入式软件是实时多任务操作系统,包括外设驱动和各种专用的应用软件,一般装在处理器的内存中;嵌入式系统是技术密集、投资强度大、高度分散、不断创新的知识密集型系统,反映当代最新技术的先进水平。系统代码在嵌入式软件中,系统代码是其主要核心部分,通常包括多任务操作系统、音视频编码解码算法、及其它系统内核部分的软件代码;通常是由嵌入式微处理器芯片的生产公司提供。驱动代码嵌入式软件需要搭配很多外部部件,例如按键板,液晶显示板等,因而需要相应的驱动代码来负责这些外部部件的驱动。用户界面代码也就是用户交流界面的代码,主要是按什么按键会有什么功能、屏幕显示的界面内容安排等,即那些与用户操作有关的代码。目标文件由编译工具对前述代码(系统代码、驱动代码、用户界面代码)编译后生成的可执行文件,也就是系统目标文件、驱动目标文件、用户界面目标文件。如图1所示,传统嵌入式软件的开发过程中,嵌入式软件的所有源代码由系统代码103、驱动代码102、用户界面代码101组成;再通过嵌入式编译工具104的编译,生成各自的目标文件,即系统目标文件107、驱动目标文件106、用户界面目标文件105;然后将这些目标文件链接起来,生成可在嵌入式硬件上面运行的嵌入式软件108。详细的过程如下(1)进行嵌入式硬件设计,制作完成嵌入式硬件;(2)学习嵌入式微处理器芯片厂家提供的系统代码,并在它的基础上编写驱动代码,以支持按键、显示屏等可在嵌入式硬件上面运行,同时验证嵌入式硬件是否能工作正常;(3)编写用户界面代码,以实现客户的需求;(4)按照图l所示,对各个代码进行编译以生成相应的目标文件,再链接生成嵌入式软件;(5)把生成的嵌入式软件装载进嵌入式硬件中;(6)提供上述嵌入式系统(即装了嵌入式软件的嵌入式硬件)给客户,让其确认用户界面。现有嵌入式软件的开发过程中存在以下问题A.开发周期比较长,需要进行嵌入式硬件的调试、嵌入式软件中系统代码的学习、驱动代码和用户界面代码的编写和调试、编译工具的学习等。B.开发成本比较高,需要耗费较多的人力,嵌入式硬件的制作也需要费用,资金上花费比较多。C.软件代码的可靠性和稳定性较差,因为要学习系统代码和编写嵌入式软件,不可避免会出现软件Bug。
发明内容本发明要解决现有嵌入式软件的开发技术中存在的开发周期长、成本高、稳定性差等问题,让用户可快速、准确地完成嵌入式软件的开发。为解决上述技术问题,本发明提供一种嵌入式软件的开发方法,其特征在于,包括以下步骤(1)由编译工具根据系统代码、用户界面代码、以及至少一个驱动代码,生成相应的系统目标文件、用户界面目标文件、以及至少一个驱动目标文件;在所述用户界面代码中,使用变量方式表达用户界面中需使用的项目、窗口及对象的属性;(3)由界面设计平台根据用户输入的界面设计信息,按项目、窗口、对象、属性的层次生成相应的界面数据文件;所述界面设计平台对所述系统目标文件、用户界面目标文件、用户选择的驱动目标文件、以及所述界面数据文件进行合成链接以生成特定需要的嵌入式软件。本发明中,当在所述步骤(l)中编写用户界面代码时,最好先将与用户界面有关的内容分解为项目、窗口、对象、属性共四个层次,所述项目中包含至少一个窗口,每一个窗口中包含至少一个对象,每一个对象、窗口和项目分别有各自的属性;然后使用变量方式表达用户界面中需使用的项目、窗口及对象的属性。本发明中的所述界面数据文件可包括界面参数文件和界面资源文件,在所述步骤(2)中,所述界面设计平台接收了用户输入的界面设计信息后记录所述界面设计信息中各个对象的内容,生成所述界面资源文件,并在该界面资源文件中针对每一个对象的内容分别赋予一个索引号;按顺序记录所述界面设计信息中的项目、各个窗口、以及各个对象的属性数据,以生成所述界面参数文件,且在该界面参数文件中使用所述索弓I号表达各个对象的内容。在本发明的所述步骤(2)中进行合成链接时,可先将所述界面参数文件调入所述界面设计平台的内存,再根据所述界面参数文件中的索引号从所述界面资源文件查找相应的对象内容并调入所述界面设计平台的内存。本发明中,所述对象的内容可包括文本内容、图片内容、动画内容中的至少一种或多种;所述属性包括坐标数据、颜色数据、按键数据、数值数据、以及索引号中的一种或多种。为实施本发明的方案,还包括制作所述界面设计平台的步骤。本发明中,可在所述步骤(l)中针对常用的外部设备编写多个驱动代码,进而生成多个驱动目标文件;相应地,在制作界面设计平台时,还包括将所述多个驱动目标文件装入所述界面设计平台以供用户选择使用的步骤;在所述步骤(2)中进行合成链接之前,还包括先由所述界面设计平台接收用户选择的至少一个合适的驱动目标文件的步骤。由于采取了上述技术方案,本发明嵌入式软件的开发方法具有以下优点A.客户可在所述界面设计平台中快速看到最后效果的用户界面,不用等到嵌入式硬件完成之后才能看到用户界面效果;B.开发人员要开发一个新的嵌入式软件时,不需要预先学习系统代码;C.开发人员不需要有软件开发经验,只要会设计用户界面即可。D.开发人员不需要学习多种复杂的软件开发工具。E.开发出来的嵌入式软件不会因为开发人员的软件能力水平高低、经验多少而影响稳定性,只会存在用户界面的美观与否。下面将结合附图及实施例对本发明作进一步说明,附图中图1是现有技术中的嵌入式软件开发过程示意图2是本发明中的嵌入式软件开发过程示意图3是本发明中将嵌入式软件的用户界面内容分解为项目、窗口、对象、属性共四个层次的示意图4是本发明一个实施例中的界面设计平台的一个窗口示意图。具体实施例方式由前述技术方案的内容可知,本发明中所讲的嵌入式软件的开发,包括三个阶段,即底层设计、界面设计平台的制作、界面设计。一、嵌入式软件的底层设计针对一个嵌入式软件,在底层设计阶段完成底层代码(系统代码、驱动代码、用户界面代码)的开发。本阶段通常是芯片制造商完成。(11)生成系统目标文件和驱动目标文件本步骤与现有技术相同,即编写系统代码、驱动代码,然后由编译工具生成系统目标文件207和至少一个驱动目标文件;其中会针对常用的外部设备设计多个驱动目标文件,例如键盘的驱动、显示器的驱动等。(12)生成用户界面目标文件本步骤中,先将与该软件的用户界面有关的内容分解为项目、窗口、对象、属性共四个层次,该项目中包含至少一个窗口,每一个窗口中包含至少一个对象,每一个对象、窗口和项目分别有各自的属性;然后使用变量方式表达用户界面中需使用的项目、窗口及对象的属性,以得到固定不变的用户界面代码,进而由编译工具生成固定不变的用户界面目标文件205。可见,现有技术的用户界面代码中,使用的是常量来表达用户界面中的各种信息。这里的"固定不变",是相对传统方法而言的,因为传统方法中需针对每一种用户界面编写一个新的用户界面代码,而本发明中的用户界面代码可适用于多种界面设计,且不需要针对每一种用户界面作修改。通过上述步骤,芯片制造商可为用户提供系统目标文件、驱动目标文件、用户界面目标文件。其中的用户界面目标文件与传统技术的用户界面目标文件不同,因为其内容使用了多个变量,还需要在后续步骤中对这些变量进行赋值。二、界面设计平台的制作为实施本发明的方案,需设计一个界面设计平台209,也就是一套可在普通PC机上运行的软件,可简称为PC平台。本阶段通常是芯片制造商完成。该界面设计平台可按项目、窗口、对象、属性的层次,对用户输入的用户界面信息进行自动的处理,并生成相应的界面数据文件。可将已生成的多个驱动目标文件装入界面设计平台,以供用户选择使用。界面设计平台209的作用包括提供友好的操作方法,让用户可以直观地设计并且看到每个显示窗口的最终效果;生成两个界面数据文件,即界面参数文件和界面资源文件,并用数据的形式记录一个项目中每个窗口上的对象及各自的属性;根据固定不变的系统目标文件和用户界面目标文件,以及已选中的驱动目标文件,再加上前述界面参数文件和界面资源文件,合成链接生成嵌入式软件。在该界面设计平台中,把一个软件中与用户界面相关的内容按照项目、界面、对象、属性四个层次进行了划分。其中一个项目301中包含若干个独立窗口(或称窗体)302;每一个窗口中包含至少一个对象303,例如一串文字(即文本)、一个图片、一个动画等;每一个对象又有它自己的很多属性306,例如文字对象的内容、显示坐标、颜色等;每个项目、每个窗口也分别有它们各自的项目属性304和窗口属性305。因此,可得到一个如图3所示的树状结构。为便于理解,图中用立体框表示项目、矩形框表示窗口、圆角矩形框表示对象、椭圆框表示属性。下面结合图4举例说明,这是界面设计平台的一个显示窗口截图,其中涉及的项目是[AM7101示例工程—3.5,屏]。这个[AM7101示例工程_3.5,屏]项目中包含很多窗口,例如[USB窗口]、[功能导航窗口]、[图片浏览窗口]等,具体展示于图4左侧的竖栏中。每一个窗口中又包含很多对象,例如在图4左侧竖栏中展开的[功能导航窗口]中,包含[图片播放功能]、[音乐播放功]、[SD选项]等对象。每一个对象又有它自己的很多属性,比[如图片播放功能]这个对象就有6个属性,具体包括1个坐标属性,用于定义这个对象要显示的坐标位置;4个图片内容属性,分别对应这个动画对象的4幅画片;l个状态数值属性,用1和0分别表明该动画对象是否需要显示出来。三、嵌入式软件的界面设计针对一个嵌入式软件,如图2所示,在界面设计阶段需完成用户界面的设计,本阶段可由芯片制造商根据客户的指示完成,也可由客户自行完成。例如MP3芯片制造商出售芯片并完成底层设计阶段、界面设计平台制作的工作,而MP3播放器生产厂商则可在购买了MP3芯片之后,自行完成界面设计阶段的工作。针对一款芯片,底层设计、界面设计平台制作可只做一次,不同的芯片使用厂商可根据自己的需要,完成各自的界面设计工作。(21)生成界面数据文件本步骤中,用户在界面设计平台进行界面设计,即输入界面设计信息。由于本发明中将与用户界面有关的内容(即界面设计信息)分解为项目、窗口、对象、属性共四个层次,一个项目中包含至少一个窗口,每一个窗口中包含至少一个对象,每一个对象、窗口和项目分别有各自的属性。所以,界面设计平台接收了用户输入的界面设计信息后,会按项目、窗口、对象、属性的层次生成相应的界面数据文件。本发明中,一个对象有多种属性,对象的内容是其中一个属性,另外还可有坐标数据、颜色数据、按键数据、数值数据等属性;在界面资源文件对各个对象内容分别赋予一个索引号,所以索引号也是对象的一个属性。相应地,在界面参数文件中就不再直接使用对象内容,而是引用对象索引号。具体来说,界面设计平台先记录界面设计信息中各个对象的内容,生成界面资源文件,并在该界面资源文件中针对每一个对象的内容分别赋予一个索引号;然后按顺序记录界面设计信息中的项目、各个窗口、以及各个对象的属性数据,以生成界面参数文件,且在该界面参数文件中使用所述索引号表达各个对象的内容。本步骤中,界面设计平台还接收用户的选择,以确定至少一个合适的驱动目标文件。实施时的极端情况是只有一个驱动目标文件供用户选择。(22)生成嵌入式软件如图2所示,界面设计平台对前述步骤中得到的系统目标文件207、用户界面目标文件205、已选择的驱动目标文件206、以及界面参数文件和界面资源文件210进行合成链接,以生成特定需要的嵌入式软件208。具体工作时,先将界面参数文件调入内存,再根据界面参数文件中的索引号从界面资源文件查找相应的对象内容并调入内存,然后进行合成链接。通过上述过程生成嵌入式软件之后,可直接在界面设计平台看到模拟的最终用户界面。本发明中,可在嵌入式软件被确认可用之后,再制作嵌入式硬件,然后把嵌入式软件装载进嵌入式硬件,得到一个完整的嵌入式系统。有了前述底层设计、界面设计平台制作的基础之后,如果要开发一套嵌入式软件,其主要工作就是在这个界面设计平台上给该软件项目配置窗口、对象以及各自的属性,例如在设定位置填入一段文字,插入一个图片等。配置完成后,界面设计平台会产生两个界面数据文件,即界面参数文件和界面资源文件。本实施例中,将界面参数文件命名为Easy,bin,它按照一定顺序记录各种属性数据,例如坐标、颜色,每个数据都是一个32bit数;对于图片和文本,由于其数据量较大,则只记录该图片或文本在Easy,res里面的32bit的索引号;进行嵌入式软件的开发时,该Easy,bin文件要完全装载进内存。界面资源文件命名为Easy.res,它包含文本、图片的实际数据内容,利用Easy,bin里面的索引号,可以快速地从easy,res里面取出对应的图片或文本数据。当需要显示哪一个图片或文本的时候,就把该图片或文本的实际数据装载进内存。本发明中,在底层设计阶段预先完成了底层代码的开发工作,客户不用修改这部分源代码,只需要使用最后的目标文件即可。嵌入式系统开始运行时,用户界面目标文件将界面参数文件easy,bin读到一块内存区域。针对同一用户界面目标文件,可以因为界面参数文件和界面资源文件的不同,运行不同的功能、显示不同的图片。可见,在界面设计阶段,用户不需要写代码,而只需要在界面设计平台上修改界面设计方案,就可以修改最终的用户界面效果。下面举例说明。如果要显示一个图片,现有技术中的用户界面代码通常是DisplayPic(80,60,picdata)这表示要把picdata里面的图片数据,显示在80,60这个坐标位置上。本发明的实施例中,嵌入式系统开始运行时,会把easy,bin先装进easytable[]这块内存区域去,此时用户界面代码可写成DisplayPic(easytable[100],easytable[101],easytable[102])这表示显示坐标为(easytable[100],easytable[101]),序号为easytable[102]的图片。而easytable[100]等的具体数值来自界面参数文件Easy,bin,图片或文本的实际数据又来自界面资源文件Easy,res。此外,如果要响应一些按键,现有技术中的用户界面代码通常是MefineBUTTON—UP1ftdefineBUTTON—DOWN2Switch(Key){CaseBUTTON—UP:Break;CaseBUTTON—DO丽Break;本发明中,由于case后面必须是常数,所以可采用如下写法:if(Key==easytable[200]){Key=BUTTON—UP;}Elseif(Key==easytable[201]){Key=BUTTON—DOWN;}Switch(Key){CaseBUTTON—UP:Break;CaseBUTTON—DOWN:Break;由前面的内容可以看出,本发明的用户界面代码中使用的是变量,也就是不包括具体的用户界面数据,即不包括用户界面中的窗口、对象以及各自的属性数据。这样一来,可以实现用户界面代码与用户界面数据的完全独立,客户不用修改任何的代码部分,只需要在界面设计平台上修改界面设计方案,就可以修改最终的用户界面效果。由于嵌入式软件的开发过程中,大部分的工作就是用户界面的开发,本发明把嵌入式软件中与用户界面有关的部分剥离出来,使得用户界面的设计可独立于嵌入式软件,并由界面设计平台来处理。通过界面设计平台可模拟用户界面,同时简单易用,可快速生成嵌入式软件,从而可大大减少客户导入一套新嵌入式方案的时间和风险,并大大提高客户进行嵌入式软件开发的效率。权利要求1、一种嵌入式软件的开发方法,其特征在于,包括以下步骤(1)由编译工具根据系统代码、用户界面代码、以及至少一个驱动代码,生成相应的系统目标文件、用户界面目标文件、以及至少一个驱动目标文件;在所述用户界面代码中,使用变量方式表达用户界面中需使用的项目、窗口及对象的属性;(2)由界面设计平台根据用户输入的界面设计信息,按项目、窗口、对象、属性的层次生成相应的界面数据文件;所述界面设计平台对所述系统目标文件、用户界面目标文件、用户选择的驱动目标文件、以及所述界面数据文件进行合成链接以生成特定需要的嵌入式软件。2、根据权利要求1所述的嵌入式软件的开发方法,其特征在于,在编写用户界面代码时,先将与用户界面有关的内容分解为项目、窗口、对象、属性共四个层次,所述项目中包含至少一个窗口,每一个窗口中包含至少一个对象,每一个对象、窗口和项目分别有各自的属性;然后使用变量方式表达用户界面中需使用的项目、窗口及对象的属性。3、根据权利要求2所述的嵌入式软件的开发方法,其特征在于,所述界面数据文件包括界面参数文件和界面资源文件,所述界面设计平台接收了用户输入的界面设计信息后记录所述界面设计信息中各个对象的内容,生成所述界面资源文件,并在该界面资源文件中针对每一个对象的内容分别赋予一个索引号;按顺序记录所述界面设计信息中的项目、各个窗口、以及各个对象的属性数据,以生成所述界面参数文件,且在该界面参数文件中使用所述索引号表达各个对象的内容。4、根据权利要求3所述的嵌入式软件的开发方法,其特征在于,在进行合成链接时,先将所述界面参数文件调入所述界面设计平台的内存,再根据所述界面参数文件中的索引号从所述界面资源文件查找相应的对象内容并调入所述界面设计平台的内存。5、根据权利要求4所述的嵌入式软件的开发方法,其特征在于,所述对象的内容包括文本内容、图片内容、动画内容中的至少一种或多种;所述属性包括坐标数据、颜色数据、按键数据、数值数据、以及索引号中的一种或多种。6、根据权利要求1-5中任一项所述的嵌入式软件的开发方法,其特征在于,在所述步骤(2)之前还包括制作所述界面设计平台的步骤。7、根据权利要求6所述的嵌入式软件的开发方法,其特征在于,在所述步骤(l)中,针对常用的外部设备编写多个驱动代码,进而生成多个驱动目标文件;在制作所述界面设计平台时,还包括将所述多个驱动目标文件装入所述界面设计平台以供用户选择使用的步骤;在所述步骤(2)中进行合成链接之前,还包括先由所述界面设计平台接收用户选择的至少一个合适的驱动目标文件的步骤。全文摘要本发明涉及嵌入式软件的开发方法,针对一个嵌入式软件的开发,包括以下步骤(1)由编译工具根据系统代码、用户界面代码、以及至少一个驱动代码,生成相应的系统目标文件、用户界面目标文件、以及至少一个驱动目标文件;在所述用户界面代码中,使用变量方式表达用户界面中需使用的项目、窗口及对象的属性,编译后生成固定不变的用户界面目标文件;(2)界面设计平台根据用户输入的界面设计信息,按项目、窗口、对象、属性的层次生成相应的界面数据文件;再对已有的目标文件和界面数据文件进行合成链接以生成特定需要的嵌入式软件。为实施本发明的方案,还包括制作所述界面设计平台的步骤。本发明可大大提高客户进行嵌入式软件开发的效率。文档编号G06F9/44GK101196811SQ200710124828公开日2008年6月11日申请日期2007年12月7日优先权日2007年12月7日发明者辉罗申请人:炬才微电子(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1