CN108255510A - 一种基于iap在线升级待升级固件传输校验设计方法 - Google Patents

一种基于iap在线升级待升级固件传输校验设计方法 Download PDF

Info

Publication number
CN108255510A
CN108255510A CN201711403674.6A CN201711403674A CN108255510A CN 108255510 A CN108255510 A CN 108255510A CN 201711403674 A CN201711403674 A CN 201711403674A CN 108255510 A CN108255510 A CN 108255510A
Authority
CN
China
Prior art keywords
check
upgraded
aprom
iap
firmware
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.)
Granted
Application number
CN201711403674.6A
Other languages
English (en)
Other versions
CN108255510B (zh
Inventor
姜智
陈华辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chipsea Technologies Shenzhen Co Ltd
Original Assignee
Chipsea Technologies Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chipsea Technologies Shenzhen Co Ltd filed Critical Chipsea Technologies Shenzhen Co Ltd
Priority to CN201711403674.6A priority Critical patent/CN108255510B/zh
Publication of CN108255510A publication Critical patent/CN108255510A/zh
Application granted granted Critical
Publication of CN108255510B publication Critical patent/CN108255510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于IAP在线升级待升级固件传输校验设计方法,该方法首先设计IAP范围的最后1k地址用作数据校验区和用户存储特定数据区,IAP传输流程如下:101、主控拉低微处理器的RESET脚,然后拉高,微处理器完成复位;102、主控通过I2C向微处理器的0x0000寄存器写入升级命令;103、将待升级的固件进行分组,微处理器将数据写入Flash;104、向0xEC00地址发送固件校验码;105、读APROM版本号,重新上电后进入APP或者发送进入APP命令向微处理器的0x0000写入相应的字节跳过烧写命令。本发明确保数据传输正确的基础上提高效率,加强数据正确性、提高系统可维护性。

Description

一种基于IAP在线升级待升级固件传输校验设计方法
技术领域
本发明属于固件更新技术领域,特别涉及应用于IAP在线升级中数据传输校验方法。
背景技术
人在微处理器领域,固件更新基本可以分为2类,分别是在系统编程,就是利用烧录仿真工具对微处理器进行flash擦写从而达到更新固件的目的,虽然这种方式速度快、操作简单,但是需要繁琐的接线、把最小系统板取下甚至整个系统取下来烧录。为以后修复固件bug埋下了需要较高成本的隐患。
另一种方式就是在应用中编程,即IAP。许多微处理器都提供IAP在线升级功能,运行代码可以在APROM,LDROM和SRAM之间切换而不用复位系统。用户通过设定芯片启动选项来决定微处理器从bootloader启动,通过上位机或者某种传输方式把待升级的固件传输给bootloader,由bootloader来对微处理器进行IAP。既然是数据传输就涉及到数据传输的正确性问题和如何进行数据校验。
通常做法是在升级的过程中边写边读来达到确定数据传输正确的目的,这种方式虽然一定程度上保证了数据正确,但是不可避免的带来了升级速度慢的问题,影响效率。
如专利申请201210428285.X公开了一种用户程序在线升级系统和升级方法,所述方法包括:单片机上电或复位后,读取存储器中的烧录标识;若烧录标识为数值A,则运行存储器中的IAP程序,对存储器中的用户程序进行在线升级;若烧录标识为数值B,则运行存储器中的用户程序;在运行用户程序时,若接收到烧录指令,则更改烧录标识为数值A后,进行软复位。由于单片机在运行用户程序时若接收到烧录指令,则将烧录标识修改为数值B后,复位单片机;单片机在复位后根据烧录标识执行IAP程序,实现用户程序的在线升级。此过程中,主机不必通过硬件管脚来控制对单片机用户程序的升级,从而节省了管脚资源。
然而,该专利申请中虽然利用IAP程序进行在线升级,但是仅仅通过烧录标识进行复位,数据传输正确虽然得到保证,但是数据传输速度慢,效率低。
发明内容
基于此,因此本发明的首要目地是提供一种基于IAP在线升级待升级固件传输校验设计方法,该方法确保数据传输正确的基础上提高效率,加强数据正确性、解决效率问题、提高系统可维护性。
本发明的另一个目地在于提供一种基于IAP在线升级待升级固件传输校验设计方法,该方法具有固件版本管理功能,具有在线升级的功能(IAP),能够让用户可以升级固件而不必将模组从板子上取下,便于操作。
为实现上述目的,本发明的技术方案为:
一种基于IAP在线升级待升级固件传输校验设计方法,其特征在于该方法首先设计IAP范围的最后1k地址用作数据校验区和用户存储特定数据区,IAP传输流程如下:
101、主控拉低微处理器的RESET脚,并维持1ms,然后拉高,等待5ms以便微处理器完成复位;
102、主控通过I2C向微处理器的0x0000寄存器写入升级命令,等待2s;
进一步,该步骤中,微处理器会擦除APROM存储的整个Flash区域。
103、将待升级的固件进行分组,每次写入一组,每组写入间隔10ms,间隔时微处理器将数据写入Flash;
所述分组,是指以512字节为单位进行分组,不足512字节则补0凑齐,操作地址从0x0000开始(即第一组0x0000,第二组0x0200,依次类推)。
104、向0xEC00地址发送固件校验码;
所述固件校验码为512字节。
106、读APROM版本号,如果一致,则重新上电后进入APP或者发送进入APP命令向微处理器的0x0000写入相应的字节跳过烧写命令。
进一步,所述写入相应的字节跳过烧写命令是写入4字节跳过烧写命令0x7E,0xE7,0xEE,0x77。
进一步,固件校验设计方法为:以倒数第2分组为存放APROM程序版本号与APROM各代码段校验码。
更进一步,校验规则设计如下:
1).校验值设计为数据的和值校验,数据校验值数据宽度为1byte,不够512字节的段补0xFF;
2).求和值=代码段1校验值+代码段2校验值+…+代码段n校验值(n就是byte4值),求和值为2字节,其中:
APROM主版本号=求和值的高8;
APROM副版本号=求和值的低8;
3).主版本号异值=APROM主版本号^0xFF;
副版本号异值=APROM副版本号^0xFF;
4).APROM代码段个数=待升级的bin文件/512字节(即APROM代码段个数=bin文件里面的字节总数除以512,不足512字节的作为一段);
5).本数据区校验值(byte511值)=byte0+byte1+byte2+…+byte510,取低8位,假如只有50段,则代码段51校验值~byte510补充0xFF;
6).主机通过下发读取0xFFFF地址可以读APROM版本号、boot版本号和校验区第511字节。
本发明所实现的基于IAP在线升级待升级固件传输校验设计方法,具有以下效果:
1、具有提高数据正确性、提高固件更新效率。
2、具有固件版本管理功能。
3、具有在线升级的功能(IAP),让用户可以升级固件而不必将模组从板子上取下,便于操作及升级。
附图说明
图1是本发明所实施的IAP升级地址示意图。
图2是本发明所实施的IAP传输流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的实施包括固件传输设计及IAP传输。
以芯海科技CSA37F60 32位微处理器为例,见图1所示,固件传输设计方法中IAP升级地址设计为:APROM地址范围0x0000~0xEFFF,则设计IAP范围0x0000~0xEC00(不包括0xEC00地址),最后1k地址用作数据校验区和用户存储特定数据区。即待更新的固件最大是59k,所以bin文件最大只能59k,其中0xEC00~0xEE00(不包括0xEE00)设计为bin校验区,512字节,0xEE00~0xEFFF设计为数据存储区,比如设备ID、boot版本、用户特殊数据等。
见图2所示,是本发明所实现的IAP传输流程,步骤如下:
101、主控拉低CSA37F60的RESET脚,并维持1ms,然后拉高,等待5ms以便CSA37F60完成复位;
102、主控通过I2C向CSA37F60的0x0000寄存器写入4字节升级命令0xAA,0x55,0xA5,0x5A,等待2s(在此期间CSA37F60会擦除APROM存储的整个Flash区域);
103、将待升级的固件以512字节为单位进行分组,不足512字节则补0凑齐,每次写入一组,操作地址从0x0000开始(即第一组0x0000,第二组0x0200,依次类推),每组写入间隔10ms(等待CSA37F60将数据写入Flash);
104、向0xEC00地址发送固件校验码,512字节;
105、读APROM版本号,一致,重新上电后进入APP或者发送进入APP命令向CSA37F60的0x0000写入4字节跳过烧写命令0x7E,0xE7,0xEE,0x77。
固件校验设计方法为:以0xEC00(倒数第2块512)为存放APROM程序版本号与APROM各代码段(512为1段)校验码。目前设计格式见表1。
表1校验规则设计如下:
1).校验值设计为数据的和值校验,数据校验值数据宽度为1byte,如代码段1的校验值为512个字节数据相加值(低8位)。不够512字节的段补0xFF。
2).求和值=代码段1校验值+代码段2校验值+…+代码段n校验值(n就是byte4值)。求和值为2字节,其中:
APROM主版本号=求和值的高8;
APROM副版本号=求和值的低8;
3).主版本号异值=APROM主版本号^0xFF;
副版本号异值=APROM副版本号^0xFF;
4).APROM代码段个数=待待升级的bin文件/512字节(即APROM代码段个数=bin文件里面的字节总数除以512,不足512字节的作为一段)。
5).本数据区校验值(byte511值)=byte0+byte1+byte2+…+byte510,取低8位,假如只有50段,则代码段51校验值~byte510补充0xFF。
6).主机通过下发读取0xFFFF地址可以读APROM版本号、boot版本号和校验区第511字节。
表1
当IAP成功后会更新校验区。主机在发送升级数据完成后,可再次读取APROM版本号,若正确可下发命令切换允许APROM程序。
在模块收到升级命令后即进入bootloader后DRDY引脚会拉高并保持在整个IAP过程中,当进入APP应用程序后DRDY引脚会初始化输出低,也可以发送查询模块运行模式命令查询模块是在IAP阶段还是在APP阶段,如果长时间在IAP阶段,主机要考虑IAP失败。
因此,本发明所实现的基于IAP在线升级待升级固件传输校验设计方法,具有以下效果:
1、具有提高数据正确性、提高固件更新效率。
2、具有固件版本管理功能。
3、具有在线升级的功能(IAP),让用户可以升级固件而不必将模组从板子上取下,便于操作及升级。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于IAP在线升级待升级固件传输校验设计方法,其特征在于该方法首先设计IAP范围的最后1k地址用作数据校验区和用户存储特定数据区,IAP传输流程如下:
101、主控拉低微处理器的RESET脚,并维持1ms,然后拉高,等待5ms以便微处理器完成复位;
102、主控通过I2C向微处理器的0x0000寄存器写入升级命令,等待2s;
103、将待升级的固件进行分组,每次写入一组,每组写入间隔10ms,间隔时微处理器将数据写入Flash;
104、向0xEC00地址发送固件校验码;
105、读APROM版本号,如果一致,则重新上电后进入APP或者发送进入APP命令向微处理器的0x0000写入相应的字节跳过烧写命令。
2.如权利要求1所述的基于IAP在线升级待升级固件传输校验设计方法,其特征在于所述步骤102中,该步骤中,微处理器会擦除APROM存储的整个Flash区域。
3.如权利要求2所述的基于IAP在线升级待升级固件传输校验设计方法,其特征在于所述步骤103中,所述分组,是指以512字节为单位进行分组,不足512字节则补0凑齐,操作地址从0x0000开始(即第一组0x0000,第二组0x0200,依次类推)。
4.如权利要求3所述的基于IAP在线升级待升级固件传输校验设计方法,其特征在于所述步骤104中,所述固件校验码为512字节。
5.如权利要求4所述的基于IAP在线升级待升级固件传输校验设计方法,其特征在于所述步骤105中,所述写入相应的字节跳过烧写命令是写入4字节跳过烧写命令0x7E,0xE7,0xEE,0x77。
6.如权利要求5所述的基于IAP在线升级待升级固件传输校验设计方法,其特征在于固件校验设计方法为:以倒数第2分组为存放APROM程序版本号与APROM各代码段校验码。
7.如权利要求6所述的基于IAP在线升级待升级固件传输校验设计方法,其特征在于校验规则设计如下:
1).校验值设计为数据的和值校验,数据校验值数据宽度为1byte,不够512字节的段补0xFF;
2).求和值=代码段1校验值+代码段2校验值+…+代码段n校验值(n就是byte4值),求和值为2字节,其中:
APROM主版本号=求和值的高8;
APROM副版本号=求和值的低8;
3).主版本号异值=APROM主版本号^0xFF;
副版本号异值=APROM副版本号^0xFF;
4).APROM代码段个数=待升级的bin文件/512字节;
5).本数据区校验值(byte511值)=byte0+byte1+byte2+…+byte510,取低8位,假如只有50段,则代码段51校验值~byte510补充0xFF;
6).主机通过下发读取0xFFFF地址可以读APROM版本号、boot版本号和校验区第511字节。
CN201711403674.6A 2017-12-22 2017-12-22 一种基于iap在线升级待升级固件传输校验设计方法 Active CN108255510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711403674.6A CN108255510B (zh) 2017-12-22 2017-12-22 一种基于iap在线升级待升级固件传输校验设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711403674.6A CN108255510B (zh) 2017-12-22 2017-12-22 一种基于iap在线升级待升级固件传输校验设计方法

