一种用于自动更新下位机的SDK制作方法技术

技术编号:24089576 阅读:59 留言:0更新日期:2020-05-09 07:28
本发明专利技术提供一种用于自动更新下位机的SDK制作方法,其特征在于,包括:取出应用程序二进制码的内容;将所述应用程序二进制码转化成ASCII值,并存储为静态数组;将所述静态数组编译进SDK的动态链接库。本发明专利技术还提供一种自动更新下位机的方法,包括:判断所述应用程序是否正确;如果所述应用程序正确,则运行所述应用程序,并且向上述方法生成的SDK发送所述下位机特征;等待所述SDK更新指令;自动更新下位机。本发明专利技术的用于自动更新下位机的SDK制作方法和自动更新下位机的方法,能够实现定位模块下位机的无感知更新,从而解决了现有技术中更新需要用户主动参与、用户体验差、效率太低容易出错等问题。

A method of making SDK for automatically updating the lower computer

【技术实现步骤摘要】
一种用于自动更新下位机的SDK制作方法
本专利技术涉及一种更新下位机系统的方法,尤其涉及一种用于自动更新定位模块下位机的SDK制作方法。
技术介绍
高精度定位解决方案通常由定位芯片与上位机SDK组成。芯片内部是卫星定位、惯导和单片机系统,也既是下位机系统。下位机系统通常由bootloader与application程序组成,bootloader负责启动、校验、加载以及更新application(应用程序)工作,application负责读取卫星定位与惯导数据,并且组帧,然后通过特定的startcode(起始码)上传给上位机SDK。现有技术中更新下位机系统的流程都是芯片或者模块厂家定期发布FW(Firmware)版本,并通知用户,然后用户通过集成的SDK去选择某个FW文件,然后在执行更新流程。这过程中往往会产生FW与硬件类型不匹配、版本不对、不同版本的Firmware的功能不一致带来的管理混乱,用户体验差;尤其对于出厂的芯片系统来说,某一次更新往往仅仅修正了一两个bug,或者仅增加了一两个新特性,用户往往会懒得去触发更新,即使采用OTA(OvertheAirTechnology,空中下载技术)方式也是如此,这又导致出现更新了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表示将应用程序二进制码(applicationbinary)的内容取出。其中,应用程序包括header(头信息)和body(程序体),body是实际运行的应用程序的代码部分,而header记录当前应用程序也就是body所适用的硬件模块、应用程序软件版本号、应用程序的大小、编译时间以及还有CRC(CyclicRedundancyCheck,循环冗余校验)校验码等信息,记录的具体内容可以依据应用的不同而调整,但所包括的信息应当足以用于识别、判断应用程序是否有必要进行更新。取出应用应用程序二进制代码可以使用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发送下位本文档来自技高网...

【技术保护点】
1.一种用于自动更新下位机的SDK制作方法,其特征在于,包括:/n取出应用程序二进制码的内容;/n将所述应用程序二进制码转化成ASCII值,并存储为静态数组;/n将所述静态数组编译进SDK的动态链接库。/n

【技术特征摘要】
1.一种用于自动更新下位机的SDK制作方法,其特征在于,包括:
取出应用程序二进制码的内容;
将所述应用程序二进制码转化成ASCII值,并存储为静态数组;
将所述静态数组编译进SDK的动态链接库。


2.根据权利要求1所述的用于自动更新下位机的SDK制作方法,其特征在于,所述应用程序包括头信息和程序体。


3.根据权利要求2所述的用于自动更新下位机的SDK制作方法,其特征在于,所述头信息记录所述程序体的特征信息,所述特征信息包括所述程序体适用的硬件模块、应用程序软件版本号、应用程序的大小、编译时间以及还有CRC中的一种或几种。


4.一种自动更新下位机的方法,其特征在于,包括:
判断所述应用程序是否正确;
如果所述应用程序正确,则运行所述应用程序,并且向权利要求1~3中任何一项生成的SDK发送所述下位机特征;
等待所述SDK更新指令;
自动更新下位机。


5.根据权利要求4所述的自动更新下位机的方法,其特征在于,所述下位机特征包括所述下位机的硬件类型,应用...

【专利技术属性】
技术研发人员:刘烨波
申请(专利权)人:千寻位置网络有限公司
类型:发明
国别省市:上海;31

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

1