一种终端二次开发装置及二次开发平台构建方法

文档序号:6339060阅读:360来源:国知局
专利名称:一种终端二次开发装置及二次开发平台构建方法
技术领域
本发明涉及通信技术领域,尤其涉及一种终端二次开发装置及二次开发平台构 建方法。
背景技术
物联网是在计算机互联网的基础上,融合无线数据通信等技术,构造一个覆盖 世界万物的网络,从而实现物品间的信息互联与共享。M2M(machineto machine)是机器 之间建立连接的所有技术和手段,随着移动通信技术的发展,M2M相关业务和产品成爆 发式增长,已经渗入到国民经济的各个方面,在环境监测、智能家居、智能电网、自动 抄表等行业已有应用,正在推动着社会生产和生活方式新一轮的变革。
M2M终端在现阶段主要形态为以无线通信方式接入移动运营商的网络,最终实 现与行业应用管理服务平台的通信。M2M终端一种主流的开发方式是在无线通讯模组已 有软硬件功能的基础上,利用平台软件提供的二次开发接口进行二次开发,现有二次开 发平台大多采用行业应用和平台代码耦合在一起。这样导致行业应用软件开发时编译效 率较低,并且行业应用软件和平台软件最终生成一个整体的可执行映像文件,不能够实 现平台和行业应用独立升级,不利于终端的性能维护。发明内容
为实现上述目的,本发明提出一种终端二次开发方法及装置,可以提高行业应 用终端二次开发效率。
一种二次开发平台构建方法,其包括
将平台软件与行业应用软件进行分离;
平台软件被编译成平台可执行映像,并预先下载到通讯模组硬件中;
平台软件根据外部指令决定是否加载行业应用程序可执行映像,如果要加载, 则跳转至行业应用程序映像入口地址执行;
二次开发平台提供二次开发软件包,软件包中包含二次开发接口,完成行业应 用程序对二次开发接口的调用;
平台软件负责二次开发接口的功能实现。
进一步地,在平台软件根据外部指令决定是否加载行业应用程序可执行映像之 前,平台软件实现二次开发接口功能,在编译链接时二次开发接口函数的函数指针固定 在一个确定的内存地址上,并为行业应用程序映像的加载和执行预留内存空间。
进一步地,所述二次开发软件包中的二次开发接口通过跳转访问平台软件加载 空间中确定地址上的二次开发接口函数指针,完成二次开发接口的调用。
进一步地,所述行业应用程序可执行映像的加载包括
平台可执行映像加载到内存中运行;
平台程序完成平台自身相关初始化,包括硬件初始化、协议栈初始化;
平台代码开始运行,并等待加载行业应用程序的指令;
平台程序收到有效加载行业应用程序的指令,将行业应用程序映像加载至内 存,并跳转到行业应用可执行映像入口地址;
执行行业应用程序,行业应用软件开始运行。
进一步地,所述行业应用程序与平台软件的二次开发接口的调用交互包括
行业应用程序运行;
行业应用程序调用二次开发接口 ;
行业应用程序的二次开发接口进行地址跳转访问平台软件中的二次开发接口 ;
平台软件执行二次开发接口函数;
平台软件二次开发函数执行完毕后,返回到行业应用程序继续运行。
一种终端二次开发装置,其特征在于,所述二次开发装置包括二次开发平台, 所述二次开发平台包括平台软件、二次开发软件包;
所述二次开发平台提供二次开发接口 ;
所述平台软件根据外部指令决定是否加载行业应用软件可执行映像,如果加 载,则加载后并跳转至行业应用程序映像入口地址执行;
平台软件被编译成平台可执行映像,并预先下载到通讯模组硬件中;
所述二次开发软件包为用户提供二次开发接口,以便用户开发行业应用软件。
进一步地,所述平台软件和行业应用软件分别独立编译链接生成两个独立的可 执行映像文件。
进一步地,所述二次开发软件包用于开发行业应用软件,行业应用软件与二次 开发接口库通过编译链接脚本构建,生成独立的行业应用可执行映像文件。
进一步地,在平台软件根据外部指令决定是否加载行业应用程序可执行映像之 前,平台软件实现二次开发接口功能,在编译链接时二次开发接口函数的函数指针固定 在一个确定的内存地址上,并为行业应用程序映像的加载和执行预留内存空间。
进一步地,所述二次开发软件包中的二次开发接口通过跳转访问平台软件加载 空间中确定地址上的二次开发接口函数指针,完成二次开发接口的调用。
本发明的有益效果是与现有技术相比,采用本发明所述的技术方案,可以 提高行业应用终端二次开发效率,并且可以分别实现平台软件和行业应用软件的独立升 级,便于维护。