Publications (2)

Publication Number Publication Date
CN108255510A true CN108255510A (zh) 2018-07-06
CN108255510B CN108255510B (zh) 2021-08-06

Family

ID=62723886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711403674.6A Active CN108255510B (zh) 2017-12-22 2017-12-22 一种基于iap在线升级待升级固件传输校验设计方法

Country Status (1)

Country Link
CN (1) CN108255510B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221543A (zh) * 2019-12-31 2020-06-02 广州中海达创新科技集团有限公司 固件烧写方法、装置
CN111752589A (zh) * 2020-06-24 2020-10-09 研祥智能科技股份有限公司 在线升级微控制器烧录代码的方法及装置
CN111832011A (zh) * 2020-07-09 2020-10-27 郑州信大捷安信息技术股份有限公司 一种基于iap的固件安全升级方法及装置
CN117742754A (zh) * 2023-12-29 2024-03-22 广东东菱电源科技有限公司 基于dali总线及调光线的灯具驱动器固件升级方案

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100971320B1 (ko) * 2003-03-25 2010-07-20 트랜스퍼시픽 소닉, 엘엘씨 플래시롬의 응용 프로그램 저장/실행 방법
CN102722384A (zh) * 2012-05-25 2012-10-10 深圳市共进电子股份有限公司 一种光模块固件在线升级的方法及升级系统
CN104899064A (zh) * 2015-06-03 2015-09-09 成都天奥信息科技有限公司 一种脉压导航雷达的双多核dsp的远程智能升级方法
CN105117253A (zh) * 2015-08-27 2015-12-02 常州大学 一种基于BootLoader的UV LED固化系统远程升级方法
CN105740034A (zh) * 2016-04-13 2016-07-06 深圳市高巨创新科技开发有限公司 Mcu在线升级固件的系统及方法
CN105867934A (zh) * 2016-04-13 2016-08-17 厦门雅迅网络股份有限公司 一种基于二分法和md5校验的文件远程升级方法
CN106445592A (zh) * 2016-09-22 2017-02-22 杭州电子科技大学 一种基于wifi与can总线远程多机程序升级方法
CN106569847A (zh) * 2016-10-14 2017-04-19 数源科技股份有限公司 一种用于车载系统基于移动网络实现iap远程升级的方法
US20170351503A1 (en) * 2016-06-06 2017-12-07 Advanced Digital Broadcast S.A. Method and system for installing software

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100971320B1 (ko) * 2003-03-25 2010-07-20 트랜스퍼시픽 소닉, 엘엘씨 플래시롬의 응용 프로그램 저장/실행 방법
CN102722384A (zh) * 2012-05-25 2012-10-10 深圳市共进电子股份有限公司 一种光模块固件在线升级的方法及升级系统
CN104899064A (zh) * 2015-06-03 2015-09-09 成都天奥信息科技有限公司 一种脉压导航雷达的双多核dsp的远程智能升级方法
CN105117253A (zh) * 2015-08-27 2015-12-02 常州大学 一种基于BootLoader的UV LED固化系统远程升级方法
CN105740034A (zh) * 2016-04-13 2016-07-06 深圳市高巨创新科技开发有限公司 Mcu在线升级固件的系统及方法
CN105867934A (zh) * 2016-04-13 2016-08-17 厦门雅迅网络股份有限公司 一种基于二分法和md5校验的文件远程升级方法
US20170351503A1 (en) * 2016-06-06 2017-12-07 Advanced Digital Broadcast S.A. Method and system for installing software
CN106445592A (zh) * 2016-09-22 2017-02-22 杭州电子科技大学 一种基于wifi与can总线远程多机程序升级方法
CN106569847A (zh) * 2016-10-14 2017-04-19 数源科技股份有限公司 一种用于车载系统基于移动网络实现iap远程升级的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSDN: "STM32 IAP在线升级", 《HTTPS://BLOG.CSDN.NET/FIREHOOD_/ARTICLE/DETAILS/7722824》 *
陈志: "基于IAP技术的ADuC702x固件升级方案", 《电子产品世界》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221543A (zh) * 2019-12-31 2020-06-02 广州中海达创新科技集团有限公司 固件烧写方法、装置
CN111752589A (zh) * 2020-06-24 2020-10-09 研祥智能科技股份有限公司 在线升级微控制器烧录代码的方法及装置
CN111832011A (zh) * 2020-07-09 2020-10-27 郑州信大捷安信息技术股份有限公司 一种基于iap的固件安全升级方法及装置
CN111832011B (zh) * 2020-07-09 2022-03-15 郑州信大捷安信息技术股份有限公司 一种基于iap的固件安全升级方法及装置
CN117742754A (zh) * 2023-12-29 2024-03-22 广东东菱电源科技有限公司 基于dali总线及调光线的灯具驱动器固件升级方案
CN117742754B (zh) * 2023-12-29 2024-06-21 广东东菱电源科技有限公司 基于dali总线及调光线的灯具驱动器固件升级方法

