本申请涉及电子,更具体地,涉及一种固件升级方法、装置、芯片、电子设备及存储介质。
背景技术:
1、相关技术中,如果要对芯片(例如单片机)中的固件进行升级,需要芯片通过至少两条数据线与外部设备相连,而实际中,可能存在芯片仅预留一个用于与外部设备相连的端口的情况,按照相关技术的固件升级方式,无法在芯片与外部设备通过单根数据线连接的情况下对固件进行升级。
技术实现思路
1、鉴于上述问题,本申请实施例提出了一种固件升级方法、装置、芯片、电子设备及存储介质,以解决相关技术中无法在芯片与外部设备通过单根数据线连接的情况下对固件进行升级。
2、根据本申请实施例的一个方面,提供了一种固件升级方法,用于对芯片中的存储器中的固件进行升级,所述芯片包括单线端口,所述芯片通过所述单线端口与外部设备建立单线的有线连接;所述方法包括:在运行所述存储器中的启动加载程序的过程中,若检测到所述存储器中的固件需要升级,开启所述单线端口的发送使能,并向所述外部设备发送升级数据获取请求;在发送所述升级数据获取请求后,通过所述单线端口接收所述外部设备响应所述升级数据获取请求返回的升级数据包;根据所述升级数据包,对所述存储器中的固件进行升级。
3、根据本申请实施例的一个方面,提供了一种固件升级装置,用于对芯片中的存储器中的固件进行升级,所述芯片包括单线端口,所述芯片通过所述单线端口与外部设备建立单线的有线连接;所述装置包括:发送模块,用于在运行所述存储器中的启动加载程序的过程中,若检测到所述存储器中的固件需要升级,开启所述单线端口的发送使能,并向所述外部设备发送升级数据获取请求;接收模块,用于在发送所述升级数据获取请求后,通过所述单线端口接收所述外部设备响应所述升级数据获取请求返回的升级数据包;升级模块,用于根据所述升级数据包,对所述存储器中的固件进行升级。
4、在一些实施例中,所述存储器中设有应用存储区和备份存储区,所述固件存储在所述应用存储区;在本实施例中,升级模块,包括:
5、校验单元,用于对所述升级数据包进行数据校验;
6、存储单元,用于若所述升级数据包校验通过,将所述升级数据包中的升级数据存储到所述备份存储区;
7、写入单元,用于若所述固件的固件升级数据对应的全部升级数据包均被接收到,且全部升级数据包均校验通过,将所述备份存储区中的升级数据写入所述应用存储区,以升级所述应用存储区中的固件。
8、在一些实施例中,固件升级装置还包括:
9、累计模块,用于对校验不通过的升级数据包进行出错次数累计;
10、提示信息生成模块,用于若累计的出错次数达到次数阈值,向所述外部设备发送升级失败提示信息。
11、在一些实施例中,固件升级装置还包括:
12、有效性验证模块,用于在运行所述存储器中的启动加载程序的过程中,若确定需要运行所述存储器中的固件,验证所述存储器中的固件的有效性;
13、固件运行模块,用于若确定所述存储器中的固件有效,运行所述固件。
14、在一些实施例中,所述固件存储于所述存储器中的应用存储区;在本实施例中,有效性验证模块,包括:
15、获取单元,用于获取所述应用存储区的首地址,以及获取所述应用存储区中的第二个地址;
16、有效确定单元,用于若所述应用存储区的首地址指向的数据位于处理器中的随机存取存储器,且所述应用存储区中的第二个地址指向的数据位于所述存储器中,则确定所述应用存储区中的固件有效。
17、在一些实施例中,所述存储器存储了状态标识,若所述状态标识为第一状态标识,确定所述存储器中的固件需要升级;若所述状态标识为第二状态标识,确定需要运行所述存储器中的固件。
18、在一些实施例中,固件升级装置还包括:状态标识更新模块,用于在运行所述固件的过程中,若接收到固件更新命令,将所述存储器中存储的状态标识更新为所述第一状态标识。
19、在一些实施例中,固件升级装置还包括:
20、地址映射修改模块,用于修改所述存储器对应的地址映射,以将所述存储器中启动加载程序所在的地址映射到指定内存地址,芯片中的处理器在上电或复位后从所述指定内存地址开始执行;
21、运行模块,用于基于修改后所述存储器对应的地址映射,运行所述启动加载程序。
22、在一些实施例中,固件升级装置还包括:
23、固件升级请求发送模块,用于在运行所述存储器中的启动加载程序的过程中,若所述存储器中存储的状态标识为除所述第一状态标识和所述第二状态标识外的其他状态标识,开启所述单线端口的发送使能,并向所述外部设备发送固件升级请求;
24、使能切换模块,用于在发送所述固件升级请求后,关闭所述单线端口的发送使能,并打开所述单线端口的接收使能;
25、若在打开所单线端口的接收使能后接收到所述外部设备响应所述固件升级请求返回的请求应答包,执行所述开启所述单线端口的发送使能,并向所述外部设备发送升级数据获取请求的步骤。
26、根据本申请实施例的一个方面,提供了一种芯片,所述芯片包括存储器和单线端口,所述芯片通过单线端口与外部设备建立单线的有线连接,所述芯片按照如上的固件升级方法对所述存储器中的固件进行升级。
27、根据本申请实施例的一个方面,提供了一种电子设备,包括如上的芯片。
28、根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被处理器执行时,实现如上所述的固件升级方法。
29、根据本申请实施例的一个方面,提供了一种计算机程序产品,其包括计算机指令,所述计算机指令被处理器执行时实现如上的固件升级方法。
30、在本申请中,利用芯片的存储器中的引导加载程序,实现从运行引导加载程序跳转到对固件进行升级,即在运行引导加载程序的过程中,在读取到存储器中的状态标识为指示固件需要升级的第一状态标识的情况下,利用芯片与外部设备之间的单线的有线连接,向外部设备请求固件的固件升级数据,以对芯片中的固件进行升级。而且,在利用芯片与外部设备之间的单线的有线连接进行交互的过程中,同一时间芯片中单线端口的发送使能和接收使能仅一个可用,这样,保证在同一时间,芯片要么接收数据,要么发送数据,而不会存在既发送数据又接收数据的情况,从而可以有效避免芯片与外部设备交互过程中的数据冲突的问题,进而保证芯片所接收到的升级数据包的准确性。采用本申请的方案,可以有效解决相关技术中在单数据线的情况下无法对芯片中的固件进行升级的问题。
1.一种固件升级方法,其特征在于,用于对芯片中的存储器中的固件进行升级,所述芯片包括单线端口,所述芯片通过所述单线端口与外部设备建立单线的有线连接;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述存储器中设有应用存储区和备份存储区,所述固件存储在所述应用存储区;
3.根据权利要求2所述的方法,其特征在于,所述对所述升级数据包进行数据校验之后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述固件存储于所述存储器中的应用存储区;
6.根据权利要求4或5所述的方法,其特征在于,所述存储器存储了状态标识,若所述状态标识为第一状态标识,确定所述存储器中的固件需要升级;若所述状态标识为第二状态标识,确定需要运行所述存储器中的固件。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述在运行所述固件的过程中,若接收到固件更新命令,将所述存储器中存储的状态标识更新为所述第一状态标识之后,所述方法还包括:
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
10.一种固件升级装置,其特征在于,用于对芯片中的存储器中的固件进行升级,所述芯片包括单线端口,所述芯片通过所述单线端口与外部设备建立单线的有线连接;所述装置包括:
11.一种芯片,其特征在于,所述芯片包括存储器和单线端口,所述芯片通过单线端口与外部设备建立单线的有线连接,所述芯片按照如权利要求1至9中任一项所述的方法对所述存储器中的固件进行升级。
12.一种电子设备,其特征在于,包括如权利要求10所述的芯片。
13.一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,当所述计算机可读指令被处理器执行时,实现如权利要求1至9中任一项所述的方法。