一种基于代码隔离的嵌入式软件构建方法和调用方法技术

技术编号:11131709 阅读:124 留言:0更新日期:2015-03-12 01:27
一种基于代码隔离的嵌入式软件构建方法和调用方法,将非易失存储器划分为第一、二、三个独立存储空间;将引导、加载程序,系统软件映像对应固化到第一、二个独立存储空间;其前或后根据系统软件提供的功能接口及系统数据类型定义文件生成系统软件API接口文件;将其拷贝到应用程序所在工程并在应用程序源代码中包含系统软件API接口文件;将应用程序映像固化到第三个独立存储空间;引导、加载程序加载系统软件和应用程序到SRAM,并跳转到系统软件入口执行;启动后应用程序完成操作系统的功能调用并返回应用程序。该方法在不增加系统开销的情况下满足深嵌入式应用对高执行效率及低代码大小的要求。

【技术实现步骤摘要】

本专利技术涉及一种嵌入式软件构建方法,具体涉及。 现有技术 目前现有的嵌入式软件构建方法有两种,一种是系统软件以库模块的形式与用户程序统一编译、链接,形成同一映像进行开发调试;另外一种构建方法是将系统软件先期开发并固化在系统中作为运行平台,应用软件通过软件中断(陷阱)的方式调用系统软件功能,并独立开发、编译、链接,独立固化运行,这两种方式各有利弊,详述如下。 第一种方式的优点是接口调用简单,应用程序对系统软件的功能接口调用无需增加额外的代码,占用空间小;缺点是当软件出现问题时,由于用户程序和系统软件交织在一起,不利于问题的排查和责任划分; 第二种方式的优点是系统软件以固件的方式固化到硬件中供应用软件调用,有利于软件知识产权的保护,方便问题排查;缺点是系统软件和应用软件均需要增加额外的代码处理陷阱调用,包括参数的传递、陷阱现场的保护、恢复等工作,增加了系统开销。
技术实现思路
本专利技术的目的在于提供,该方法在不增加系统开销的情况下实现了嵌入式软件与应用软件的隔离、调用,满足深嵌入式应用对高执行效率及低代码大小的要求。 为了达到上述目的,本专利技术基于代码隔离的嵌入式软件构建方法,包括如下步骤: I)将非易失存储器划分为用于固化引导、加载程序的第一个独立存储空间,用于固化系统软件的第二个独立存储空间以及用于固化应用程序的第三个独立存储空间; 2)将引导、加载程序固化到非易失存储器的第一个独立存储空间;将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间;且将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间之前或之后,从系统软件映像中抽取系统软件的符号及地址信息,形成系统数据类型定义文件,根据系统软件提供的功能接口及系统数据类型定义文件生成系统软件API接口文件; 3)将系统软件API接口文件拷贝到应用程序所在工程,并在应用程序源代码中包含系统软件API接口文件; 4)将应用程序映像的代码段、数据段固化到非易失存储器的第三个独立存储空间,完成嵌入式软件构建。 步骤2)中将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间之前,在操作系统中添加跳转到应用程序入口地址的代码。 所述的非易失存储器为NOR FLASH存储器、EEPROM存储器或EPROM PROM存储器。 所述的系统软件映像是通过对系统软件进行编译、链接生成的;应用程序映像是通过对应用程序进行编译、链接生成的。 所述的系统软件为嵌入式实时操作系统、中间件、提供用户使用的底层软件或驱动软件。 当系统软件为嵌入式实时操作系统时,从系统软件映像中抽取系统软件的符号及地址信息的工具采用read-elf工具。 所述的系统软件API接口文件为userApp.h。 所述的应用程序为多任务程序,应用程序映像的文件格式为elf格式、cofT格式或a.0ut格式。 一种嵌入式软件的调用方法,基于代码隔离的嵌入式软件构建方法构建的嵌入式软件,包括以下步骤: I)引导、加载程序分别加载系统软件和应用程序到RAM的不同地址空间,并跳转到系统软件入口执行; 2)系统软件启动后,应用程序通过系统软件API接口文件完成操作系统的功能调用并返回应用程序。 与现有技术相比,本专利技术的有益效果在于: 本专利技术将非易失存储器按需求划分为三个独立的存储空间,且第一个独立存储空间用于固化引导、加载程序,第二个独立存储空间用于固化系统软件,第三个独立存储空间用于固化应用程序,且根据系统软件提供的功能接口及系统数据类型定义文件生成系统软件API接口文件,通过该系统软件API接口文件及系统数据类型定义文件来建立应用软件与系统软件的调用关系,实现了系统软件与应用软件的独立开发、独立固化,适用多个应用软件之间、应用软件与同一系统模块间的隔离、调用,使得迭代式增量开发更加方便,系统软件和应用软件的配置管理更加方便,便于问题的排查,因此,本专利技术在不增加系统开销的情况下实现了嵌入式软件与应用软件的隔离、调用,满足深嵌入式应用对高执行效率及低代码大小的要求。 【附图说明】 图1为本专利技术应用程序调用系统软件功能接口执行并返回图; 图2为本专利技术采用NOR FLASH存储器的目标板上的一个实施例; 【具体实施方式】 下面结合附图对本专利技术做进一步详细说明。 参见图2,本专利技术基于代码隔离的嵌入式软件构建方法包括如下步骤: I)将非易失存储器划分为用于固化引导、加载程序的第一个独立存储空间,用于固化系统软件的第二个独立存储空间以及用于固化应用程序的第三个独立存储空间;非易失存储器为NOR FLASH存储器、EEPROM存储器或EPROM存储器或PROM存储器等; 2)将引导、加载程序固化到非易失存储器的第一个独立存储空间;将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间;且将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间之前或之后,从系统软件映像中抽取系统软件的符号及地址信息,形成系统数据类型定义文件,根据系统软件提供的功能接口及系统数据类型定义文件生成系统软件API接口文件;将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间之前,在操作系统中添加跳转到应用程序入口地址的代码;其中,系统软件映像是通过对系统软件进行编译、链接生成的; 3)将系统软件API接口文件拷贝到应用程序所在工程,并在应用程序源代码中包含系统软件API接口文件; 4)将应用程序映像的代码段、数据段固化到非易失存储器的第三个独立存储空间,完成嵌入式软件构建。应用程序映像是通过对应用程序进行编译、链接生成的,应用程序映像的文件格式为elf格式、coff格式或a.0ut格式 参见图1和2,本专利技术基于代码隔离的嵌入式软件构建方法构建的嵌入式软件,其调用方法为: I)引导、加载程序分别加载系统软件和应用程序到RAM的不同地址空间,并跳转到系统软件入口执行; 2)系统软件启动后,应用程序通过系统软件API接口文件完成操作系统的功能调用并返回应用程序。 进一步,本专利技术给出了基于代码隔离的嵌入式软件构建方法的具体实施例;其中系统软件为嵌入式实时操作系统,应用程序为多任务程序,非易失存储器采用NOR FLASH存储器。 I)应用程序需要操作系统的支持,系统上电后操作系统首先执行,然后跳转到应用程序执行,因此,在操作系统中添加跳转到应用程序入口地址的代码; 2)将非易失存储器划分为三个独立存储空间,第一个独立空间用于固化引导、力口载程序,第二个独立存储空间用于固化嵌入式实时操作系统,第三个独立储存空间用于固化应用程序; 3)固化引导、加载程序到第一个独立存储空间中; 4)编译、连接嵌入式实时操作系统生成嵌入式实时操作系统映像,将嵌入式实时操作系统映像的代码段、数据段固化到非易失存储器的第二个独立存储空间中; 5)使用read-elf工具获取嵌入式实时操作系统映像中功能接口符号及地址信息,形成系统数据类型定义文件; 6)根据嵌入式实时操作系统提供的功能接口及系统数据类型定义文件生成嵌入式实时操作系统API接口文件userApp.h ; 7)将嵌入式实时操作本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201410619253.html" title="一种基于代码隔离的嵌入式软件构建方法和调用方法原文来自X技术">基于代码隔离的嵌入式软件构建方法和调用方法</a>