Also Published As

Publication number Publication date
CN108255510B (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN108255510A (zh) 一种基于iap在线升级待升级固件传输校验设计方法
CN106528106B (zh) 一种自适应各种不同Flash芯片类型的嵌入式系统启动方法
US9720667B2 (en) Automatic loop vectorization using hardware transactional memory
CN107436762B (zh) 一种寄存器代码文件生成方法、装置和电子设备
US8457943B2 (en) System and method for simulating a multiprocessor system
CN102623069B (zh) 随机激励闪存模型验证方法
CN105867985B (zh) 一种车载解码器软件升级文件的方法
CN109426619A (zh) 访问快闪存储器模块的方法及相关闪存控制器与电子装置
EP2706459B1 (en) Apparatus and method for validating a compiler for a reconfigurable processor
CN105224309A (zh) 一种调取函数的方法和装置
CN103365676B (zh) 通信设备的软件升级方法及装置
CN104077166A (zh) 基于fpga中ip核的epcs与epcq存储器在线升级方法
CN107077421A (zh) 用于页表游走改变位的指令和逻辑
Sun et al. HAIL: a language for easy and correct device access
CN104063329B (zh) 64位立即数处理方法及装置
US20040243767A1 (en) Method and apparatus for prefetching based upon type identifier tags
CN102789418B (zh) 处理器功能仿真模型生成装置、方法及功能验证方法
CN103577344A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN110134423B (zh) 固件的更新方法、装置及计算机可读存储介质
CN113360161A (zh) 资源升级方法及相关产品
CN114780154A (zh) 一种兼容不同生产厂家主控板硬件状态的方法
CN102662810A (zh) 一种微处理器的在线调试方法
CN102735323B (zh) 防止电子秤使用过程中数据丢失的方法
CN106873951A (zh) 一种麻醉机上位机软件移植到嵌入式Linux的方法
CN103186977B (zh) 微处理器中实现遥控信号发射指令控制的电路结构

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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A design method for transmission verification of firmware to be upgraded based on IAP online upgrade

Effective date of registration: 20220526

Granted publication date: 20210806

Pledgee: Shenzhen small and medium sized small loan Co.,Ltd.

Pledgor: CHIPSEA TECHNOLOGIES (SHENZHEN) Corp.

Registration number: Y2022440020076

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230630

Granted publication date: 20210806

Pledgee: Shenzhen small and medium sized small loan Co.,Ltd.

Pledgor: CHIPSEA TECHNOLOGIES (SHENZHEN) Corp.

Registration number: Y2022440020076