CN111124446A - 一种用于自动更新下位机的sdk制作方法 - Google Patents
一种用于自动更新下位机的sdk制作方法 Download PDFInfo
- Publication number
- CN111124446A CN111124446A CN201811298270.XA CN201811298270A CN111124446A CN 111124446 A CN111124446 A CN 111124446A CN 201811298270 A CN201811298270 A CN 201811298270A CN 111124446 A CN111124446 A CN 111124446A
- Authority
- CN
- China
- Prior art keywords
- lower computer
- sdk
- automatically updating
- application program
- updating
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种用于自动更新下位机的SDK制作方法,其特征在于,包括:取出应用程序二进制码的内容;将所述应用程序二进制码转化成ASCII值,并存储为静态数组;将所述静态数组编译进SDK的动态链接库。本发明还提供一种自动更新下位机的方法,包括:判断所述应用程序是否正确;如果所述应用程序正确,则运行所述应用程序,并且向上述方法生成的SDK发送所述下位机特征;等待所述SDK更新指令;自动更新下位机。本发明的用于自动更新下位机的SDK制作方法和自动更新下位机的方法,能够实现定位模块下位机的无感知更新,从而解决了现有技术中更新需要用户主动参与、用户体验差、效率太低容易出错等问题。
Description
技术领域
本发明涉及一种更新下位机系统的方法,尤其涉及一种用于自动更新定位模块下位机的SDK制作方法。
背景技术
高精度定位解决方案通常由定位芯片与上位机SDK组成。芯片内部是卫星定位、惯导和单片机系统,也既是下位机系统。下位机系统通常由bootloader与application程序组成,bootloader负责启动、校验、加载以及更新application(应用程序)工作,application负责读取卫星定位与惯导数据,并且组帧,然后通过特定的start code(起始码)上传给上位机SDK。
现有技术中更新下位机系统的流程都是芯片或者模块厂家定期发布FW(Firmware)版本,并通知用户,然后用户通过集成的SDK去选择某个FW文件,然后在执行更新流程。这过程中往往会产生FW与硬件类型不匹配、版本不对、不同版本的Firmware的功能不一致带来的管理混乱,用户体验差;尤其对于出厂的芯片系统来说,某一次更新往往仅仅修正了一两个bug,或者仅增加了一两个新特性,用户往往会懒得去触发更新,即使采用OTA(Over the Air Technology,空中下载技术)方式也是如此,这又导致出现更新了SDK但下位机系统没更新带来的其他问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种用于自动更新下位机的SDK制作方法,用于解决现有技术中更新需要用户主动参与、用户体验差的问题。
为实现上述目的及其他相关目的,本发明提供一种用于自动更新下位机的SDK制作方法,其特征在于,包括:取出应用程序二进制码的内容;将所述应用程序二进制码转化成ASCII值,并存储为静态数组;将所述静态数组编译进SDK的动态链接库。
优选地,上述用于自动更新下位机的SDK制作方法中,应用程序包括头信息和程序体。
优选地,上述用于自动更新下位机的SDK制作方法中,所述头信息记录所述程序体的特征信息,所述特征信息包括所述程序体适用的硬件模块、应用程序软件版本号、应用程序的大小、编译时间以及还有CRC中的一种或几种。
本发明还提供一种自动更新下位机的方法,包括:判断所述应用程序是否正确;如果所述应用程序正确,则运行所述应用程序,并且向上述方法生成的SDK发送所述下位机特征;等待所述SDK更新指令;自动更新下位机。
优选地,上述自动更新下位机的方法,下位机特征包括所述下位机的硬件类型,应用程序软件版本号。
优选地,上述自动更新下位机的方法,等待所述SDK更新指令的步骤中,如果所述下位机硬件类型一致并且软件版本号不同,则所述SDK更新指令为需要更新。
优选地,上述自动更新下位机的方法,如果所述应用程序不正确,则运行bootloader并等待上位机的下载指令。
优选地,上述自动更新下位机的方法,所述自动更新下位机的步骤包括:接受更新指令,如果当前在运行应用程序状态,则重启所述下位机进入bootloader状态,并返回正确的ACK,下位机进入下载阶段。
优选地,上述自动更新下位机的方法,所述下位机通过ymodem协议下载应用程序。
优选地,上述自动更新下位机的方法,还包括判断下载是否成功的步骤,所述判断方法为:计算所下载应用程序的校验码,并将所述计算得到的检验码与所述应用程序中头信息里的校验码进行比较,如果一致则发送下载成功的应答。
如上所述,本发明的一种用于自动更新下位机的SDK制作方法和自动更新下位机的方法,能够实现定位模块下位机的无感知更新,从而解决了现有技术中更新需要用户主动参与、用户体验差、效率太低容易出错等问题,因此具有极高的产业应用价值。
附图说明
图1为本发明用于自动更新下位机的SDK制作方法的流程图;
图2为利用本发明SDK制作方法生成的SDK实现定位模块下位机无感知自动更新的流
程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
请参阅附图。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
图1所示为本发明的一种实施方式的流程图。由于需要用于下位机的系统自动更新,本发明中的SDK与现有技术的SDK相比,最主要区别在于其中的.so库文件的实现方式,需要在现有技术的SDK接口之外实现无感知的更新方式,具体处理方式如下:
步骤S11表示将应用程序二进制码(application binary)的内容取出。其中,应用程序包括header(头信息)和body(程序体),body是实际运行的应用程序的代码部分,而header记录当前应用程序也就是body所适用的硬件模块、应用程序软件版本号、应用程序的大小、编译时间以及还有CRC(Cyclic Redundancy Check,循环冗余校验)校验码等信息,记录的具体内容可以依据应用的不同而调整,但所包括的信息应当足以用于识别、判断应用程序是否有必要进行更新。取出应用应用程序二进制代码可以使用bash/python脚本,程序用二进制形式读出,并转成文本字符串形式,比如二进制0x55,在程序binary中占一个字节,读出这个字节,转化成ASCII字符串形式需要四个字节,依次是’0’、’x’、’5’、’5’。可以先写0和x,0x55转换成十进制是85,85除以16是5,余数也是5,然后转化为ASCII字符串形式就是四个字节,分别是0、x、5、5。其余内容以此类推。
步骤S12表示将上述应用程序二进制码转化成ASCII值,并存储为静态数组。
步骤S13表示将上述数组编译进SDK的动态链接库(本例中为.so文件)。由于下位机系统的application通常也就几十K的大小,被编译进了数组的.so文件与现有技术中的.so文件相比,文件大小的变化可以忽略不计。
利用上述方式生成的SDK,即可实现下位机的无感知自动更新,以下参考图2对具体的更新操作进行说明。
步骤S21,上电下位机系统,启动SDK。
步骤S22,判断识别应用程序是否正确,如果正确,则进入步骤S23;否则进入步骤S23’。应用程序自身都带校验值,例如MD5或CRC,通过读出应用程序内容并计算其MD5或者CRC,然后与程序末尾的MD5或者CRC比较,则可以判断应用程序是否正确。
步骤S23,应用程序正确的情况下,下位机运行application并等待上位机的重启指令。
步骤S23’,运行bootloader并等待上位机的下载指令。应用程序状态不正常的情况,该状态意味着下位机需要更新应用程序。
步骤S24,下位机向SDK发送下位机特征信息,例如硬件类型及软件版本号、状态(运行在bootloader还是application状态)等信息,SDK可以使用这些信息与包含在.so文件中application的header相比较,从而判断是否需要更新。步骤S24与步骤S23并没有依赖关系,换言之,步骤S23、步骤S24的执行可以任何一个在先,也可以同时执行。
步骤S25,等待SDK的更新指令:如果硬件类型一致并且软件版本号不同,则需要更新,执行步骤S26。
步骤S26,下位机的自动更新步骤,具体通过下述方式实现:
步骤S261:下位机接受更新指令,如果当前在运行应用程序状态,则下位机重启进入bootloader状态,并返回正确的ACK,下位机进入下载阶段。
步骤S262:下位机通过特定的协议(比如ymodem)下载应用程序。下载可以通过多种途径,本例中使用串口实现。
步骤S263,判断下载是否成功。本例中,经过下位机计算校验码,与应用程序中头信息里的校验码进行比较,如果一致表示下载成功,并返回给上位机下载成功的ACK。
最后,接收SDK指令,跳转到应用程序。SDK在接受到下载成功的ACK后发送跳转命令通知下位机跳转至应用程序,整个流程完毕。
综上所述,使用本发明方法对现有技术中SDK进行改造后,能够实现定位模块下位机的无感知更新,从而解决了现有技术中更新需要用户主动参与、用户体验差、效率太低容易出错等问题。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种用于自动更新下位机的SDK制作方法,其特征在于,包括:
取出应用程序二进制码的内容;
将所述应用程序二进制码转化成ASCII值,并存储为静态数组;
将所述静态数组编译进SDK的动态链接库。
2.根据权利要求1所述的用于自动更新下位机的SDK制作方法,其特征在于,所述应用程序包括头信息和程序体。
3.根据权利要求2所述的用于自动更新下位机的SDK制作方法,其特征在于,所述头信息记录所述程序体的特征信息,所述特征信息包括所述程序体适用的硬件模块、应用程序软件版本号、应用程序的大小、编译时间以及还有CRC中的一种或几种。
4.一种自动更新下位机的方法,其特征在于,包括:
判断所述应用程序是否正确;
如果所述应用程序正确,则运行所述应用程序,并且向权利要求1~3中任何一项生成的SDK发送所述下位机特征;
等待所述SDK更新指令;
自动更新下位机。
5.根据权利要求4所述的自动更新下位机的方法,其特征在于,所述下位机特征包括所述下位机的硬件类型,应用程序软件版本号。
6.根据权利要求5所述的自动更新下位机的方法,其特征在于,等待所述SDK更新指令的步骤中,如果所述下位机硬件类型一致并且软件版本号不同,则所述SDK更新指令为需要更新。
7.根据权利要求4所述的自动更新下位机的方法,其特征在于,如果所述应用程序不正确,则运行bootloader并等待上位机的下载指令。
8.根据权利要求4所述的自动更新下位机的方法,其特征在于,所述自动更新下位机的步骤包括:
接受更新指令,如果当前在运行应用程序状态,则重启所述下位机进入bootloader状态,并返回正确的ACK,下位机进入下载阶段。
9.根据权利要求8所述的自动更新下位机的方法,其特征在于,所述下位机通过ymodem协议下载应用程序。
10.根据权利要求9所述的自动更新下位机的方法,其特征在于,还包括判断下载是否成功的步骤,所述判断方法为:计算所下载应用程序的校验码,并将所述计算得到的检验码与所述应用程序中头信息里的校验码进行比较,如果一致则发送下载成功的应答。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811298270.XA CN111124446A (zh) | 2018-11-01 | 2018-11-01 | 一种用于自动更新下位机的sdk制作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811298270.XA CN111124446A (zh) | 2018-11-01 | 2018-11-01 | 一种用于自动更新下位机的sdk制作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111124446A true CN111124446A (zh) | 2020-05-08 |
Family
ID=70494993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811298270.XA Pending CN111124446A (zh) | 2018-11-01 | 2018-11-01 | 一种用于自动更新下位机的sdk制作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124446A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行系统及方法 |
CN103491111A (zh) * | 2012-06-08 | 2014-01-01 | 阿里巴巴集团控股有限公司 | 无线应用发布、实现方法与装置 |
CN104820609A (zh) * | 2015-04-27 | 2015-08-05 | 北京世纪东方国铁科技股份有限公司 | 一种嵌入式系统及其升级维护方法 |
CN105824623A (zh) * | 2016-03-14 | 2016-08-03 | 广州趣丸网络科技有限公司 | 一种Android应用热修复的方法和装置 |
WO2016127495A1 (zh) * | 2015-02-12 | 2016-08-18 | 无锡识凌科技有限公司 | 一种智能终端中的设备驱动架构开发方法 |
CN105893070A (zh) * | 2015-11-25 | 2016-08-24 | 乐视云计算有限公司 | 应用的sdk的升级方法及系统 |
CN107122200A (zh) * | 2016-02-25 | 2017-09-01 | 博雅网络游戏开发(深圳)有限公司 | 加载插件sdk的方法、系统及客户端 |
CN108021415A (zh) * | 2017-12-30 | 2018-05-11 | 有米科技股份有限公司 | 自动打包方法、装置、计算机设备及存储介质 |
US20180181482A1 (en) * | 2016-12-22 | 2018-06-28 | SafeDK Mobile Ltd. | Monitoring Activity of Software Development Kits Using Stack Trace Analysis |
-
2018
- 2018-11-01 CN CN201811298270.XA patent/CN111124446A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行系统及方法 |
CN103491111A (zh) * | 2012-06-08 | 2014-01-01 | 阿里巴巴集团控股有限公司 | 无线应用发布、实现方法与装置 |
WO2016127495A1 (zh) * | 2015-02-12 | 2016-08-18 | 无锡识凌科技有限公司 | 一种智能终端中的设备驱动架构开发方法 |
CN104820609A (zh) * | 2015-04-27 | 2015-08-05 | 北京世纪东方国铁科技股份有限公司 | 一种嵌入式系统及其升级维护方法 |
CN105893070A (zh) * | 2015-11-25 | 2016-08-24 | 乐视云计算有限公司 | 应用的sdk的升级方法及系统 |
CN107122200A (zh) * | 2016-02-25 | 2017-09-01 | 博雅网络游戏开发(深圳)有限公司 | 加载插件sdk的方法、系统及客户端 |
CN105824623A (zh) * | 2016-03-14 | 2016-08-03 | 广州趣丸网络科技有限公司 | 一种Android应用热修复的方法和装置 |
US20180181482A1 (en) * | 2016-12-22 | 2018-06-28 | SafeDK Mobile Ltd. | Monitoring Activity of Software Development Kits Using Stack Trace Analysis |
CN108021415A (zh) * | 2017-12-30 | 2018-05-11 | 有米科技股份有限公司 | 自动打包方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
CN111897570B (zh) | 一种基于Maven插件的多依赖项文件提取方法及装置 | |
KR20040022451A (ko) | 임베디드 소프트웨어 업데이트 시스템 | |
CN110990019B (zh) | 一种Java类分析方法、装置、存储介质及电子设备 | |
CN111309335B (zh) | 插件应用的编译方法、装置及计算机可读存储介质 | |
CN105204871A (zh) | 一种插件式开发方法和装置 | |
CN104461621A (zh) | 一种更新属性信息的方法及装置 | |
US20040181777A1 (en) | Method and device for programming electronic devices using a uniform parameter format | |
CN112068881A (zh) | 一种基于数据链式的数据库升级方法 | |
CN111124446A (zh) | 一种用于自动更新下位机的sdk制作方法 | |
CN111629200A (zh) | 一种快速检测差分包可靠性的方法、装置及可读存储介质 | |
US20050097236A1 (en) | HDD Firmware download | |
CN111857785A (zh) | 一种mcu的启动方法、装置及终端设备 | |
CN112181446A (zh) | 一种基于stm32的软件在线升级方法 | |
CN113064647A (zh) | 一种bios中配置项目端口的方法、装置、终端及存储介质 | |
CN109019217B (zh) | 一种电梯控制软件现场调试系统 | |
CN105204995A (zh) | 一种基于手机平台的动态调试关键参数的方法及系统 | |
KR101386464B1 (ko) | 이동단말기에서 터치패널의 응용 프로그램 다운로드 장치및 방법 | |
CN111552498A (zh) | 一种实现显示屏的屏参升级的方法及系统 | |
CN107315602B (zh) | 一种应用程序的升级方法及终端 | |
TWI807824B (zh) | 具有自動升級功能的開發系統以及開發系統的自動升級方法 | |
JP2020101889A (ja) | モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法 | |
KR100608796B1 (ko) | 이동 통신 단말기의 바이너리 데이터 업그레이드 방법 | |
CN116594661B (zh) | 一种编译阶段确保固件与工程匹配的单片机升级方法 | |
WO2022036537A1 (en) | Data calibration method and driver |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 200438 9 / F, 10 / F, 11 / F, 12 / F, 38 Lane 1688, Guoquan North Road, Yangpu District, Shanghai Applicant after: QIANXUN SPATIAL INTELLIGENCE Inc. Address before: Room j165, 1st floor, building 64, 1436 Jungong Road, Yangpu District, Shanghai, 200433 Applicant before: QIANXUN SPATIAL INTELLIGENCE Inc. |