【技术保护点】
一种基于代码隔离的嵌入式软件构建方法,其特征在于,包括如下步骤:1)将非易失存储器划分为用于固化引导、加载程序的第一个独立存储空间,用于固化系统软件的第二个独立存储空间以及用于固化应用程序的第三个独立存储空间;2)将引导、加载程序固化到非易失存储器的第一个独立存储空间;将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间;且将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间之前或之后,从系统软件映像中抽取系统软件的符号及地址信息,形成系统数据类型定义文件,根据系统软件提供的功能接口及系统数据类型定义文件生成系统软件API接口文件;3)将系统软件API接口文件拷贝到应用程序所在工程,并在应用程序源代码中包含系统软件API接口文件;4)将应用程序映像的代码段、数据段固化到非易失存储器的第三个独立存储空间,完成嵌入式软件构建。

【技术特征摘要】
1.一种基于代码隔离的嵌入式软件构建方法,其特征在于,包括如下步骤: 1)将非易失存储器划分为用于固化引导、加载程序的第一个独立存储空间,用于固化系统软件的第二个独立存储空间以及用于固化应用程序的第三个独立存储空间; 2)将引导、加载程序固化到非易失存储器的第一个独立存储空间;将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间;且将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间之前或之后,从系统软件映像中抽取系统软件的符号及地址信息,形成系统数据类型定义文件,根据系统软件提供的功能接口及系统数据类型定义文件生成系统软件API接口文件; 3)将系统软件API接口文件拷贝到应用程序所在工程,并在应用程序源代码中包含系统软件API接口文件; 4)将应用程序映像的代码段、数据段固化到非易失存储器的第三个独立存储空间,完成嵌入式软件构建。2.根据权利要求1所述的基于代码隔离的嵌入式软件构建方法,其特征在于:步骤2)中将系统软件映像的代码段、数据段固化到非易失存储器的第二个独立存储空间之前,在操作系统中添加跳转到应用程序入口地址的代码。3.根据权利要求1所述的基于代码隔离的嵌入式软件构建方法,其特征在于:所述的非易失存储器为NOR FLASH存储器、EEPROM存储器或EPROM存储器或P...

【专利技术属性】
技术研发人员:褚哲韩源冬焦淼袁成军罗荣海
申请(专利权)人:中国航天科技集团公司第九研究院第七七一研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1