一种改进型的IAP升级代码的方法、系统及待升级设备与流程

文档序号:19673649发布日期:2020-01-10 22:59阅读:530来源:国知局
一种改进型的IAP升级代码的方法、系统及待升级设备与流程

本发明涉及软件的技术领域,尤其涉及一种改进型的iap升级代码的方法、系统及待升级设备。



背景技术:

在电子产品中,有常见的代码升级方法就是iap,其英文为inapplicationprogramming,iap升级原理是:代码存储介质存放了app应用代码和升级处理的代码,app的英文全称是application,也叫应用软件,当app应用代码运行时识别到升级命令时,则从应用代码区跳转到升级处理代码区执行,并根据接收到的升级命令,将新的代码写入应用代码区,升级成功后,复位或者下次上电执行升级后的代码。

由于iap和应用方案紧密相关,不同方案的通信介质和通信协议变化多样,开发者往往根据具体的应用方案制定不同的iap通信介质和协议,比如在支持sd卡的方案做可以用sd卡升级,同理可以通过uart、swd、spi、usb等有线和bluetooth、wifi等无线方式升级;iap基本上由开发人员自己完成,iap代码通常和应用代码放在一起,并且只存放一份,iap升级时擦除旧代码app1,写入新代码app2,在写入新代码app2完成之前如果掉电重启则没有app运行,也就是说,iap升级存在失败的风险。这就存在以下的问题:一是要求开发者了解繁复的芯片烧写流程才能做iap,对于多数软件开发者来说底层的开发往往很难理解和调试,开发难度较大;二是iap代码存放在用户代码中,往往存在iap过程中不能掉电等限制,iap过程掉电后重启没有app代码运行,存在iap升级失败的风险。



技术实现要素:

本发明提供一种改进型的iap升级代码的方法、系统及待升级设备,无需了解繁复的芯片烧写流程即可实现iap升级,降低开发难度。本发明由以下技术方案实现:

本发明的第一方面是这样实现的,一种改进型的iap升级代码的方法,用于iap主机通过iap接口对待升级设备上的app应用代码进行升级;所述方法包括以下步骤:

(1)在待升级设备的芯片的rom内预存iap_bsp代码;(2)在待升级设备的芯片的flash内预存iap_user代码;

(3)待升级设备上电,执行app应用代码,并初始化iap接口;

(4)待升级设备确认iap接口是否接收到iap主机的iap请求,是则进入步骤(5),否则继续尝试接收iap请求;

(5)待升级设备执行iap_uesr代码,对接收到的iap请求进行命令解析;

(6)iap_user代码解析主机发出的iap命令是否有效,是则进入步骤(7),否则返回步骤(4);

(7)iap_user代码调用iap_bsp代码完成iap主机指定的命令功能;

(8)iap_user代码确认iap_bsp代码是否执行成功,是则进入步骤(9),否则返回步骤(4);

(9)iap_user代码确认iap升级是否完成,是则结束iap升级代码的过程,否则返回步骤(4)。

优选的,在iap升级过程中保留原有的旧代码app1的同时,将升级代码另外保存为代码app2,复位检测并运行最新代码app2。

本发明的第二方面是这样实现的,一种待升级设备,包括iap接口及芯片,芯片包括rom和flash,所述rom内预存iap_bsp代码,flash内预存iap_user代码。

本发明的第三方面是这样实现的,一种改进型的iap升级代码的系统,包括iap主机和待升级设备,所述iap主机和待升级设备上设有用于彼此通信的iap接口,待升级设备上设有芯片,芯片包括rom和flash;所述系统执行上述改进型的iap升级代码的方法。

优选的,所述iap接口的应用方案为uart、spi、usb、sdio、iic、wifi或蓝牙。

本发明的有益效果是:

与现有技术相比,本发明在通过芯片rom内存储iap_bsp代码的方式实现产品iap,iap开发者只需开发iap_user代码,通过iap接口对待升级设备上的app应用代码进行升级,无需考虑底层繁复的芯片烧写过程,大大降低产品iap难度和开发调试成本;app应用代码在iap升级过程中保留原有的旧代码app1,将升级代码另外保存为代码app2,复位检测并运行最新代码app2,杜绝了升级过程中断电导致掉电重启则没有app运行的异常。