图1是传统二次开发平台行业应用和平台软件架构示意图2是本发明实施例终端二次开发装置组成示意图3是本发明实施例终端二次开发方法中平台构建流程示意图4是本发明实施例终端二次开发方法中的行业应用程序的加载执行流程示意 图5是本发明实施例终端二次开发方法中,行业应用程序运行后,行业应用与 平台软件的二次开发接口的交互过程示意图。
具体实施方式
本发明的主要思想是将平台软件与行业应用软件进行分离;平台软件被编译 成平台可执行映像,并预先下载到通讯模组硬件中;平台软件根据外部指令决定是否加 载行业应用程序可执行映像,如果要加载,则跳转至行业应用程序映像入口地址执行; 二次开发平台提供二次开发软件包,软件包中包含二次开发接口,完成行业应用程序对 二次开发接口的调用;平台软件负责二次开发接口的功能实现。
下面结合附图和具体实施例对本发明技术方案做详细描述。
如图1所示,是传统二次开发平台行业应用和平台软件架构示意图,传统二次 开发平台行业应用和平台软件是紧密耦合在一起的,行业应用程序无法独立升级,构建 时需要与平台软件一起编译链接,耗时长,效率低。本发明所述二次开发平台将行业应 用和平台软件分离,生成两个独立的可执行映像,并通过二次开发接口将行业应用软件 和平台软件连接。
请参考图2所示,是本发明实施例终端二次开发装置组成示意图,其包括二次 开发平台,所述二次开发平台包括二次开发平台软件、二次开发软件包、通讯模组硬 件和二次开发说明文档。
平台软件和行业应用软件分别独立编译链接生成两个独立的可执行映像文件。 平台可执行映像文件被预先烧录到通讯模组中。完成M2M终端的基本硬件初始化、协议 栈初始化等,为行业应用提供包括短信、语音、数据传输和定制的其他通讯协议等基本 业务能力的二次开发接口,并负责接收加载指令,进行行业应用可执行映像的加载。
平台软件被平台提供商或其他编译者编译成平台可执行映像,并预先下载到通 讯模组硬件中。
平台软件将不用对行业应用开放。平台软件编译后生成的平台可执行映像文件 被预先烧录到通讯模组中,在没有行业应用固件的情况下,通讯模组中的固件仍然可以 正常独立运行,具有普通通讯功能,支持AT命令和基本电信业务。
二次开发软件包用于开发行业应用软件,行业应用软件与二次开发接口库通过 编译链接脚本构建,生成独立的行业应用可执行映像文件。二次开发软件包中包括二次 开发接口库、函数头文件、编译链接脚本模块,用户使用此开发包开发出特定的行业应 用程序。行业应用开发商使用二次开发软件包开发,将编译好的行业应用可执行映像文 件通过烧录工具烧写到通讯模组中后,该通讯模组就成为具有特定行业应用功能的M2M 终端。终端后续的版本升级可以通过网络将行业应用映像文件下载到终端的文件系统中 或者非易失性存储器中保存,重新加载即可。
特别的,平台软件在进行编译链接时,需要通过修改分散加载描述文件,为行 业应用软件的加载运行预留下一块专用的内存区域。
本实施例中,终端程序运行内存空间地址为0x2000 0000 0x23FF FF00,其中 平台软件预留0x2150 0000 0x2170 0000这段内存空间给行业应用程序使用。行业应用 映像程序在编译链接时,载入地址为0x2150 0000,入口地址为0x2150 0000。
由于行业应用可执行映像与平台可执行映像分离,需要在两个可执行映像的二 次开发接口间建立对应关系,完成实际的接口调用。本发明所述二次开发平台,平台软 件中和二次开发包的软件都有二次开发接口的实现。
其中,平台软件实现二次开发接口具体功能。
特别的,平台软件需要将二次开发接口的函数指针在内存中的地址固定。
优选的,本实施例在平台软件中定义一个数组api_array,将二次开发接口函数 指针按照一定的次序存放在此数组中,通过修改分散加载文件,将此数组的加载地址固 定在内存地址0x20750000上。
二次开发包中,二次开发接口的实现是函数指针跳转,跳转至内存地址 0x20750000处存储的指针数组apijrray,通过访问其中的二次开发接口函数指针来调用 此二次开发接口。
通讯模组硬件用于信息的传递和通讯。
平台软件中和二次开发包的软件都有二次开发接口的实现,用于实现映像分离 后的接口调用。
请参考图3所示,是本发明实施例终端二次开发方法中平台的构建流程示意 图,其包括
S301 二次开发平台提供一套二次开发接口 ;
S302 平台软件实现二次开发接口功能;
在编译链接时二次开发接口函数的函数指针固定在一个确定的内存地址上,并 为行业应用程序映像的加载和执行预留内存空间。
S303平台软件根据外部指令决定是否加载行业应用程序可执行映像,并跳转 至应用程序映像入口地址执行;
S304平台软件代码独立编译成平台可执行映像,并预先下载到通讯模组硬件 中;
S305 二次开发平台提供一个二次开发软件包,完成真正的二次开发接口的调用。
二次开发软件包中的二次开发接口通过跳转访问平台软件加载空间中确定地址 上的二次开发接口函数指针,完成真正的二次开发接口的调用。
请参考图4所示,是本发明实施例终端二次开发方法中的行业应用程序的加载 执行流程示意图,其包括
S401:终端上电;
S402 平台可执行映像加载到内存中运行;
S403平台程序完成平台自身相关初始化,包括硬件初始化、协议栈初始化 等;
S404 平台代码开始运行,并等待加载行业应用程序的指令;
该控制指令可以通过短信息、语音电话、本地AT命令等多种途径下发给通讯终 端;
S405 判断是否加载行业应用程序,如果是,则转入步骤S406,如果不是,则 转入步骤S404。
平台程序收到加载行业应用程序的指令,进行判断,如果该指令不是有效指 令,则退回到步骤S404;如果该指令有效,则进行步骤S406;
S406将行业应用程序映像加载至内存,并跳转到行业应用可执行映像入口地址;
将存储在文件系统中的行业应用可执行映像加载到预留的内存空间0x2150 0000 X2170 0000中,然后跳转到该内存地址0x2150 0000,即行业应用可执行映像的程 序入口地址去运行。
S407 执行行业应用程序,行业应用软件开始运行。
参考图5所示,是本发明实施例终端二次开发方法中,行业应用程序运行后, 行业应用与平台软件的二次开发接口的交互过程示意图,其包括
S501 行业应用程序运行用户代码;
S502 用户程序调用二次开发接口 ;
S503 用户程序侧的二次开发接口进行地址跳转访问;
访问内存0x20750000处存储的指针数组api_array,调用对应的函数指针,完成对平台软件二次开发接口函数的调用;
S504平台侧软件执行二次开发接口函数;
S505 二次开发函数执行完毕后,返回到行业应用程序继续运行。
综上所述,本发明实施例提供了一种支持行业应用软件与平台软件分离的终端 二次开发平台,行业应用软件在编译时,仅需要链接二次开发接口库,而不需要与平台 软件一起链接,提高了行业应用软件的开发效率,并且支持行业应用和平台软件的独立 升级。
以上所描述的仅为本发明较佳实例,当然不能以此来限定本发明的权利范围, 因此,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员都可根据本发明 做出各种相应的改变和变形,但这些相应的改变和变形都应当属于本发明所附的权利要 求的保护范围。
权利要求
1.一种二次开发平台构建方法,其包括 将平台软件与行业应用软件进行分离;平台软件被编译成平台可执行映像,并预先下载到通讯模组硬件中; 平台软件根据外部指令决定是否加载行业应用程序可执行映像,如果要加载,则跳 转至行业应用程序映像入口地址执行;二次开发平台提供二次开发软件包,软件包中包含二次开发接口,完成行业应用程 序对二次开发接口的调用;平台软件负责二次开发接口的功能实现。
2.如权利要求1所述的方法,其特征在于,在平台软件根据外部指令决定是否加载行 业应用程序可执行映像之前,平台软件实现二次开发接口功能,在编译链接时二次开发 接口函数的函数指针固定在一个确定的内存地址上,并为行业应用程序映像的加载和执 行预留内存空间。
3.如权利要求1所述的方法,其特征在于,所述二次开发软件包中的二次开发接口通 过跳转访问平台软件加载空间中确定地址上的二次开发接口函数指针,完成二次开发接 口的调用。
4.如权利要求1所述的方法,其特征在于,所述行业应用程序可执行映像的加载包括平台可执行映像加载到内存中运行;平台程序完成平台自身相关初始化,包括硬件初始化、协议栈初始化; 平台代码开始运行,并等待加载行业应用程序的指令;平台程序收到有效加载行业应用程序的指令,将行业应用程序映像加载至内存,并 跳转到行业应用可执行映像入口地址;执行行业应用程序,行业应用软件开始运行。
5.如权利要求1所述的方法,其特征在于,所述行业应用程序与平台软件的二次开发 接口的调用交互包括行业应用程序运行;行业应用程序调用二次开发接口;行业应用程序的二次开发接口进行地址跳转访问平台软件中的二次开发接口; 平台软件执行二次开发接口函数;平台软件二次开发函数执行完毕后,返回到行业应用程序继续运行。
6.—种终端二次开发装置,其特征在于,所述二次开发装置包括二次开发平台,所 述二次开发平台包括平台软件、二次开发软件包;所述二次开发平台提供二次开发接口;所述平台软件根据外部指令决定是否加载行业应用软件可执行映像,如果加载,则 加载后并跳转至行业应用程序映像入口地址执行;平台软件被编译成平台可执行映像,并预先下载到通讯模组硬件中; 所述二次开发软件包为用户提供二次开发接口,以便用户开发行业应用软件。
7.如权利要求6所述的装置,其特征在于,所述平台软件和行业应用软件分别独立编 译链接生成两个独立的可执行映像文件。
8.如权利要求6所述的装置,其特征在于,所述二次开发软件包用于开发行业应用软 件,行业应用软件与二次开发接口库通过编译链接脚本构建,生成独立的行业应用可执 行映像文件。
9.如权利要求6所述的装置,其特征在于,在平台软件根据外部指令决定是否加载行 业应用程序可执行映像之前,平台软件实现二次开发接口功能,在编译链接时二次开发 接口函数的函数指针固定在一个确定的内存地址上,并为行业应用程序映像的加载和执 行预留内存空间。
10.如权利要求6所述的装置,其特征在于,所述二次开发软件包中的二次开发接口 通过跳转访问平台软件加载空间中确定地址上的二次开发接口函数指针,完成二次开发 接口的调用。
全文摘要
本发明提出一种二次开发平台构建方法和二次终端开发方法,所述方法包括将平台软件与行业应用软件进行分离;平台软件被编译成平台可执行映像,并预先下载到通讯模组硬件中;平台软件根据外部指令决定是否加载行业应用程序可执行映像,如果要加载,则跳转至行业应用程序映像入口地址执行;二次开发平台提供二次开发软件包,软件包中包含二次开发接口,完成行业应用程序对二次开发接口的调用;平台软件负责二次开发接口的功能实现。与现有技术相比,采用本发明所述的技术方案,可以提高行业应用终端二次开发效率,并且可以分别实现平台软件和行业应用软件的独立升级,便于维护。
文档编号G06F9/44GK102023867SQ201010593919
公开日2011年4月20日 申请日期2010年12月17日 优先权日2010年12月17日
发明者彭涛 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1