CN102023867B - 一种终端二次开发装置及二次开发平台构建方法 - Google Patents
一种终端二次开发装置及二次开发平台构建方法 Download PDFInfo
- Publication number
- CN102023867B CN102023867B CN201010593919.8A CN201010593919A CN102023867B CN 102023867 B CN102023867 B CN 102023867B CN 201010593919 A CN201010593919 A CN 201010593919A CN 102023867 B CN102023867 B CN 102023867B
- Authority
- CN
- China
- Prior art keywords
- platform
- software
- development
- industry applications
- development interface
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提出一种二次开发平台构建方法和二次终端开发方法,所述方法包括:将平台软件与行业应用软件进行分离;平台软件被编译成平台可执行映像,并预先下载到通讯模组硬件中;平台软件根据外部指令决定是否加载行业应用程序可执行映像,如果要加载,则跳转至行业应用程序映像入口地址执行;二次开发平台提供二次开发软件包,软件包中包含二次开发接口,完成行业应用程序对二次开发接口的调用;平台软件负责二次开发接口的功能实现。与现有技术相比,采用本发明所述的技术方案,可以提高行业应用终端二次开发效率,并且可以分别实现平台软件和行业应用软件的独立升级,便于维护。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种终端二次开发装置及二次开发平台构建方法。
背景技术
物联网是在计算机互联网的基础上,融合无线数据通信等技术,构造一个覆盖世界万物的网络,从而实现物品间的信息互联与共享。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处存储的指针数组api_array,通过访问其中的二次开发接口函数指针来调用此二次开发接口。
通讯模组硬件用于信息的传递和通讯。
平台软件中和二次开发包的软件都有二次开发接口的实现,用于实现映像分离后的接口调用。
请参考图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:二次开发函数执行完毕后,返回到行业应用程序继续运行。
综上所述,本发明实施例提供了一种支持行业应用软件与平台软件分离的终端二次开发平台,行业应用软件在编译时,仅需要链接二次开发接口库,而不需要与平台软件一起链接,提高了行业应用软件的开发效率,并且支持行业应用和平台软件的独立升级。
以上所描述的仅为本发明较佳实例,当然不能以此来限定本发明的权利范围,因此,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员都可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应当属于本发明所附的权利要求的保护范围。
Claims (4)
1.一种二次开发平台构建方法,其包括:
将平台软件与行业应用软件进行分离;
平台软件被编译成平台可执行映像,并预先下载到通讯模组硬件中;
平台软件实现二次开发接口功能,在编译链接时二次开发接口函数的函数指针固定在一个确定的内存地址上,并为行业应用程序映像的加载和执行预留内存空间;
平台软件根据外部指令决定是否加载行业应用程序可执行映像,如果要加载,则跳转至行业应用程序映像入口地址执行;
二次开发平台提供二次开发软件包,二次开发软件包中包含二次开发接口库,完成行业应用程序对二次开发接口的调用,所述二次开发软件包用于开发行业应用软件,行业应用软件与二次开发接口库通过编译链接脚本构建,生成行业应用程序可执行映像,所述行业应用可执行映像与平台可执行映像的二次开发接口间建立对应关系,完成二次开发接口的调用;
平台软件负责二次开发接口的功能实现。
2.如权利要求1所述的方法,其特征在于,所述二次开发软件包中的二次开发接口通过跳转访问平台软件加载空间中确定地址上的二次开发接口函数指针,完成二次开发接口的调用。
3.如权利要求1所述的方法,其特征在于,所述行业应用程序可执行映像的加载包括:
平台可执行映像加载到内存中运行;
平台程序完成平台自身相关初始化,包括硬件初始化、协议栈初始化;
平台代码开始运行,并等待加载行业应用程序的指令;
平台程序收到有效加载行业应用程序的指令,将行业应用程序映像加载至内存,并跳转到行业应用可执行映像入口地址;
执行行业应用程序,行业应用软件开始运行。
4.如权利要求1所述的方法,其特征在于,所述行业应用程序与平台软件的二次开发接口的调用交互包括:
行业应用程序运行;
行业应用程序调用二次开发接口;
行业应用程序的二次开发接口进行地址跳转访问平台软件中的二次开发接口;
平台软件执行二次开发接口函数;
平台软件二次开发函数执行完毕后,返回到行业应用程序继续运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010593919.8A CN102023867B (zh) | 2010-12-17 | 2010-12-17 | 一种终端二次开发装置及二次开发平台构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010593919.8A CN102023867B (zh) | 2010-12-17 | 2010-12-17 | 一种终端二次开发装置及二次开发平台构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102023867A CN102023867A (zh) | 2011-04-20 |
CN102023867B true CN102023867B (zh) | 2015-10-21 |
Family
ID=43865189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010593919.8A Active CN102023867B (zh) | 2010-12-17 | 2010-12-17 | 一种终端二次开发装置及二次开发平台构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102023867B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577172A (zh) * | 2012-07-30 | 2014-02-12 | 无锡梵天信息技术股份有限公司 | 一种图形处理引擎*** |
CN103500097A (zh) * | 2013-09-27 | 2014-01-08 | 北京航天金盾科技有限公司 | 一种用于二次开发平台的开发方法 |
CN103617044B (zh) * | 2013-12-10 | 2017-02-15 | 北京市计算中心 | 一种二次开发程序执行的控制方法 |
CN105938337B (zh) * | 2016-01-18 | 2020-04-17 | 中山市巨创电子科技有限公司 | 微电脑控制器二次开发云平台与使用方法 |
CN107357605A (zh) * | 2017-06-01 | 2017-11-17 | 北京趣拿软件科技有限公司 | 运行安装文件的方法和装置 |
CN108804085B (zh) * | 2018-06-04 | 2021-11-05 | 厦门夏新移动通讯有限公司 | 一种低成本高集成可编程移动扫码***及其生成方法 |
CN111488139B (zh) * | 2019-01-25 | 2023-01-31 | 成都鼎桥通信技术有限公司 | 一种基于专网终端的集群业务二次开发方法 |
CN111209008A (zh) * | 2020-04-17 | 2020-05-29 | 北京全路通信信号研究设计院集团有限公司 | 软件的分离设计方法及*** |
CN114461187A (zh) * | 2021-12-29 | 2022-05-10 | 深圳市正运动技术有限公司 | 运动控制器的编程方法、***、终端设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329627A (zh) * | 2008-07-29 | 2008-12-24 | 上海众恒信息产业有限公司 | 基于数据模型的二次开发平台 |
CN101582029A (zh) * | 2009-06-05 | 2009-11-18 | 中兴通讯股份有限公司 | 一种实现嵌入式应用的***和方法 |
CN101840338A (zh) * | 2010-06-11 | 2010-09-22 | 中兴通讯股份有限公司 | 一种m2m终端及其二次开发平台的实现方法 |
-
2010
- 2010-12-17 CN CN201010593919.8A patent/CN102023867B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329627A (zh) * | 2008-07-29 | 2008-12-24 | 上海众恒信息产业有限公司 | 基于数据模型的二次开发平台 |
CN101582029A (zh) * | 2009-06-05 | 2009-11-18 | 中兴通讯股份有限公司 | 一种实现嵌入式应用的***和方法 |
CN101840338A (zh) * | 2010-06-11 | 2010-09-22 | 中兴通讯股份有限公司 | 一种m2m终端及其二次开发平台的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102023867A (zh) | 2011-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023867B (zh) | 一种终端二次开发装置及二次开发平台构建方法 | |
KR101882426B1 (ko) | 소프트웨어 업데이트 방법, 시스템, 및 디바이스 | |
CN105100191B (zh) | 一种云编译实现Java应用安装的方法、装置及*** | |
CN105718287B (zh) | 一种智能终端的程序流式执行方法 | |
CN111045714B (zh) | 一种固件更新方法、装置、耳机及计算机可读存储介质 | |
US9710288B2 (en) | Method and device for loading application program | |
CN107769949A (zh) | 一种应用组件部署方法及部署节点 | |
CN103595867B (zh) | 基于多卡识别的应用程序实现方法及装置 | |
CN109933381B (zh) | 一种内核的加载方法及装置 | |
CN102830989B (zh) | 阅读器提供服务的方法、阅读器及终端 | |
CN102681893B (zh) | 可执行程序的跨平台实现方法及移动终端 | |
CN101937356A (zh) | 一种编译WebKit浏览器的方法及装置 | |
CN101706725A (zh) | 一种可重定位程序的加载及调试方法及*** | |
CN101931603A (zh) | 一种在手持智能终端上实现远程调用的方法 | |
CN103177104A (zh) | 一种应用程序搜索方法及装置 | |
CN103716346A (zh) | 一种安卓手机客户端上应用的管理方法和装置 | |
CN104572054A (zh) | 一种能力调用方法和设备 | |
CN103377079A (zh) | 终端及其应用运行装置和方法,运行应用程序的方法 | |
CN106201588A (zh) | 终端的软件升级方法和终端 | |
CN102404149A (zh) | 一种业务特性的管理***和方法 | |
CN100441012C (zh) | 一种更新移动终端用户界面的方法 | |
CN104793998B (zh) | 终端***资源管理方法及装置 | |
CN113791870B (zh) | 一种WebAssembly虚拟机分布式***细粒度迁移方法及*** | |
CN107562499A (zh) | 应用加载的方法、装置和计算机可读存储介质 | |
CN102591684A (zh) | 一种软件更新方法 |
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 |