CN116360832A - 单片机的升级方法和相关设备 - Google Patents
单片机的升级方法和相关设备 Download PDFInfo
- Publication number
- CN116360832A CN116360832A CN202111616601.1A CN202111616601A CN116360832A CN 116360832 A CN116360832 A CN 116360832A CN 202111616601 A CN202111616601 A CN 202111616601A CN 116360832 A CN116360832 A CN 116360832A
- Authority
- CN
- China
- Prior art keywords
- storage area
- singlechip
- upgrading
- target storage
- chip microcomputer
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 27
- 238000013515 script Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000005291 magnetic effect Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种单机片的升级方法和相关设备,该方法包括:下载单片机的升级数据;在各个第一存储区域中确定目标存储区域,其中,目标存储区域是未被激活的第一存储区域,单片机根据激活的第一存储区域中的版本数据运行;将升级数据写入至目标存储区域,升级数据为目标存储区域的版本数据;根据目标存储区域中的版本数据升级单片机。在本发明中,单片机设有至少两个存储区域,在单片机升级时,将升级数据刷写至未被激活的存储区域,而保留激活的存储区域的版本数据,若单片机采用目标存储区域的版本数据升级失败后,能够采用激活的存储区域中的版本数据运行,避免单片机升级后出现无法正常运行的问题。
Description
技术领域
本发明涉及单片机升级技术领域,尤其涉及一种单片机的升级方法和相关设备。
背景技术
车辆的FOTA(Firmware Over-The-Air,移动终端的空中下载软件升级)方案可以实现车辆中单片机的软件版本升级,给用户带来更好的用户体验。
单片机在升级过程中,由于网络环境和电源干扰等外界因素影响,有可能出现升级失败。但单片机的原系统数据已擦除,新系统数据又没有正确写入,导致单片机升级后出现无法正常运行的问题。
发明内容
本发明提供一种单片机的升级方法和相关设备,用以解决单片机升级后出现无法正常运行的问题。
一方面,本发明提供一种单机片的升级方法,应用于单片机,所述单片机设置至少两个第一存储区域,每个所述第一存储区域存储有软件版本的版本数据,所述单片机的升级方法包括:
下载所述单片机的升级数据;
在各个所述第一存储区域中确定目标存储区域,其中,所述目标存储区域是未被激活的第一存储区域,所述单片机根据激活的第一存储区域中的版本数据运行;
将所述升级数据写入至所述目标存储区域,所述升级数据为所述目标存储区域的版本数据;
根据所述目标存储区域中的版本数据升级所述单片机。
在一实施例中,所述根据所述目标存储区域中的版本数据升级所述单片机的步骤之后,还包括:
将当前激活的第一存储区域的状态设置为未激活状态,且将所述目标存储区域的状态设置为激活状态,并重启所述单片机;
在所述单片机重启时,从第二存储区域中获取主启动参数;
根据所述主启动参数以及所述目标存储区域中的版本数据启动所述单片机。
在一实施例中,所述根据所述主启动参数以及所述目标存储区域中的版本数据启动所述单片机的步骤包括:
校验所述主启动参数是否有效;
在校验所述主启动参数有效时,根据所述主启动参数以及所述目标存储区域中的版本数据启动所述单片机。
在一实施例中,所述校验所述主启动参数是否有效的步骤包括之后,还包括:
在校验所述主启动参数无效时,从第三存储区域中获取备用启动参数;
校验所述备用启动参数是否有效;
在校验所述备用启动参数有效时,将所述备用启动参数写入至所述第二存储区域作为主启动参数,并根据所述备用启动参数以及所述目标存储区域中的版本数据启动所述单片机。
在一实施例中,所述校验所述备用启动参数是否有效的步骤之后,还包括:
在校验所述备用启动参数无效时,获取默认启动参数;
将所述默认启动参数写入至所述第二存储区域作为主启动参数,且将所述默认启动参数写入至所述第三存储区域作为备用启动参数;
重启所述单片机,并返回执行所述在所述单片机重启时,从第二存储区域中获取主启动参数的步骤。
在一实施例中,所述在重启所述单片机的步骤包括:
更新失败重启的次数,并重启所述单片机,所述默认启动参数被写入至所述第二存储区域时,所述单片机重启失败;
所述在所述单片机重启时,从第二存储区域中获取主启动参数的步骤包括:
在所述单片机重启时,获取所述次数;
在所述次数未达到预设次数时,从所述第二存储区域中获取主启动参数。
在一实施例中,所述根据所述主启动参数以及所述目标存储区域中的版本数据启动所述单片机的步骤之后,还包括:
在所述单片机未启动成功时,将所述目标存储区域的状态设置为未激活状态,并将第四存储区域的状态设置为激活状态,且重启所述单片机,其中,所述第四存储区域是所述单片机升级前激活的第一存储区域;
在所述单片机重启时,从第二存储区域中获取主启动参数;
根据所述主启动参数以及所述第四存储区域中的版本数据启动所述单片机。
在一实施例中,所述下载所述单片机的升级数据的步骤之前,还包括:
在所述单片机的存储区域中划分多个第一存储区域;
对每个所述第一存储区域设置对应的物理地址,并设置所述物理地址对应的第一存储区域的写入脚本;
所述将所述升级数据刷写至所述目标存储区域作为所述目标存储区域的版本数据的步骤包括:
控制所述目标存储区域对应的写入脚本,将所述升级数据写入至所述目标存储区域。
另一方面,本发明还提供一种单片机,包括:
下载模块,用于下载所述单片机的升级数据;
确定模块,用于在各个所述第一存储区域中确定目标存储区域,其中,所述目标存储区域是未被激活的第一存储区域,所述单片机根据激活的第一存储区域中的版本数据运行;
写入模块,用于将所述升级数据写入至所述目标存储区域,所述升级数据为所述目标存储区域的版本数据;
升级模块,用于根据所述目标存储区域中的版本数据升级所述单片机。
另一方面,本发明还提供一种单片机,包括:至少两个第一存储区域、第五存储区域以及处理器;
所述第一存储区域用于存储版本数据;
所述第五存储区域存储计算机执行指令;
所述处理器执行所述第五存储区域存储的计算机执行指令,使得所述处理器执行如上所述的单片机的升级方法。
另一方面,本发明还提供一种车辆,包括:单片机、存储器以及处理器;
所述单片机设置至少两个第一存储区域,每个所述第一存储区域存储有软件版本的版本数据;
所述存储器存储有存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如上所述的单片机的升级方法。
另一方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的单片机的升级方法。
本发明提供的单片机的升级方法和相关设备,单片机设置至少两个存储区域,每个存储区域存储有软件版本的版本数据,单片机在升级数据后,在各个存储区域中确定未被激活的存储区域作为目标存储区域,将升级数据刷写至目标存储区域中作为目标存储区域的版本信息,最后基于目标存储区域中的版本升级数据升级单片机。在本发明中,单片机设有至少两个存储区域,在单片机升级时,将升级数据刷写至未被激活的存储区域,而保留激活的存储区域的版本数据,若单片机采用目标存储区域的版本数据升级失败后,能够采用激活的存储区域中的版本数据运行,避免单片机升级后出现无法正常运行的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本发明实现单片机的升级方法的系统构架图;
图2为本发明单片机的升级方法第一实施例的流程示意图;
图3为本发明单片机的升级方法第二实施例的流程示意图;
图4为本发明单片机的升级方法第三实施例中步骤S70的细化流程示意图;
图5为本发明单片机的升级方法第四实施例的流程示意图;
图6为本发明单片机/车辆的模块示意图;
图7为本发明单片机的硬件结构示意图;
图8为本发明车辆的硬件结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本发明提供一种单片机的升级方法,可以通过图1所示的系统构架图实现。如图1所示,单片机100设有存储空间110,且单片机100的存储空间110包括至少两个存储区域111。每个存储区域111存储有单片机100的软件版本的版本数据。存储区域111可设置状态,状态为激活状态或者未激活状态。若是存储区域111的状态是激活状态时,则单片机100采用激活状态的存储区域111中的版本数据运行。激活状态的存储区域111有且只有一个。单片机100在下载升级数据进行升级时,将升级数据刷写至未激活状态的存储区域111中,使得单片机100仍然保留激活状态的存储区域111中的版本数据。若是单片机100采用写入至存储区域111的升级数据升级失败后,可以通过其他存储区域111的版本数据运行,避免单片机100升级失败后无法正常运行。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
参照图2,图2为本发明单片机的升级方法的第一实施例,单片机的升级方法包括以下步骤:
步骤S10,下载单片机的升级数据。
在本实施例中,执行主体是单片机或者单片机所在的车辆。以下以单片机作为执行主体对本实施例的技术方案进行详细说明。
单片机设置有至少两个的存储区域,该存储区域定义为第一存储区域。每个第一存储区域中存储有软件版本的版本数据。不同第一存储区域中存储的版本数据可以是相同软件版本的版本数据,也可以是不同软件版本的版本数据。单片机下载自身升级所需的升级数据,升级数据可以从服务器下载。
步骤S20,在各个第一存储区域中确定目标存储区域,目标存储区域是未被激活的第一存储区域,单片机根据激活的第一存储区域中的版本数据运行。
每个第一存储区域设置有状态。状态包括激活状态以及未激活状态。激活状态的第一存储区域中的版本数据被单片机使用,也即单片机基于激活的第一存储区域的版本数据运行。单片机不会通过未激活状态的第一存储区域的版本数据运行。激活状态的第一存储区域有且只有一个。
在需要升级单片机后,单片机在各个第一存储区域中确定目标存储区域,目标存储区域是任一个未被激活的第一存储区域,也即目标存储区域是未激活状态的第一存储区域。
步骤S30,将升级数据写入至目标存储区域,升级数据为目标存储区域的版本数据。
未被激活的第一存储区域的版本数据未被单片机使用,因而可以将升级数据写入至目标存储区域。单片机将升级数据写入至目标存储区域,也即升级数据将目标存储区域原本的版本数据进行覆盖,使得升级数据作为目标存储区域中新的版本数据。
步骤S40,根据目标存储区域中的版本数据升级单片机。
单片机在需要升级时,即可通过目标存储区域中的版本数据进行升级。
在本实施例提供的技术方案中,单片机设置至少两个存储区域,每个存储区域存储有软件版本的版本数据,单片机在升级数据后,在各个存储区域中确定未被激活的存储区域作为目标存储区域,将升级数据刷写至目标存储区域中作为目标存储区域的版本信息,最后基于目标存储区域中的版本升级数据升级单片机。在本发明中,单片机设有至少两个存储区域,在单片机升级时,将升级数据刷写至未被激活的存储区域,而保留激活的存储区域的版本数据,若单片机采用目标存储区域的版本数据升级失败后,能够采用激活的存储区域中的版本数据运行,避免单片机升级后出现无法正常运行的问题。
参照图3,图3为本发明单片机的升级方法第二实施例,基于第一实施例,步骤S40之后,包括:
步骤S50,将当前激活的第一存储区域的状态设置为未激活状态,且将目标存储区域的状态设置为激活状态,并重启单片机。
在本实施例中,单片机升级后,需要进行重启使得单片机运行更新的版本数据。
单片机将当前激活的第一存储区域的状态由激活状态设置为未激活状态,也即单片机重启后不再启用之前版本的版本数据运行。单片机再将目标存储区域的状态设置为激活状态,使得单片机重启后能够启用最新版本的版本数据运行。在将目标存储区域的状态设置后,单片机再进行重启。
步骤S60,在单片机重启时,从第二存储区域中获取主启动参数。
在单片机重启时,需要基于启动参数运行单片机的启动系统,启动系统启动后,单片机启动成功。单片机中设置有第二存储区域,第二存区域中设置有启动参数,该启动参数定义为主启动参数。单片机中还设有第三存储区域,第三存储区域中设有备用启动参数。备用启动参数与主启动参数是相同的。在单片机启动时,单片机默认从第二存储区域中获取主启动参数。
步骤S70,根据主启动参数以及目标存储区域中的版本数据启动单片机。
每个第一存储区域中设置有启动系统,启动系统通过第一存储区域的版本数据以及主启动参数启动。对此,装置基于主启动参数以及激活状态的目标存储区域的版本数据启动启动系统,从而启动单片机。
在本实施例提供的技术方案中,单片机将当前激活的第一存储区域的状态设置为未激活状态,且将目标存储区域的状态设置为激活状态,并重启单片机,在单片机重启时,从第二存储区域中获取主启动参数,从而根据主启动参数以及目标存储区域的版本数据启动单片机,使得重启后的单片机以新的软件版本运行。
参照图4,图4为本发明单片机的升级方法第三实施例,基于第二实施例,步骤S70包括:
步骤S71,校验主启动参数是否有效。
在本实施例中,随着单片机的使用,主启动参数可能会失效。失效原因可以是单片机频繁刷写数据导致主启动参数被更改。单片机在获得主启动参数后,会对主启动参数进行校验,也即校验主启动参数是否有效。校验方式可以是校验主启动参数的格式是否是预设格式。
步骤S72,在校验主启动参数有效时,根据主启动参数以及目标存储区域中的版本数据启动单片机。
在校验主启动参数有效时,即可确定单片机使用主启动参数能够使得单片机成功启动,单片机即可根据主启动参数以及目标存储区域的版本数据启动单片机。
在校验主启动参数无效时,单片机从第三存储区域中获取备用启动参数,再校验备用启动参数是否有效。备用启动参数的校验与主启动参数的校验相同,在此不再进行赘述。若是备用启动参数有效,则将启用启动参数写入至第二存储区域作为主启动参数,使得单片机在下次启动时,可采用第二存储区域的主启动参数启动单片机。此时,单片机可以根据备用启动参数以及目标存储区域的版本数据启动单片机。
单片中还设置有默认启动参数,默认启动参数可以是单片机出厂设置的。若是备用启动参数无效时,获取默认启动参数,且将默认启动参数写入第二存储区域作为主启动参数,且将默认启动参数写入至第三存储区域作为备用启动参数。第二存储区域以及第三存储区域原本的启动参数被默认启动参数覆盖。单片机在进行重启,从而返回执行在单片机重启是从第二存储区域获取主启动参数的步骤,也即基于第二存储区域中新的主启动参数以及目标存储区域中的版本数据成功启动单片机。
需要说明的是,在默认启动参数被写入至第二存储区域以及第三存储区域时,即可确定单片机重启失败,此时,单片机更新失败重启的次数,再重启单片机。在单片机重启时,获取单片机所存储的次数。若是次数未达到预设次数时,单片机仍可进行启动,也即从第二存储区域中获取主启动参数,通过主启动参数以及目标存储区域中的版本数据启动单片机。若是次数达到预设次数,可能是启动参数出现了问题,单片机多次重启无法启动成功,此时,禁止单片机启动,进入死锁循环,且输出单片机启动故障的提示信息。
若是次数达到预设次数,可能是下载的升级数据出现问题,单片机可以通过主启动参数以及保存之前软件版本中的版本数据启动单片机。
在本实施例提供的技术方案中,单片机校验主启动参数是否有效,若主启动参数有效,则基于主启动参数以及目标存储区域中的版本数据启动单片机,避免单片机无法启动。
参照图5,图5为本发明单片机的升级方法第四实施例,基于第二或第三实施例,步骤S70之后,还包括:
步骤S80,在单片机未启动成功时,将目标存储区域的状态设置为未激活状态,并将第四存储区域的状态设置为激活状态,且重启单片机,其中,第四存储区域是单片机升级前激活的第一存储区域。
在本实施例中,单片机未启动成功时,单片机需要切换为原来版本的版本数据,也即采用就系统数据运行。单片机将目标存储区域的状态由激活状态设置为未激活状态,并将第四存储区域的状态设置为激活状态,第四存储区域是单片机升级前的激活的第一存储区域。设置完毕后,单片机进行重启。
步骤S90,在单片机重启时,从第二存储区域中获取主启动参数。
步骤S100,根据主启动参数以及第四存储区域中的版本数据启动单片机。
在单片机重启时,继续从第二存储区域中获取主启动参数。单片机再基于主启动参数以及第四存储区域的版本数据启动单片机,从而使得单片机切换至之前版本。
在本实施例提供的技术方案中,单片机未启动成功时,将目标存储区域的状态设置为未激活状态,且将第四存储区域的状态设置为激活状态,并重启单片机,在单片机重启时,通过主启动参数以及第四存储区域中的版本数据使得单片机切换至升级前的版本,进而使得单片机能够正常运行。
在一实施例中,若单片机不支持虚拟地址访问,编译时必须确定升级数据的物理地址。故而单片机中每第一存储区域的而物理地址必然需要设置为不同,因而需要针对不同的第一存储区域存储不同的软件版本的版本数据。可以设置不同编译器链接脚本分别对应不同的第一存储区域,程序构建的链接阶段分别使用编译器链接脚本进行链接,生成第一存储区域对应的写入脚本,且每个第一存储区域对应一个写入脚本。写入脚本用于将升级数据刷写至写入脚本对应的第一存储区域。在单片机的升级过程中,判断将进行刷写的目标存钱区域,选择目标存储区域对应的写入脚本交升级数据刷写至目标存储区。单片机的一次升级过程中只需要刷写其中一个第一存储区域的版本数据,其他第一存储区域无需进行版本数据的刷写。
对此,在下载单片机的升级数据之前,在单片机的存储区域中划分多个第一存储区域,并对每个第一存储区域设置对应的物理地址,并设置物理地址对应的第一存储区域的写入脚本。在需要将升级数据刷写时,控制目标存储区域对应的写入脚本将升级输入写入至目标存储区域。
本发明还提供一种单片机/车辆,参照图6,单片机600/车辆600包括:
下载模块610,用于下载单片机的升级数据;
确定模块620,用于在各个第一存储区域中确定目标存储区域,其中,目标存储区域是未被激活的第一存储区域,单片机根据激活的第一存储区域中的版本数据运行;
写入模块630,用于将升级数据写入至目标存储区域,升级数据为目标存储区域的版本数据;
升级模块640,用于根据目标存储区域中的版本数据升级单片机。
在一实施例中,单片机600/车辆600包括:
设置模块,用于将当前激活的第一存储区域的状态设置为未激活状态,且将目标存储区域的状态设置为激活状态,并重启单片机;
获取模块,用于在单片机重启时,从第二存储区域中获取主启动参数;
启动模块,用于根据主启动参数以及目标存储区域中的版本数据启动单片机。
在一实施例中,单片机600/车辆600包括:
校验模块,用于校验主启动参数是否有效;
启动模块,用于在校验主启动参数有效时,根据主启动参数以及目标存储区域中的版本数据启动单片机。
在一实施例中,单片机600/车辆600包括:
获取模块,用于在校验主启动参数无效时,从第三存储区域中获取备用启动参数;
校验模块,用于校验备用启动参数是否有效;
写入模块630,用于在校验备用启动参数有效时,将备用启动参数写入至第二存储区域作为主启动参数,并根据备用启动参数以及目标存储区域中的版本数据启动单片机。
在一实施例中,单片机600/车辆600包括:
获取模块,用于在校验备用启动参数无效时,获取默认启动参数;
写入模块630,用于将默认启动参数写入至第二存储区域作为主启动参数,且将默认启动参数写入至第三存储区域作为备用启动参数;
重启模块,用于重启单片机,并返回执行在单片机重启时,从第二存储区域中获取主启动参数的步骤。
在一实施例中,单片机600/车辆600包括:
更新模块,用于更新失败重启的次数,并重启单片机,默认启动参数被写入至第二存储区域时,单片机重启失败;
获取模块,用于在单片机重启时,获取次数;
获取模块,用于在次数未达到预设次数时,从第二存储区域中获取主启动参数。
在一实施例中,单片机600/车辆600包括:
设置模块,用于在单片机未启动成功时,将目标存储区域的状态设置为未激活状态,并将第四存储区域的状态设置为激活状态,且重启单片机,其中,第四存储区域是单片机升级前激活的第一存储区域;
获取模块,用于在单片机重启时,从第二存储区域中获取主启动参数;
启动模块,用于根据主启动参数以及第四存储区域中的版本数据启动单片机。
在一实施例中,单片机600/车辆600包括:
划分模块,用于在单片机的存储区域中划分多个第一存储区域;
设置模块,用于对每个第一存储区域设置对应的物理地址,并设置物理地址对应的第一存储区域的写入脚本;
控制模块,用于控制目标存储区域对应的写入脚本,将升级数据写入至目标存储区域。
图7是根据一示例性实施例示出的一种单片机的硬件结构图。
单片机700可以包括:处理器701,例如CPU,至少两个第一存储区域702、第五存储区域703以及收发器704。本领域技术人员可以理解,图7中示出的结构并不构成对单片机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。第一存储区域702以及第五存储区域703所在的存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器701可以调用第五存储区域703内存储的计算机程序,以完成上述的单片机的升级方法的全部或部分步骤。
收发器704用于接收外部设备发送的信息以及向外部设备发送信息。
一种非临时性计算机可读存储介质,当该存储介质中的指令由单片机的处理器执行时,使得单片机能够执行上述单片机的升级方法。
一种计算机程序产品,包括计算机程序,当该计算机程序由单片机的处理器执行时,使得单片机能够执行上述单片机的升级方法。
图8是根据一示例性实施例示出的一种车辆的硬件结构图。
车辆800可以包括:处理器801,例如CPU,存储器802、收发器803以及单片机804。本领域技术人员可以理解,图8中示出的结构并不构成对车辆的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器801可以调用存储器802内存储的计算机程序,以完成上述的车辆的升级方法的全部或部分步骤。
收发器803用于接收外部设备发送的信息以及向外部设备发送信息。
单片机804中设置至少两个第一存储区域,每个第一存储区域存储有软件版本的版本数据。
一种非临时性计算机可读存储介质,当该存储介质中的指令由车辆的处理器执行时,使得车辆能够执行上述车辆的升级方法。
一种计算机程序产品,包括计算机程序,当该计算机程序由车辆的处理器执行时,使得车辆能够执行上述车辆的升级方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (12)
1.一种单机片的升级方法,应用于单片机,其特征在于,所述单片机设置至少两个第一存储区域,每个所述第一存储区域存储有软件版本的版本数据,所述单片机的升级方法包括:
下载所述单片机的升级数据;
在各个所述第一存储区域中确定目标存储区域,其中,所述目标存储区域是未被激活的第一存储区域,所述单片机根据激活的第一存储区域中的版本数据运行;
将所述升级数据写入至所述目标存储区域,所述升级数据为所述目标存储区域的版本数据;
根据所述目标存储区域中的版本数据升级所述单片机。
2.根据权利要求1所述的单片机的升级方法,其特征在于,所述根据所述目标存储区域中的版本数据升级所述单片机的步骤之后,还包括:
将当前激活的第一存储区域的状态设置为未激活状态,且将所述目标存储区域的状态设置为激活状态,并重启所述单片机;
在所述单片机重启时,从第二存储区域中获取主启动参数;
根据所述主启动参数以及所述目标存储区域中的版本数据启动所述单片机。
3.根据权利要求2所述的单片机的升级方法,其特征在于,所述根据所述主启动参数以及所述目标存储区域中的版本数据启动所述单片机的步骤包括:
校验所述主启动参数是否有效;
在校验所述主启动参数有效时,根据所述主启动参数以及所述目标存储区域中的版本数据启动所述单片机。
4.根据权利要求3所述的单片机的升级方法,其特征在于,所述校验所述主启动参数是否有效的步骤包括之后,还包括:
在校验所述主启动参数无效时,从第三存储区域中获取备用启动参数;
校验所述备用启动参数是否有效;
在校验所述备用启动参数有效时,将所述备用启动参数写入至所述第二存储区域作为主启动参数,并根据所述备用启动参数以及所述目标存储区域中的版本数据启动所述单片机。
5.根据权利要求4所述的单片机的升级方法,其特征在于,所述校验所述备用启动参数是否有效的步骤之后,还包括:
在校验所述备用启动参数无效时,获取默认启动参数;
将所述默认启动参数写入至所述第二存储区域作为主启动参数,且将所述默认启动参数写入至所述第三存储区域作为备用启动参数;
重启所述单片机,并返回执行所述在所述单片机重启时,从第二存储区域中获取主启动参数的步骤。
6.根据权利要求5所述的单片机的升级方法,其特征在于,所述在重启所述单片机的步骤包括:
更新失败重启的次数,并重启所述单片机,所述默认启动参数被写入至所述第二存储区域时,所述单片机重启失败;
所述在所述单片机重启时,从第二存储区域中获取主启动参数的步骤包括:
在所述单片机重启时,获取所述次数;
在所述次数未达到预设次数时,从所述第二存储区域中获取主启动参数。
7.根据权利要求2所述的单片机的升级方法,其特征在于,所述根据所述主启动参数以及所述目标存储区域中的版本数据启动所述单片机的步骤之后,还包括:
在所述单片机未启动成功时,将所述目标存储区域的状态设置为未激活状态,并将第四存储区域的状态设置为激活状态,且重启所述单片机,其中,所述第四存储区域是所述单片机升级前激活的第一存储区域;
在所述单片机重启时,从第二存储区域中获取主启动参数;
根据所述主启动参数以及所述第四存储区域中的版本数据启动所述单片机。
8.根据权利要求1-7任一项所述的单片机的升级方法,其特征在于,所述下载所述单片机的升级数据的步骤之前,还包括:
在所述单片机的存储区域中划分多个第一存储区域;
对每个所述第一存储区域设置对应的物理地址,并设置所述物理地址对应的第一存储区域的写入脚本;
所述将所述升级数据刷写至所述目标存储区域作为所述目标存储区域的版本数据的步骤包括:
控制所述目标存储区域对应的写入脚本,将所述升级数据写入至所述目标存储区域。
9.一种单片机,其特征在于,包括:
下载模块,用于下载所述单片机的升级数据;
确定模块,用于在各个所述第一存储区域中确定目标存储区域,其中,所述目标存储区域是未被激活的第一存储区域,所述单片机根据激活的第一存储区域中的版本数据运行;
写入模块,用于将所述升级数据写入至所述目标存储区域,所述升级数据为所述目标存储区域的版本数据;
升级模块,用于根据所述目标存储区域中的版本数据升级所述单片机。
10.一种单片机,其特征在于,包括:至少两个第一存储区域、第五存储区域以及处理器;
所述第一存储区域用于存储版本数据;
所述第五存储区域存储计算机执行指令;
所述处理器执行所述第五存储区域存储的计算机执行指令,使得所述处理器执行如权利要求1至8任一项所述的单片机的升级方法。
11.一种车辆,其特征在于,包括:单片机、存储器以及处理器;
所述单片机设置至少两个第一存储区域,每个所述第一存储区域存储有软件版本的版本数据;
所述存储器存储有存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至8任一项所述的单片机的升级方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8任一项所述的单片机的升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616601.1A CN116360832A (zh) | 2021-12-27 | 2021-12-27 | 单片机的升级方法和相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616601.1A CN116360832A (zh) | 2021-12-27 | 2021-12-27 | 单片机的升级方法和相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116360832A true CN116360832A (zh) | 2023-06-30 |
Family
ID=86925449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111616601.1A Pending CN116360832A (zh) | 2021-12-27 | 2021-12-27 | 单片机的升级方法和相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116360832A (zh) |
-
2021
- 2021-12-27 CN CN202111616601.1A patent/CN116360832A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110231952B (zh) | 一种ecu程序备份及循环升级控制方法及装置 | |
WO2022007656A1 (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
CN111309364B (zh) | 芯片程序的升级方法、装置及存储介质 | |
KR100506203B1 (ko) | 부팅 및 부트 코드 업데이트 방법 및 시스템 | |
US8136108B2 (en) | Updating firmware with multiple processors | |
JP2000357095A (ja) | 埋込式システムにソフトウェアをダウンロードする方法および装置 | |
CN111240720A (zh) | 引导程序升级方法、装置及存储介质 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
JP2020535504A (ja) | システムバージョンをアップグレードする方法及び装置 | |
WO2015154538A1 (zh) | 存储器的启动方法及装置 | |
WO2017000567A1 (zh) | 一种实现bootrom升级的方法及装置 | |
CN112667265B (zh) | 一种引导程序更新方法及装置 | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
CN111026417A (zh) | 一种嵌入式设备的升级方法及嵌入式设备 | |
US20140258699A1 (en) | Boot fault tolerant device and method thereof | |
CN105677409A (zh) | 一种系统升级方法及装置 | |
CN111273928B (zh) | 一种自升级的bootloader设计方法 | |
CN116360832A (zh) | 单片机的升级方法和相关设备 | |
US11768669B2 (en) | Installing application program code on a vehicle control system | |
KR100860402B1 (ko) | 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법 | |
JP5084853B2 (ja) | ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム | |
JP2002175193A (ja) | プログラム書き換え装置及びプログラム書き換え方法 | |
JP2014174697A (ja) | 情報処理装置、情報処理装置の制御方法及び制御プログラム | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
CN112860287A (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 |