附图说明

图1是本发明的实施例的连接示意图;

图2是图1中待升级设备中、芯片的各部分的示意图;

图3是本发明的实施方法的步骤示意图;

其中的附图标记为:10、iap主机;20、待升级设备;30、iap接口;40、芯片。

以下结合附图对本发明的具体实施方式作进一步详细地说明。

具体实施方式

本发明的较佳实施例如图1-图3所示,附图的作用在于用图形补充说明书文字部分的描述,便于理解本发明的各个技术特征以及整体的技术方案,但不能理解为对本发明的限制。本发明的描述中,未进行特别解释的技术词语,可视为现有技术中的广义含义。

如图1-图3所示,一种改进型的iap升级代码的系统,包括iap主机10和待升级设备20,iap主机10和待升级设备20上设有用于彼此通信的iap接口30,iap主机10和待升级设备20之间还需要vcc电源线以及gnd接地线进行电性连接,优选的,iap接口30可根据用户的需要,设成uart、spi、usb、sdio或iic的串行总线连接方式,或者是wifi或蓝牙的无线连接方式。其中的待升级设备20上设有芯片40,芯片40包括rom和flash,其中的rom,英文全称为readonlymemory,即是只读储存器,rom内预存有用于app烧写作业的iap_bsp代码,iap_bsp代码中的bsp是英文boardsupportpackage的缩写,翻译为板级支持包,是介于主板硬件和操作系统之间的一层,属于操作系统的一部分,iap_bsp代码是专门为芯片40开发者协议定制的软件,iap_bsp代码负责芯片40擦写读、安全管理方便的操作,在应用方案开发中,为了保证产品的可维护性,iap代码升级是必须的,而如今iap升级需要烧写芯片40,对于多数软件开发者来说,底层繁复的烧写作业难以理解和调试,开发难度较大,在芯片40开发者开发之前可将iap_bsp代码固化在芯片40的rom内,防止被篡改。其中的flash,即为可刷新内存,iap_bsp代码负责芯片40的flash的擦除、写入、读取、校验和上锁,安全管理,方便操作。开发者在接到含有iap_bsp代码的芯片40之后,在芯片40的flash内写入iap_user代码,iap_user代码是负责接收和解析命令,由于iap_user代码属于比较浅显,接近于人们的思维习惯,简单易懂,便于开发者理解和调试,iap_user代码和iap_bsp代码均设有软件层面的接口,即是接口函数,iap_user代码可以通过iap_bsp接口调用iap_bsp代码,iap_user代码和iap_bsp代码配合成为改进型的iap升级代码的方法。iap开发者不用考虑底层繁复的芯片40烧写过程,通过芯片40的rom内置iap_bsp代码的方式实现产品的代码升级,即iap,大大降低产品iap难度和开发调试成本。

本实施例还提供一种改进型的iap升级代码的方法,用于iap主机10通过iap接口30对待升级设备20上的app应用代码进行升级;所述方法包括以下步骤:

(1)在待升级设备的芯片的rom内预存iap_bsp代码;(2)在待升级设备的芯片的flash内预存iap_user代码;

(3)待升级设备上电,执行app应用代码,并初始化iap接口;

(4)待升级设备确认iap接口是否接收到iap主机的iap请求,是则进入步骤(5),否则继续尝试接收iap请求;

(5)待升级设备执行iap_uesr代码,对接收到的iap请求进行命令解析;

(6)iap_user代码解析主机发出的iap命令是否有效,是则进入步骤(7),否则返回步骤(4);

(7)iap_user代码调用iap_bsp代码完成iap主机指定的命令功能;

(8)iap_user代码确认iap_bsp代码是否执行成功,是则进入步骤(9),否则返回步骤(4);

(9)iap_user代码确认iap升级是否完成,是则结束iap升级代码的过程,否则返回步骤(4)。

具体地,在iap升级过程中保留原有的旧代码app1的同时,将升级代码另外保存为代码app2,复位检测并运行最新代码app2。杜绝了升级过程中断电导致掉电重启则没有app运行的异常。

以上所述实施例只是为本发明的较佳实施例,并非以此限制本发明的实施范围,需要说明的是,凡依本发明之形状、构造及原理所作的等效变化,均应涵盖于本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1