CN116302011A - 一种电缆监测设备固件升级方法 - Google Patents
一种电缆监测设备固件升级方法 Download PDFInfo
- Publication number
- CN116302011A CN116302011A CN202310588015.3A CN202310588015A CN116302011A CN 116302011 A CN116302011 A CN 116302011A CN 202310588015 A CN202310588015 A CN 202310588015A CN 116302011 A CN116302011 A CN 116302011A
- Authority
- CN
- China
- Prior art keywords
- firmware
- starting
- option record
- information
- data
- 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
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种电缆监测设备固件升级方法,本发明包括响应接收到的电缆监测设备固件升级请求,获取电缆监测设备固件升级请求对应的电缆监测设备固件信息;读取电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果;根据读取结果执行启动选项记录对应的启动标志的更新操作,生成目标启动选项记录;跳转至用户固件,并按照目标启动选项记录对用户固件执行固件升级操作,生成目标监测设备固件。解决了现有技术在部分电缆监测设备为应对恶劣环境,采用全密封式的结构,导致无法进行近端的非接触式固件更新的技术问题。本发明通过考虑多种固件设备更新情况,解决了电缆监测设备非接触式的固件更新问题。
Description
技术领域
本发明涉及电缆监测设备固件升级技术领域,尤其涉及一种电缆监测设备固件升级方法。
背景技术
固件 (Firmware)是指设备内部保存的设备“驱动程序”,通过固件,操作系统(Operating System,OS)才能按照标准的设备驱动实现特定机器的运行动作。比如电缆监测设备等都有内部固件。一般可由用户通过特定的刷新程序进行固件升级。固件升级,有时也称固件刷新,刷写,重写,烧录或刷机,是指把新的固件写入芯片中,代替原有的固件的过程。
然而,电缆工作环境比较恶劣,这使得很多电缆监测设备在现场运行时间长之后,出现接线端口老化等问题,导致无法进行固件更新。
此外,现有技术通常是工作人员前往电缆监测设备处进行固件更新,但采用上述方式时,有部分电缆监测设备为应对恶劣环境,采用全密封式的结构,导致无法进行近端的非接触式固件更新。
发明内容
本发明提供了一种电缆监测设备固件升级方法,解决了现有技术通常是工作人员前往电缆监测设备处进行固件更新,但采用上述方式时,有部分电缆监测设备为应对恶劣环境,采用全密封式的结构,导致无法进行近端的非接触式固件更新的技术问题。
本发明提供的一种电缆监测设备固件升级方法,包括:
响应接收到的电缆监测设备固件升级请求,获取所述电缆监测设备固件升级请求对应的电缆监测设备固件信息;
读取所述电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果;
根据读取结果执行所述启动选项记录对应的启动标志的更新操作,生成目标启动选项记录;
跳转至用户固件,并按照所述目标启动选项记录对所述用户固件执行固件升级操作,生成目标监测设备固件。
可选地,所述启动选项记录包括主启动选项记录和从启动选项记录;所述读取所述电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果的步骤,包括:
读取所述电缆监测设备固件信息对应的监测设备固件的外部存储器中的主启动选项记录和从启动选项记录,并存储至微控制单元,生成存储信息;其中,所述存储信息包括存储成功信息和存储失败信息;
获取所述主启动选项记录的第一校验码,并判断所述第一校验码是否与所述主启动选项记录对应的第一数据项校验码一致;
若所述第一校验码与所述第一数据项校验码一致,则确定所述主启动选项记录的记录数据完整,并获取所述从启动选项记录的第二校验码;
判断所述第二校验码是否与所述从启动选项记录对应的第二数据项校验码一致;
若所述第二校验码与所述第二数据项校验码一致,则判定所述启动选项记录读取成功,生成存储成功信息;
若所述第二校验码与所述第二数据项校验码不一致,则通过所述外部存储器擦除所述从启动选项记录,并将所述微控制单元暂存的主启动选项记录写入所述外部存储器,生成更新从启动选项记录;
若所述第一校验码与所述第一数据项校验码不一致,则获取所述从启动选项记录的第二校验码,并判断所述第二校验码是否与所述从启动选项记录对应的第二数据项校验码一致;
若所述第二校验码与所述第二数据项校验码一致,则通过所述外部存储器擦除所述主启动选项记录,并将所述微控制单元暂存的从启动选项记录写入所述外部存储器,生成更新主启动选项记录;
若所述第二校验码与所述第二数据项校验码不一致,则判定所述启动选项记录读取失败,生成存储失败信息。
可选地,所述启动选项记录还包括缓存启动选项记录;所述根据读取结果执行所述启动选项记录对应的启动标志的更新操作,生成目标启动选项记录的步骤,包括:
根据读取结果复制所述主启动选项记录,并输入所述缓存启动选项记录;
当设置所述缓存启动选项记录中的启动标志的预设数值为第零数值时,则获取所述主启动选项记录对应的启动标志的预设数值;
当所述预设数值为第四数值时,则执行更新MCU用户固件操作,并传入所述缓存启动选项记录的升级固件入口地址;
判断所述更新MCU用户固件操作是否更新成功;
若更新成功,则生成第一目标固件,并将所述缓存启动选项记录中的用户固件入口地址和备份固件入口地址进行交换;
复制所述外部存储器的第一目标固件对应的固件数据,并按照所述用户固件入口地址输入所述外部存储器;
若更新失败,则执行所述启动选项记录对应的启动标志的更新操作,生成第一更新启动选项记录。
可选地,所述执行更新MCU用户固件操作的步骤,具体包括:
接收所述缓存启动选项记录的升级固件入口地址;
读取所述升级固件入口地址对应的待升级固件的固件头部信息,计算所述固件头部信息对应的第三校验码,并判断所述第三校验码是否与所述固件头部信息的第三数据项校验码一致;
若不一致,则生成无效固件头部信息;
若一致,则根据所述升级固件入口地址分块读取所述待升级固件对应的固件数据,并累计计算各个所述固件数据对应的第四校验码;
判断所述第四校验码是否与所述固件数据的数据项校验码一致;
若不一致,则生成无效固件信息;
若一致,则分块读取并计算内部存储器中的用户固件的第五校验码,并判断所述第五校验码是否与所述固件数据的数据项校验码一致;
若一致,则确定固件升级成功;
擦除所述内部存储器中的用户固件信息,并复制所述外部存储器中的固件数据,输入所述内部存储器。
可选地,还包括:
当所述预设数值为第一数值时,则执行所述更新MCU用户固件操作,并传入所述缓存启动选项记录的用户固件入口地址;
执行所述启动选项记录对应的启动标志的更新操作,生成第二更新启动选项记录;
当所述预设数值为第二数值时,则执行所述更新MCU用户固件操作,并传入所述缓存启动选项记录的固件升级程序入口地址;
执行所述启动选项记录对应的启动标志的更新操作,生成第三更新启动选项记录;
当所述预设数值为第五数值时,则执行所述更新MCU用户固件操作,并传入所述缓存启动选项记录的临时固件入口地址;
执行所述启动选项记录对应的启动标志的更新操作,生成第四更新启动选项记录。
可选地,还包括:
当所述预设数值为第三数值时,则执行所述更新MCU用户固件操作,并传入所述缓存启动选项记录的工厂固件入口地址;
判断所述更新MCU用户固件操作是否更新成功;
若更新成功,则生成第二目标固件;
设所述缓存启动选项记录中的启动标志对应的启动工厂固件的预设数值为第六数值;
若更新失败,则执行所述启动选项记录对应的启动标志的更新操作,生成第五更新启动选项记录。
可选地,所述执行所述启动选项记录对应的启动标志的更新操作,生成第一更新启动选项记录的步骤,包括:
擦除所述外部存储器对应的主启动选项记录的主启动指定扇区,并将所述缓存启动选项记录写入所述主启动指定扇区;
擦除所述外部存储器对应的从启动选项记录的从启动指定扇区,并将所述缓存启动选项记录写入所述从启动指定扇区,生成第一更新启动选项记录。
可选地,所述跳转至用户固件,并按照所述目标启动选项记录对所述用户固件执行固件升级操作,生成目标监测设备固件的步骤,还包括:
跳转至用户固件,当所述用户固件为固件升级程序时,初始化MCU用户固件、外部存储器和蓝牙适配器,并启动蓝牙热点;
实时监听是否接收到蓝牙设备连接请求;
若是,则连接所述蓝牙设备连接请求对应的蓝牙设备,并通过蓝牙SPP协议,接收所述蓝牙设备传送的指令;
通过指令解析器对所述指令进行解析;
当所述指令为普通指令时,则按照所述普通指令对应的指令信息执行相应的指令操作,生成执行结果;
跳转执行至所述实时监听是否接收到蓝牙设备连接请求的步骤;
当所述指令为重启指令时,则根据所述重启指令跳转执行所述读取所述电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果的步骤;
按照所述目标启动选项记录对所述用户固件执行固件升级操作,生成目标监测设备固件。
可选地,所述当所述指令为普通指令时,则按照所述普通指令对应的指令信息执行相应的指令操作,生成执行结果的步骤,包括:
当所述指令为普通指令时,则获取所述普通指令对应的指令信息;
当所述指令信息为测试指令时,则按照所述测试指令执行测试操作,生成测试结果,并通过所述蓝牙SPP协议发送所述测试结果,生成测试完成信息;
当所述指令信息为擦除外部存储器对应的存储扇区时,则根据所述指令信息获取起始擦除扇区号和擦除扇区数量;
按照预设顺序从所述起始擦除扇区号对应的所述外部存储器的存储扇区开始执行擦除操作,并统计已擦除扇区数量;
当所述已擦除扇区数量等于所述擦除扇区数量时,则停止擦除操作,并生成擦除操作完成信息;
通过所述蓝牙SPP协议发送所述擦除操作完成信息;
当所述指令信息为写入外部存储器时,则根据所述指令信息获取起始写入扇区号、扇区写入偏移和写入数据量;
按照所述起始写入扇区号、所述扇区写入偏移和所述写入数据量执行所述写入外部存储器的写入操作,生成写入操作完成信息;
通过所述蓝牙SPP协议发送所述擦除操作完成信息;
当所述指令信息为读取外部存储器时,则根据所述指令信息获取起始读取扇区号、扇区读取偏移和读取数据量;
按照所述起始读取扇区号、所述扇区读取偏移和所述读取数据量执行所述读取外部存储器的读取操作,生成读取操作完成信息;
通过所述蓝牙SPP协议发送所述读取操作完成信息。
可选地,所述按照所述起始写入扇区号、所述扇区写入偏移和所述写入数据量执行所述写入外部存储器的写入操作,生成写入操作完成信息的步骤,包括:
通过所述蓝牙SPP协议接收所述写入数据量对应的数据信息,并存入临时数据缓存区;
采用所述写入数据量、已写入量、写入数据分块大小和所述外部存储器对应的扇区大小,计算当次在线写入的本轮写入数据量;
采用所述起始写入扇区号、所述扇区写入偏移、所述已写入量和所述外部存储器对应的扇区大小,计算写入扇区地址;
采用所述扇区写入偏移、所述已写入量和所述外部存储器对应的扇区大小,计算写入扇区偏移;
根据所述临时数据缓存区获取所述写入数据量对应的数据信息,按照预设顺序从所述外部存储器对应的写入扇区地址对应的写入扇区偏移开始执行写入操作,生成本轮已写入量;
采用所述本轮写入数据量和所述本轮已写入量,计算新的已写入量,生成更新已写入量;
跳转执行所述采用所述写入数据量、已写入量、写入数据分块大小和所述外部存储器对应的扇区大小,计算当次在线写入的本轮写入数据量的步骤,直至所述写入数据量等于预设写入阈值,生成写入操作完成信息。
从以上技术方案可以看出,本发明具有以下优点:
本发明通过响应接收到的电缆监测设备固件升级请求,获取电缆监测设备固件升级请求对应的电缆监测设备固件信息;读取电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果;根据读取结果执行启动选项记录对应的启动标志的更新操作,生成目标启动选项记录;跳转至用户固件,并按照目标启动选项记录对用户固件执行固件升级操作,生成目标监测设备固件。解决了现有技术通常是工作人员前往电缆监测设备处进行固件更新,但采用上述方式时,有部分电缆监测设备为应对恶劣环境,采用全密封式的结构,导致无法进行近端的非接触式固件更新的技术问题。本发明通过考虑多种固件设备更新情况,解决了电缆监测设备非接触式的固件更新问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例一提供的一种电缆监测设备固件升级方法的步骤流程图;
图2为本发明实施例一提供的一种电缆监测设备固件升级方法的执行步骤流程图;
图3为本发明实施例二提供的一种电缆监测设备固件升级方法的步骤流程图;
图4为本发明实施例二提供的一种读取启动选项记录的步骤流程图;
图5为本发明实施例二提供的一种执行启动选项记录的步骤流程图;
图6为本发明实施例二提供的一种执行更新MCU用户固件操作的步骤流程图;
图7为本发明实施例二提供的一种更新启动选项记录的步骤流程图;
图8为本发明实施例二提供的蓝牙设备发送的指令为普通指令的步骤流程图。
具体实施方式
本发明实施例提供了一种电缆监测设备固件升级方法,用于解决现有技术通常是工作人员前往电缆监测设备处进行固件更新,但采用上述方式时,有部分电缆监测设备为应对恶劣环境,采用全密封式的结构,导致无法进行近端的非接触式固件更新的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1-2,图1为本发明实施例一提供的一种电缆监测设备固件升级方法的步骤流程图。
本发明提供的一种电缆监测设备固件升级方法,包括以下步骤:
步骤101、响应接收到的电缆监测设备固件升级请求,获取电缆监测设备固件升级请求对应的电缆监测设备固件信息。
需要说明的是,电缆监测设备固件升级请求指的是需要对电缆监测设备固件进行固件升级的请求。
电缆监测设备固件信息指的是MCU设备、外部存储器设备和蓝牙适配器等信息。
在具体实施例中,电缆监测设备在运行时间长之后,需要定期或不定期对电缆监测设备固件进行固件升级,所以当接收到电缆监测设备固件升级请求时,获取电缆监测设备固件升级请求携带的电缆监测设备固件信息。
步骤102、读取电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果。
需要说明的是,如图2所示,在启动选项记录之前,先进行初始化MCU设备和外部Flash存储器。启动选项记录包括主启动选项记录、从启动选项记录和缓存启动选项记录,启动选项记录的数据结构如下表1:
其中,启动选项记录中的启动标志的取值为如下表2:
具体地,各个启动标志的含义如下:
启动用户固件的含义是:加载外部Flash存储器中的用户固件到MCU内置Flash存储器的“用户固件”区域。当外部Flash存储器中的“用户固件”不可用或与MCU内置Flash存储器的“用户固件”一致时,Bootloader将直接引导执行MCU内部Flash存储器的“用户固件”
启动固件升级程序的含义是:临时加载外部Flash存储器中的“固件升级程序”到MCU内置Flash存储器的“用户固件”区域。Bootloader引导并执行固件升级程序,在固件升级程序中进一步进行蓝牙固件升级的功能。
启动工厂固件的含义是:加载外部Flash存储器中的“工厂固件”到MCU内置Flash存储器的“用户固件”区域,以实现还原出厂固件的操作。
固件升级的含义是:使用外部Flash存储器中的“升级固件”,对MCU内置Flash存储器的“用户固件”进行备份和升级,实现升级的功能。
启动临时固件的含义是:临时加载外部Flash存储器中的“临时固件”到MCU内置Flash存储器的“用户固件”区域。Bootloader引导并执行临时固件。
在具体实施例中,通过读取电缆监测设备固件信息对应的监测设备固件的主启动选项记录和从启动选项记录,按照读取的结果生成对应的读取结果信息。
具体地,主启动选项记录和从启动选项记录被存储在外部Flash存储器的不同扇区上,以避免信息丢失的危险。若存储在相同的扇区,可能会出现同时擦除的情况:同时擦除后若在写入新的主启动选项记录和从启动选项记录完成前断电,主启动选项记录和从启动选项记录可能会丢失,并且无法通过相互验证的方式进行恢复。
步骤103、根据读取结果执行启动选项记录对应的启动标志的更新操作,生成目标启动选项记录。
需要说明的是,读取结果包括读取启动选项记录成功和读取启动选项记录失败。
目标启动选项记录指的是按照原启动选项记录的启动标志的更新操作进行更新后,产生的新的启动选项记录。
在具体实施例中,如果读取启动选项记录成功,就按照启动选项记录对应的启动标志的更新操作执行,得到目标启动选项记录。
如果读取启动选项记录失败,则直接跳转到用户固件,并执行用户固件。
步骤104、跳转至用户固件,并按照目标启动选项记录对用户固件执行固件升级操作,生成目标监测设备固件。
需要说明的是,目标监测设备固件指的是对用户固件进行固件升级后,产生新的监测设备固件。
在具体实施例中,跳转至用户固件,当当前用户固件为固件升级程序(DFU,DeviceFirmware Upgrade)时,则按照目标启动选项记录对当前用户固件执行固件升级操作。如果用户固件已执行完成,则结束全部流程。
本发明通过响应接收到的电缆监测设备固件升级请求,获取电缆监测设备固件升级请求对应的电缆监测设备固件信息;读取电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果;根据读取结果执行启动选项记录对应的启动标志的更新操作,生成目标启动选项记录;跳转至用户固件,并按照目标启动选项记录对用户固件执行固件升级操作,生成目标监测设备固件。解决了现有技术通常是工作人员前往电缆监测设备处进行固件更新,但采用上述方式时,有部分电缆监测设备为应对恶劣环境,采用全密封式的结构,导致无法进行近端的非接触式固件更新的技术问题。本发明通过考虑多种固件设备更新情况,解决了电缆监测设备非接触式的固件更新问题。
请参阅图3-8,图3为本发明实施例二提供的一种电缆监测设备固件升级方法的步骤流程图。
本发明提供的一种电缆监测设备固件升级方法,包括以下步骤:
步骤201、响应接收到的电缆监测设备固件升级请求,获取电缆监测设备固件升级请求对应的电缆监测设备固件信息。
在本发明实施例中,步骤201的具体实施过程与步骤101类似,在此不再赘述。
步骤202、读取电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果。
可选地,启动选项记录包括主启动选项记录和从启动选项记录,步骤202包括以下步骤S11-S19;
S11、读取电缆监测设备固件信息对应的监测设备固件的外部存储器中的主启动选项记录和从启动选项记录,并存储至微控制单元,生成存储信息;其中,存储信息包括存储成功信息和存储失败信息;
S12、获取主启动选项记录的第一校验码,并判断第一校验码是否与主启动选项记录对应的第一数据项校验码一致;
S13、若第一校验码与第一数据项校验码一致,则确定主启动选项记录的记录数据完整,并获取从启动选项记录的第二校验码;
S14、判断第二校验码是否与从启动选项记录对应的第二数据项校验码一致;
S15、若第二校验码与第二数据项校验码一致,则判定启动选项记录读取成功,生成存储成功信息;
S16、若第二校验码与第二数据项校验码不一致,则通过外部存储器擦除从启动选项记录,并将微控制单元暂存的主启动选项记录写入外部存储器,生成更新从启动选项记录;
S17、若第一校验码与第一数据项校验码不一致,则获取从启动选项记录的第二校验码,并判断第二校验码是否与从启动选项记录对应的第二数据项校验码一致;
S18、若第二校验码与第二数据项校验码一致,则通过外部存储器擦除主启动选项记录,并将微控制单元暂存的从启动选项记录写入外部存储器,生成更新主启动选项记录;
S19、若第二校验码与第二数据项校验码不一致,则判定启动选项记录读取失败,生成存储失败信息。
需要说明的是,外部存储器指的是外部Flash存储器。第一校验码、第二校验码均指的是CRC32(32位循环冗余校验码);第一数据项校验码和第二数据项校验码分别指的是主启动选项记录的数据项CRC32和从启动选项记录的数据项CRC32。
在具体实施例中,从外部Flash存储器指定地址读取“主启动选项记录”和“从启动选项记录”暂时存储到MCU的RAM中,如果成功则执行步骤S12,否则执行步骤S19。
首先,如图4所示,检查“主启动选项记录”是否完整,计算“主启动选项记录”的CRC32(32位循环冗余校验码)是否与“主启动选项记录”中的数据项CRC32一致,如果“主启动选项记录”的CRC32(32位循环冗余校验码)与“主启动选项记录”中的数据项CRC32一致,则执行步骤S13,继续检查“从启动选项记录”是否完整,计算“从启动选项记录”的CRC32是否与“从启动选项记录”中的数据项“CRC32”一致,如果一致则执行步骤S15,判定启动选项记录读取成功,生成存储成功信息;否则执行步骤S16,修复“从启动选项记录”。
具体地,修复“从启动选项记录”的具体操作为:令外部Flash存储器擦除“从启动选项记录”,并将暂存在MCU的RAM中的“主启动选项记录”写入到外部Flash存储器固定地址存放“从启动选项记录”的存储单元上。
当“主启动选项记录”的CRC32(32位循环冗余校验码)与“主启动选项记录”中的数据项CRC32不一致时,执行步骤S17,同样继续继续检查“从启动选项记录”是否完整,计算“从启动选项记录”的CRC32是否与“从启动选项记录”中的数据项“CRC32”一致,如果一致则执行步骤S18,修复“主启动选项记录”,否则执行步骤S19,判定启动选项记录读取失败,生成存储失败信息。
具体地,修复“主启动选项记录”的具体操作为:令外部Flash存储器擦除“主启动选项记录”,并将暂存在MCU的RAM中的“从启动选项记录”写入到外部Flash存储器固定地址存放“主启动选项记录”的存储单元上。
步骤203、根据读取结果复制主启动选项记录,并输入缓存启动选项记录。
在本发明实施例中,当读取结果为读取成功时,在RAM中创建“主启动选项记录”的缓存记录,即复制一份存放在RAM中的“主启动选项记录”到RAM中的“缓存启动选项记录”。
步骤204、当设置缓存启动选项记录中的启动标志的预设数值为第零数值时,则获取主启动选项记录对应的启动标志的预设数值。
需要说明的是,第零数值为0;预设数值为如表2中的uint32_t值。
在具体实施例中,当设置“缓存启动选项记录”中“启动标志”的数值为0,即为“启动用户固件”时,获取“主启动选项记录”中“启动标志”的预设数值。如“主启动选项记录”中“启动标志”的预设数值为3(即“固件升级”),则执行“固件升级”操作。
步骤205、当预设数值为第四数值时,则执行更新MCU用户固件操作,并传入缓存启动选项记录的升级固件入口地址。
需要说明的是,第四数值为3。
在本发明实施例中,如图5所示,当预设数值为3时,参照表2,“主启动选项记录”中“启动标志”的预设数值为3(即“固件升级”),则执行“更新MCU用户固件”操作,并传入参数为“缓存启动选项记录”中的“升级固件入口地址”。如果返回成功则继续执行步骤S21以及剩余步骤,否则跳转执行步骤209。
可选地,执行更新MCU用户固件操作具体包括以下步骤S21-S29:
S21、接收缓存启动选项记录的升级固件入口地址;
S22、读取升级固件入口地址对应的待升级固件的固件头部信息,计算固件头部信息对应的第三校验码,并判断第三校验码是否与固件头部信息的第三数据项校验码一致;
S23、若不一致,则生成无效固件头部信息;
S24、若一致,则根据升级固件入口地址分块读取待升级固件对应的固件数据,并累计计算各个固件数据对应的第四校验码;
S25、判断第四校验码是否与固件数据的数据项校验码一致;
S26、若不一致,则生成无效固件信息;
S27、若一致,则分块读取并计算内部存储器中的用户固件的第五校验码,并判断第五校验码是否与固件数据的数据项校验码一致;
S28、若一致,则确定固件升级成功;
S29、擦除内部存储器中的用户固件信息,并复制外部存储器中的固件数据,输入内部存储器。
需要说明的是,第三校验码为CRC32值。第三数据项校验码为“固件头部信息”中的数据项“头部CRC32”的值。第四校验码为固件数据的CRC32值。固件数据的数据项校验码为“固件本体”(即待升级固件)中固件数据的数据项“固件CRC32”值。内部存储器为MCU内部Flash存储器。
在本发明实施例中,如图6所示,接收缓存启动选项记录的传入数据“升级固件入口地址”。从外部Flash存储器的指定地址读取“固件”(即待升级固件)的“固件头部信息”,并存放到RAM中,其指定地址为传入参数“升级固件入口地址”。
校验“固件头部信息”是否完整,计算“固件头部信息”CRC32值,并判断是否与“固件头部信息”中的数据项“头部CRC32”的值一致,如果不一致则提前结束步骤,返回无效头部信息。
如果一致,则继续校验“固件”(即待升级固件)是否完整,通过传入参数的“升级固件入口地址”计算出“固件本体”(即待升级固件)的固件数据在外部Flash存储器中存储地址,分块读取“固件本体”(即待升级固件)中的固件数据并累积计算固件数据的CRC32值,其中的分块长度为1024字节。判断计算出来的固件数据的CRC32值是否与“固件本体”(即待升级固件)中的数据项“固件CRC32”值相同,如果不一致则提前结束步骤,返回无效固件信息。
如果一致,确定固件升级成功,擦除MCU内部Flash存储器中“用户固件”,擦除长度为“固件头部信息”中的数据项“固件长度”的值。复制外部Flash存储中的固件数据到MCU内部Flash存储器中的“用户固件”区域,复制长度为“固件头部信息”中的数据项“固件长度”的值,结束并返回成功。
具体地,“固件”包含了“固件头部信息”和“固件本体”,其中的“固件”的固件数据结构如下表3:
可选地,本发明还包括以下步骤S31-S36:
S31、当预设数值为第一数值时,则执行更新MCU用户固件操作,并传入缓存启动选项记录的用户固件入口地址;
S32、执行启动选项记录对应的启动标志的更新操作,生成第二更新启动选项记录;
S33、当预设数值为第二数值时,则执行更新MCU用户固件操作,并传入缓存启动选项记录的固件升级程序入口地址;
S34、执行启动选项记录对应的启动标志的更新操作,生成第三更新启动选项记录;
S35、当预设数值为第五数值时,则执行更新MCU用户固件操作,并传入缓存启动选项记录的临时固件入口地址;
S36、执行启动选项记录对应的启动标志的更新操作,生成第四更新启动选项记录。
需要说明的是,第一数值为0;第二数值为1;第五数值为4。第二更新启动选项记录、第三更新启动选项记录和第四更新启动选项记录均为更新后的启动选项记录。
在本发明实施例中,如图5所示,当“主启动选项记录”中“启动标志”的数值是0,即“启动用户固件”,则执行步骤S205中的执行更新MCU用户固件操作,并传入参数为“缓存启动选项记录”中的“用户固件入口地址”。结束后跳转到步骤S32,第二更新启动选项记录。
当“主启动选项记录”中“启动标志”的数值是1时,即“启动固件升级程序”,则执行步骤S205中的执行更新MCU用户固件操作,并传入参数为“缓存启动选项记录”中的“固件升级程序入口地址”。结束后跳转到步骤S34,生成第三更新启动选项记录。
当“主启动选项记录”中“启动标志”的数值是4时,即“启动临时固件”,则执行步骤S205中的执行更新MCU用户固件操作,并传入参数为“缓存启动选项记录”中的“临时固件入口地址”。结束后跳转到步骤S36,生成第四更新启动选项记录。
可选地,本发明还包括以下步骤S41-S45:
S41、当预设数值为第三数值时,则执行更新MCU用户固件操作,并传入缓存启动选项记录的工厂固件入口地址;
S42、判断更新MCU用户固件操作是否更新成功;
S43、若更新成功,则生成第二目标固件;
S44、设缓存启动选项记录中的启动标志对应的启动工厂固件的预设数值为第六数值;
S45、若更新失败,则执行启动选项记录对应的启动标志的更新操作,生成第五更新启动选项记录。
需要说明的是,第三数值为2,第六数值为2。第五更新启动选项记录指的是更新后的启动选项记录。
在本发明实施例中,如图5所示,当“主启动选项记录”中“启动标志”的数值是2时,即“启动工厂固件”,则执行步骤S205中的执行更新MCU用户固件操作,并传入参数为“缓存启动选项记录”中的“工厂固件入口地址”。如果返回成功则继续执行步骤S43以及剩余步骤,否则跳转至步骤S45,生成第五更新启动选项记录。
设置“缓存启动选项记录”中的“启动标志”的数值为2,即为“启动工厂固件”,结束并跳转至执行启动选项记录对应的启动标志的更新操作,生成第五更新启动选项记录的步骤。
步骤206、判断更新MCU用户固件操作是否更新成功。
在具体实施例中,通过执行更新MCU用户固件操作后返回的执行结果信息,确定更新MCU用户固件操作的更新结果。
步骤207、若更新成功,则生成第一目标固件,并将缓存启动选项记录中的用户固件入口地址和备份固件入口地址进行交换。
需要说明的是,第一目标固件指的是更新后的MCU用户固件。
在本发明实施例中,如果更新MCU用户固件操作更新成功,产生第一目标固件,交换缓存的“启动选项记录”中的“用户固件入口地址”和“备份固件入口地址”。
步骤208、复制外部存储器的第一目标固件对应的固件数据,并按照用户固件入口地址输入外部存储器。
在本发明实施例中,将存在到外部Flash存储器的“升级固件”(也就是第一目标固件)对应的固件数据复制到外部Flash存储器的指定地址,该地址为“缓存启动选项记录”中的“用户固件入口地址”,结束并跳转到步骤209中的执行启动选项记录对应的启动标志的更新操作,生成第一更新启动选项记录。
步骤209、若更新失败,则执行启动选项记录对应的启动标志的更新操作,生成第一更新启动选项记录。
可选地,步骤209包括以下步骤S51-S52:
S51、擦除外部存储器对应的主启动选项记录的主启动指定扇区,并将缓存启动选项记录写入主启动指定扇区;
S52、擦除外部存储器对应的从启动选项记录的从启动指定扇区,并将缓存启动选项记录写入从启动指定扇区,生成第一更新启动选项记录。
需要说明的是,主启动指定扇区指的是在外部Flash存储器中存放主启动选项记录的指定扇区;从启动指定扇区指的是在外部Flash存储器中存放从启动选项记录的指定扇区。
在本发明实施例中,如图7所示,擦除外部Flash存储器中存放“主启动选项记录”的指定扇区;将“缓存启动选项记录”写入到外部Flash存储器中存放“主启动选项记录”的指定扇区数据单元。
擦除外部Flash存储器中存放“从启动选项记录”的指定扇区;将“缓存启动选项记录”写入到外部Flash存储器中存放“从启动选项记录”的指定扇区数据单元,结束。
步骤210、跳转至用户固件,并按照目标启动选项记录对用户固件执行固件升级操作,生成目标监测设备固件。
可选地,步骤210包括以下步骤S61-S68:
S61、跳转至用户固件,当用户固件为固件升级程序时,初始化MCU用户固件、外部存储器和蓝牙适配器,并启动蓝牙热点;
S62、实时监听是否接收到蓝牙设备连接请求;
S63、若是,则连接蓝牙设备连接请求对应的蓝牙设备,并通过蓝牙SPP协议,接收蓝牙设备传送的指令;
S64、通过指令解析器对指令进行解析;
S65、当指令为普通指令时,则按照普通指令对应的指令信息执行相应的指令操作,生成执行结果;
S66、跳转执行至实时监听是否接收到蓝牙设备连接请求的步骤;
S67、当指令为重启指令时,则根据重启指令跳转执行读取电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果的步骤;
S68、按照目标启动选项记录对用户固件执行固件升级操作,生成目标监测设备固件。
需要说明的是,当跳转到用户固件时,会反初始化,所以“用户固件”需要重新初始化,故初始化MCU设备、外部Flash存储器和蓝牙适配器;目标监测设备固件指的是完成固件升级的监测设备固件。重启指令指的是软件重启指令。
在具体实施例中,如图8所示,跳转到用户固件,如果当前用户固件为固件升级程序时,初始化MCU用户固件、外部存储器和蓝牙适配器,并启动蓝牙热点,等待蓝牙设备接入,当接收到蓝牙设备的连接请求后,连接该蓝牙设备,并通过蓝牙SPP协议(Serial PortProfile),接收从蓝牙设备传来的指令,对通过蓝牙传入的指令使用“指令解析器”进行解析与执行。如果是“普通指令”,则按照普通指令对应的指令信息执行相应的指令操作,当执行结束时,则跳转到步骤S62;如果是“重启”指令,则MCU通过“软件重启”回到流程S202继续执行。然后按照目标启动选项记录对用户固件执行固件升级操作,生成目标监测设备固件。
可选地,步骤S65包括以下步骤S71-S712:
S71、当指令为普通指令时,则获取普通指令对应的指令信息;
S72、当指令信息为测试指令时,则按照测试指令执行测试操作,生成测试结果,并通过蓝牙SPP协议发送测试结果,生成测试完成信息;
S73、当指令信息为擦除外部存储器对应的存储扇区时,则根据指令信息获取起始擦除扇区号和擦除扇区数量;
S74、按照预设顺序从起始擦除扇区号对应的外部存储器的存储扇区开始执行擦除操作,并统计已擦除扇区数量;
S75、当已擦除扇区数量等于擦除扇区数量时,则停止擦除操作,并生成擦除操作完成信息;
S76、通过蓝牙SPP协议发送擦除操作完成信息;
S77、当指令信息为写入外部存储器时,则根据指令信息获取起始写入扇区号、扇区写入偏移和写入数据量;
S78、按照起始写入扇区号、扇区写入偏移和写入数据量执行写入外部存储器的写入操作,生成写入操作完成信息;
S79、通过蓝牙SPP协议发送擦除操作完成信息;
S710、当指令信息为读取外部存储器时,则根据指令信息获取起始读取扇区号、扇区读取偏移和读取数据量;
S711、按照起始读取扇区号、扇区读取偏移和读取数据量执行读取外部存储器的读取操作,生成读取操作完成信息;
S712、通过蓝牙SPP协议发送读取操作完成信息。
在具体实施例中,如果指令为“测试指令”的“普通指令”,则按照测试指令执行测试操作,生成测试结果,该测试结果为成功,通过SPP协议向上位机响应“成功”的执行结果代码,结束指令解析器,生成测试完成信息。
如果指令为“擦除外部Flash存储器扇区”的“普通指令”,则从指令中提取出“起始擦除扇区号”和“擦除扇区数量”,并从外部Flash存储器的“起始擦除扇区号”开始擦除“擦除扇区数量”个扇区,并通过蓝牙SPP协议向上位机响应擦除操作执行结果代码,结束指令解析器,生成擦除操作完成信息。
如果指令为“写入外部Flash存储器扇区”的“普通指令”,则从指令中提取出“起始写入扇区号”、“扇区写入偏移”和“写入数据量”,然后执行“在线写入外部Flash存储器扇区”的操作,并通过蓝牙SPP协议向上位机响应执行结果代码,结束指令解析器,生成写入操作完成信息。
如果指令为“读取外部Flash存储器扇区”的“普通指令”,则从指令中提取出“起始读取扇区号”、“扇区读取偏移”和“读取数据量”,然后“在线读取外部Flash存储器扇区”,并通过蓝牙SPP协议返回读取出来的数据,结束指令解析器,生成读取操作完成信息。
可选地,步骤S78包括以下步骤S81-S87:
S81、通过蓝牙SPP协议接收写入数据量对应的数据信息,并存入临时数据缓存区;
S82、采用写入数据量、已写入量、写入数据分块大小和外部存储器对应的扇区大小,计算当次在线写入的本轮写入数据量;
S83、采用起始写入扇区号、扇区写入偏移、已写入量和外部存储器对应的扇区大小,计算写入扇区地址;
S84、采用扇区写入偏移、已写入量和外部存储器对应的扇区大小,计算写入扇区偏移;
S85、根据临时数据缓存区获取写入数据量对应的数据信息,按照预设顺序从外部存储器对应的写入扇区地址对应的写入扇区偏移开始执行写入操作,生成本轮已写入量;
S86、采用本轮写入数据量和本轮已写入量,计算新的已写入量,生成更新已写入量;
S87、跳转执行采用写入数据量、已写入量、写入数据分块大小和外部存储器对应的扇区大小,计算当次在线写入的本轮写入数据量的步骤,直至写入数据量等于预设写入阈值,生成写入操作完成信息。
需要说明的是,预设写入阈值为0。
在本发明实施例中,计算当次在线写入的“本轮写入数据量”,如果“本轮写入数据量”等于0,则完成在线写入,结束并返回“成功”结果代码。其中“本轮写入数据量”的计算公式如下:
“本轮写入数据量”=min(min((“写入数据量”-“已写入量”),“分块大小”),“外置Flash存储器扇区大小”)
通过蓝牙SPP协议接收“写入数据量”大小的数据,并存入“临时数据缓存区”。
计算“写入扇区地址”,计算公式如下:
*定义“/”为整除运算符
“写入扇区地址”=起始写入扇区号+(“扇区写入偏移”+“已写入量”)/“外置Flash存储器扇区大小”
计算“写入扇区偏移”,计算公式如下:
*定义“%”为求余运算符
“写入扇区偏移”=(“扇区写入偏移”+“已写入量”)%“外置Flash存储器扇区大小”
从“临时数据缓存区”读取数据,从“外部Flash存储器”的“写入扇区地址”的“写入扇区偏移”开始,写入“写入数据量”个字节的数据到“外部Flash存储器”,生成本轮已写入量。
更新“已写入量”,并继续执行步骤S81,其中更新的“已写入量”的计算公式如下:
“已写入量”=“本轮已写入量”+“本轮写入数据量”。
本发明通过响应接收到的电缆监测设备固件升级请求,获取电缆监测设备固件升级请求对应的电缆监测设备固件信息;读取电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果;根据读取结果执行启动选项记录对应的启动标志的更新操作,生成目标启动选项记录;跳转至用户固件,并按照目标启动选项记录对用户固件执行固件升级操作,生成目标监测设备固件。解决了现有技术通常是工作人员前往电缆监测设备处进行固件更新,但采用上述方式时,有部分电缆监测设备为应对恶劣环境,采用全密封式的结构,导致无法进行近端的非接触式固件更新的技术问题。本发明通过考虑多种固件设备更新情况,解决了电缆监测设备非接触式的固件更新问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种电缆监测设备固件升级方法,其特征在于,包括:
响应接收到的电缆监测设备固件升级请求,获取所述电缆监测设备固件升级请求对应的电缆监测设备固件信息;
读取所述电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果;
根据读取结果执行所述启动选项记录对应的启动标志的更新操作,生成目标启动选项记录;
跳转至用户固件,并按照所述目标启动选项记录对所述用户固件执行固件升级操作,生成目标监测设备固件。
2.根据权利要求1所述的电缆监测设备固件升级方法,其特征在于,所述启动选项记录包括主启动选项记录和从启动选项记录;所述读取所述电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果的步骤,包括:
读取所述电缆监测设备固件信息对应的监测设备固件的外部存储器中的主启动选项记录和从启动选项记录,并存储至微控制单元,生成存储信息;其中,所述存储信息包括存储成功信息和存储失败信息;
获取所述主启动选项记录的第一校验码,并判断所述第一校验码是否与所述主启动选项记录对应的第一数据项校验码一致;
若所述第一校验码与所述第一数据项校验码一致,则确定所述主启动选项记录的记录数据完整,并获取所述从启动选项记录的第二校验码;
判断所述第二校验码是否与所述从启动选项记录对应的第二数据项校验码一致;
若所述第二校验码与所述第二数据项校验码一致,则判定所述启动选项记录读取成功,生成存储成功信息;
若所述第二校验码与所述第二数据项校验码不一致,则通过所述外部存储器擦除所述从启动选项记录,并将所述微控制单元暂存的主启动选项记录写入所述外部存储器,生成更新从启动选项记录;
若所述第一校验码与所述第一数据项校验码不一致,则获取所述从启动选项记录的第二校验码,并判断所述第二校验码是否与所述从启动选项记录对应的第二数据项校验码一致;
若所述第二校验码与所述第二数据项校验码一致,则通过所述外部存储器擦除所述主启动选项记录,并将所述微控制单元暂存的从启动选项记录写入所述外部存储器,生成更新主启动选项记录;
若所述第二校验码与所述第二数据项校验码不一致,则判定所述启动选项记录读取失败,生成存储失败信息。
3.根据权利要求2所述的电缆监测设备固件升级方法,其特征在于,所述启动选项记录还包括缓存启动选项记录;所述根据读取结果执行所述启动选项记录对应的启动标志的更新操作,生成目标启动选项记录的步骤,包括:
根据读取结果复制所述主启动选项记录,并输入所述缓存启动选项记录;
当设置所述缓存启动选项记录中的启动标志的预设数值为第零数值时,则获取所述主启动选项记录对应的启动标志的预设数值;
当所述预设数值为第四数值时,则执行更新MCU用户固件操作,并传入所述缓存启动选项记录的升级固件入口地址;
判断所述更新MCU用户固件操作是否更新成功;
若更新成功,则生成第一目标固件,并将所述缓存启动选项记录中的用户固件入口地址和备份固件入口地址进行交换;
复制所述外部存储器的第一目标固件对应的固件数据,并按照所述用户固件入口地址输入所述外部存储器;
若更新失败,则执行所述启动选项记录对应的启动标志的更新操作,生成第一更新启动选项记录。
4.根据权利要求3所述的电缆监测设备固件升级方法,其特征在于,所述执行更新MCU用户固件操作的步骤,具体包括:
接收所述缓存启动选项记录的升级固件入口地址;
读取所述升级固件入口地址对应的待升级固件的固件头部信息,计算所述固件头部信息对应的第三校验码,并判断所述第三校验码是否与所述固件头部信息的第三数据项校验码一致;
若不一致,则生成无效固件头部信息;
若一致,则根据所述升级固件入口地址分块读取所述待升级固件对应的固件数据,并累计计算各个所述固件数据对应的第四校验码;
判断所述第四校验码是否与所述固件数据的数据项校验码一致;
若不一致,则生成无效固件信息;
若一致,则分块读取并计算内部存储器中的用户固件的第五校验码,并判断所述第五校验码是否与所述固件数据的数据项校验码一致;
若一致,则确定固件升级成功;
擦除所述内部存储器中的用户固件信息,并复制所述外部存储器中的固件数据,输入所述内部存储器。
5.根据权利要求4所述的电缆监测设备固件升级方法,其特征在于,还包括:
当所述预设数值为第一数值时,则执行所述更新MCU用户固件操作,并传入所述缓存启动选项记录的用户固件入口地址;
执行所述启动选项记录对应的启动标志的更新操作,生成第二更新启动选项记录;
当所述预设数值为第二数值时,则执行所述更新MCU用户固件操作,并传入所述缓存启动选项记录的固件升级程序入口地址;
执行所述启动选项记录对应的启动标志的更新操作,生成第三更新启动选项记录;
当所述预设数值为第五数值时,则执行所述更新MCU用户固件操作,并传入所述缓存启动选项记录的临时固件入口地址;
执行所述启动选项记录对应的启动标志的更新操作,生成第四更新启动选项记录。
6.根据权利要求4所述的电缆监测设备固件升级方法,其特征在于,还包括:
当所述预设数值为第三数值时,则执行所述更新MCU用户固件操作,并传入所述缓存启动选项记录的工厂固件入口地址;
判断所述更新MCU用户固件操作是否更新成功;
若更新成功,则生成第二目标固件;
设所述缓存启动选项记录中的启动标志对应的启动工厂固件的预设数值为第六数值;
若更新失败,则执行所述启动选项记录对应的启动标志的更新操作,生成第五更新启动选项记录。
7.根据权利要求4所述的电缆监测设备固件升级方法,其特征在于,所述执行所述启动选项记录对应的启动标志的更新操作,生成第一更新启动选项记录的步骤,包括:
擦除所述外部存储器对应的主启动选项记录的主启动指定扇区,并将所述缓存启动选项记录写入所述主启动指定扇区;
擦除所述外部存储器对应的从启动选项记录的从启动指定扇区,并将所述缓存启动选项记录写入所述从启动指定扇区,生成第一更新启动选项记录。
8.根据权利要求1所述的电缆监测设备固件升级方法,其特征在于,所述跳转至用户固件,并按照所述目标启动选项记录对所述用户固件执行固件升级操作,生成目标监测设备固件的步骤,还包括:
跳转至用户固件,当所述用户固件为固件升级程序时,初始化MCU用户固件、外部存储器和蓝牙适配器,并启动蓝牙热点;
实时监听是否接收到蓝牙设备连接请求;
若是,则连接所述蓝牙设备连接请求对应的蓝牙设备,并通过蓝牙SPP协议,接收所述蓝牙设备传送的指令;
通过指令解析器对所述指令进行解析;
当所述指令为普通指令时,则按照所述普通指令对应的指令信息执行相应的指令操作,生成执行结果;
跳转执行至所述实时监听是否接收到蓝牙设备连接请求的步骤;
当所述指令为重启指令时,则根据所述重启指令跳转执行所述读取所述电缆监测设备固件信息对应的监测设备固件的启动选项记录,生成读取结果的步骤;
按照所述目标启动选项记录对所述用户固件执行固件升级操作,生成目标监测设备固件。
9.根据权利要求8所述的电缆监测设备固件升级方法,其特征在于,所述当所述指令为普通指令时,则按照所述普通指令对应的指令信息执行相应的指令操作,生成执行结果的步骤,包括:
当所述指令为普通指令时,则获取所述普通指令对应的指令信息;
当所述指令信息为测试指令时,则按照所述测试指令执行测试操作,生成测试结果,并通过所述蓝牙SPP协议发送所述测试结果,生成测试完成信息;
当所述指令信息为擦除外部存储器对应的存储扇区时,则根据所述指令信息获取起始擦除扇区号和擦除扇区数量;
按照预设顺序从所述起始擦除扇区号对应的所述外部存储器的存储扇区开始执行擦除操作,并统计已擦除扇区数量;
当所述已擦除扇区数量等于所述擦除扇区数量时,则停止擦除操作,并生成擦除操作完成信息;
通过所述蓝牙SPP协议发送所述擦除操作完成信息;
当所述指令信息为写入外部存储器时,则根据所述指令信息获取起始写入扇区号、扇区写入偏移和写入数据量;
按照所述起始写入扇区号、所述扇区写入偏移和所述写入数据量执行所述写入外部存储器的写入操作,生成写入操作完成信息;
通过所述蓝牙SPP协议发送所述擦除操作完成信息;
当所述指令信息为读取外部存储器时,则根据所述指令信息获取起始读取扇区号、扇区读取偏移和读取数据量;
按照所述起始读取扇区号、所述扇区读取偏移和所述读取数据量执行所述读取外部存储器的读取操作,生成读取操作完成信息;
通过所述蓝牙SPP协议发送所述读取操作完成信息。
10.根据权利要求9所述的电缆监测设备固件升级方法,其特征在于,所述按照所述起始写入扇区号、所述扇区写入偏移和所述写入数据量执行所述写入外部存储器的写入操作,生成写入操作完成信息的步骤,包括:
通过所述蓝牙SPP协议接收所述写入数据量对应的数据信息,并存入临时数据缓存区;
采用所述写入数据量、已写入量、写入数据分块大小和所述外部存储器对应的扇区大小,计算当次在线写入的本轮写入数据量;
采用所述起始写入扇区号、所述扇区写入偏移、所述已写入量和所述外部存储器对应的扇区大小,计算写入扇区地址;
采用所述扇区写入偏移、所述已写入量和所述外部存储器对应的扇区大小,计算写入扇区偏移;
根据所述临时数据缓存区获取所述写入数据量对应的数据信息,按照预设顺序从所述外部存储器对应的写入扇区地址对应的写入扇区偏移开始执行写入操作,生成本轮已写入量;
采用所述本轮写入数据量和所述本轮已写入量,计算新的已写入量,生成更新已写入量;
跳转执行所述采用所述写入数据量、已写入量、写入数据分块大小和所述外部存储器对应的扇区大小,计算当次在线写入的本轮写入数据量的步骤,直至所述写入数据量等于预设写入阈值,生成写入操作完成信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310588015.3A CN116302011B (zh) | 2023-05-24 | 2023-05-24 | 一种电缆监测设备固件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310588015.3A CN116302011B (zh) | 2023-05-24 | 2023-05-24 | 一种电缆监测设备固件升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116302011A true CN116302011A (zh) | 2023-06-23 |
CN116302011B CN116302011B (zh) | 2023-08-18 |
Family
ID=86826222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310588015.3A Active CN116302011B (zh) | 2023-05-24 | 2023-05-24 | 一种电缆监测设备固件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302011B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116647831A (zh) * | 2023-07-25 | 2023-08-25 | 南京麦豆健康科技有限公司 | 一种基于蓝牙的设备管理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650662A (zh) * | 2009-08-26 | 2010-02-17 | 中兴通讯股份有限公司 | 一种嵌入式系统的存储器件、固件启动及升级方法 |
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
CN110673862A (zh) * | 2019-08-15 | 2020-01-10 | 广州中海达定位技术有限公司 | 兼用多模式的嵌入式设备固件无线升级方法、设备、介质 |
CN112947977A (zh) * | 2021-01-26 | 2021-06-11 | 上海船舶运输科学研究所 | 一种软件在线升级方法及系统 |
US20210279048A1 (en) * | 2020-03-09 | 2021-09-09 | Realtek Semiconductor Corp. | System capable of upgrading firmware in background and method for upgrading firmware in background |
WO2022198973A1 (zh) * | 2021-03-26 | 2022-09-29 | 山东英信计算机技术有限公司 | 一种服务器固件自恢复系统及服务器 |
CN115167903A (zh) * | 2022-07-28 | 2022-10-11 | 苏州浪潮智能科技有限公司 | 双BMC Flash优化升级方法、装置、设备、介质 |
CN115993985A (zh) * | 2022-12-27 | 2023-04-21 | 知行汽车科技(苏州)股份有限公司 | Bootloader更新方法、装置、设备及介质 |
-
2023
- 2023-05-24 CN CN202310588015.3A patent/CN116302011B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650662A (zh) * | 2009-08-26 | 2010-02-17 | 中兴通讯股份有限公司 | 一种嵌入式系统的存储器件、固件启动及升级方法 |
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
CN110673862A (zh) * | 2019-08-15 | 2020-01-10 | 广州中海达定位技术有限公司 | 兼用多模式的嵌入式设备固件无线升级方法、设备、介质 |
US20210279048A1 (en) * | 2020-03-09 | 2021-09-09 | Realtek Semiconductor Corp. | System capable of upgrading firmware in background and method for upgrading firmware in background |
CN112947977A (zh) * | 2021-01-26 | 2021-06-11 | 上海船舶运输科学研究所 | 一种软件在线升级方法及系统 |
WO2022198973A1 (zh) * | 2021-03-26 | 2022-09-29 | 山东英信计算机技术有限公司 | 一种服务器固件自恢复系统及服务器 |
CN115167903A (zh) * | 2022-07-28 | 2022-10-11 | 苏州浪潮智能科技有限公司 | 双BMC Flash优化升级方法、装置、设备、介质 |
CN115993985A (zh) * | 2022-12-27 | 2023-04-21 | 知行汽车科技(苏州)股份有限公司 | Bootloader更新方法、装置、设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116647831A (zh) * | 2023-07-25 | 2023-08-25 | 南京麦豆健康科技有限公司 | 一种基于蓝牙的设备管理方法 |
CN116647831B (zh) * | 2023-07-25 | 2024-02-23 | 南京麦豆健康科技有限公司 | 一种基于蓝牙的设备管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116302011B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027753B (zh) | 车载控制装置、程序更新系统以及保存有程序更新软件的存储介质 | |
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN108646982B (zh) | 一种基于ubifs的数据自动修复方法及装置 | |
US20110004871A1 (en) | Embedded electronic device and firmware updating method thereof | |
CN116302011B (zh) | 一种电缆监测设备固件升级方法 | |
CN110096300B (zh) | 一种fpga程序文件备份管理系统、运行方法及升级方法 | |
TWI421686B (zh) | 資料存取方法與系統、儲存媒體控制器與儲存系統 | |
CN107908417B (zh) | 固件升级方法及电子设备 | |
CN113238771B (zh) | 一种基于安卓系统的fota固件升级方法和装置 | |
CN107566169A (zh) | 一种基于openwrt的固件升级方法及路由器 | |
CN113110860A (zh) | 一种嵌入式终端远程软件更新方法 | |
CN115718610A (zh) | 一种可靠的单片机应用程序更新的方法 | |
TWI493341B (zh) | 記憶體儲存裝置及其修復方法 | |
CN112346770A (zh) | 一种嵌入式程序在线更新方法 | |
CN111290765B (zh) | 一种固件快速烧录方法、系统及存储介质 | |
CN110795155B (zh) | 系统启动方法及装置、电子设备、存储介质 | |
CN113778485A (zh) | 电子芯片的系统运行方法、装置、电子芯片和存储介质 | |
CN111399759B (zh) | 读数据、写数据的方法、以及对象文件系统 | |
US11513792B2 (en) | Tracking history of firmware program updates | |
KR20060068558A (ko) | 휴대 단말기를 위한 펌웨어 업그레이드 방법 | |
CN116225502A (zh) | 一种基于内存重构的嵌入式软件升级方法 | |
CN117492794A (zh) | 固件更新方法和装置 | |
CN117270914B (zh) | 一种终端设备的系统升级方法、装置、设备和介质 | |
US11507385B1 (en) | Embedded electronic device, boot method, and embedded electronic device readable recording medium with stored program | |
KR100640612B1 (ko) | 메인 코드 기입 방법 및 장치 |
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 |