CN110134415A - 一种控制器及其软件升级方法和装置 - Google Patents
一种控制器及其软件升级方法和装置 Download PDFInfo
- Publication number
- CN110134415A CN110134415A CN201910292581.3A CN201910292581A CN110134415A CN 110134415 A CN110134415 A CN 110134415A CN 201910292581 A CN201910292581 A CN 201910292581A CN 110134415 A CN110134415 A CN 110134415A
- Authority
- CN
- China
- Prior art keywords
- data
- upgrading
- app
- controller
- bootloader
- 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
- 238000004590 computer program Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 18
- 238000012790 confirmation Methods 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 5
- 238000013075 data extraction Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 230000006399 behavior Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000012795 verification Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 206010037660 Pyrexia Diseases 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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
Abstract
一种控制器的软件升级方法包括:当控制器启动时,进入Bootloader并判断指定存储位置是否存储有升级数据;如果指定存储位置没有存储升级数据,则运行预先烧写的APP应用程序;在运行APP应用程序时,如果接收到升级指令,则重新进入Bootloader,接收升级数据并存放在APP备份区;当升级数据接收完毕后,重启进入Bootloader,将APP备份区的升级数据写入APP运行区。由于不需要另外设置PCB板,有利于节省成本,并且不需要设置特殊接口,操作更加简单高效。
Description
技术领域
本申请属于控制器领域,尤其涉及一种控制器及其软件升级方法和装置。
背景技术
目前的单片机,在更新内部程序时,一般需要使用单片机厂商提供的硬件下载接口、烧写器、上位机(可以直接发出操控命令的计算机,一般是电脑)烧写软件才能对单片机(充当下位机,下位机是直接控制设备获取设备状况的计算机,一般是单片机或其他类型的为控制器)进行更新。例如常用的ST(意法半导体)单片机ST8或ST32系列,硬件下载调试接口分别为SWIM(Single Wire Interface Module,单线接口模块)和SWD(Serial WireDebug,串行调试接口)。
由于目前采用的程序下载(烧写)方式需要电路设计时预留下载电路,因此需要占用一定PCB(Printed Circuit Board,印制电路板)面积,增加了硬件成本,如果电路复杂,则还会增加PCB布线难度;由于调试接口通信距离短,无法远程下载,需要使用硬件下载工具(ST-LINK)手动下载,效率低下;并且由于嵌入式产品出货后不会在产品外部留调试下载接口,因此当更新电路板板载单片机内部程序时往往要拆开机箱进行下载,十分麻烦。
发明内容
有鉴于此,本申请实施例提供了一种控制器及其软件升级方法和装置,以解决现有技术中对控制器进行升级时,需要占用一定的PCB面积,效率低并且操作麻烦的问题。
本申请实施例的第一方面提供了一种控制器的软件升级方法,所述控制器的软件升级方法包括:
当控制器启动时,进入启动加载部分Bootloader并判断指定存储位置是否存储有升级数据;
如果指定存储位置没有存储升级数据,则运行预先烧写的APP应用程序;
在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区;
当升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的升级数据写入APP运行区。
结合第一方面,在第一方面的第一种可能实现方式中,所述在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区的步骤包括:
在运行APP应用程序时,如果接收到升级指令,则返回确认指令,向存储器特定地址写入升级标志位并进入启动加载部分Bootloader;
在启动加载部分Bootloader检测到所述标志位,循环等待接收升级命令;
接收到升级命令并回复确认后,接收升级数据并存放在APP备份区。
结合第一方面,在第一方面的第二种可能实现方式中,所述接收升级数据并存放在APP备份区的步骤包括:
接收升级命令,并所述升级命令无误后,发送包括校验信息的响应数据;
在所述响应信息被校验无误后,接收包括校验信息和序列信息的升级数据包;
根据所述校验信息确认升级数据无误后,设置用于数据提取操作的接收完成标志位。
结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述根据所述校验信息确认升级数据无误的步骤包括:
接收第i个升级数据包时,根据第i-1个数据包的校验码为初值,对升级数据进行CRC校验,得到更新后的校验值;
判断更新后的校验值是否与升级数据包中的校验值相符,来判断当前接收的数据是否准确。
结合第一方,在第一方面的第四种可能实现方式中,在所述将APP备份区的升级数据写入APP运行区的步骤之后,所述方法还包括:
当APP运行区的数据写入完成时,对写入所述APP运行区的数据进行校验。
本申请实施例的第二方面提供了一种控制器的软件升级装置,所述控制器的软件升级装置包括:
升级数据判断单元,用于当控制器启动时,进入启动加载部分Bootloader并判断指定存储位置是否存储有升级数据;
APP应用程序运行单元,用于如果指定存储位置没有存储升级数据,则运行预先烧写的APP应用程序;
升级数据接收单元,用于在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区;
更新单元,用于当升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的升级数据写入APP运行区。
结合第二方面,在第二方面的第一种可能实现方式中,所述升级数据接收单元包括:
升级指令接收子单元,用于在运行APP应用程序时,如果接收到升级指令,则返回确认指令,向存储器特定地址写入升级标志位并进入启动加载部分Bootloader;
循环等待子单元,用于在启动加载部分Bootloader检测到所述标志位,循环等待接收升级命令;
备份子单元,用于接收到升级命令并回复确认后,接收升级数据并存放在APP备份区。
结合第二方面,在第二方面的第二种可能实现方式中,所述备份子单元包括:
升级校验模块,用于接收升级命令,并所述升级命令无误后,发送包括校验信息的响应数据;
升级数据包接收模块,用于在所述响应信息被校验无误后,接收包括校验信息和序列信息的升级数据包;
标志位设置单元,用于根据所述校验信息确认升级数据无误后,设置用于数据提取操作的接收完成标志位。
本申请实施例的第三方面提供了一种控制器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面任一项所述控制器的软件升级方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述控制器的软件升级方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:通过启动加载部分Bootloader判断是否在指定位置存储有升级数据,如果没有,则直接运行预先烧写的APP应用程序,如果在运行APP应用程序时接收到控制板发送的升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存储在APP备份区,在升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的数据写入APP运行区,从而完成控制内的APP数据更新,由于本申请不需要另外设置PCB板,有利于节省成本,并且不需要设置特殊接口,操作更加简单高效。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种控制器的软件升级方法的实现流程示意图;
图2是本申请实施例提供的根据升级指令接收升级数据方法的实现流程示意图;
图3是本申请实施例提供的升级命令示意图;
图4是本申请实施例提供的对接收的升级数据进行检验方法的实现流程示意图;
图5是本申请实施例提供的控制器的软件升级装置的示意图;
图6是本申请实施例提供的控制器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
图1为本申请实施例提供的一种控制器的软件升级方法的实现流程示意图,详述如下:
在步骤S101中,当控制器启动时,进入启动加载部分Bootloader并判断指定存储位置是否存储有升级数据;
本申请所述控制器的软件升级方法的实施场景包括控制器和控制板(高性能服务器的一部分),其中,控制板是控制器的上位机,所述控制器可以为单片机等。
具体的,本申请所述控制中的程序包括启动加载部分Bootloader,以及APP应用程序。并且控制器(通常指单片机)在出厂时,一般预先烧写有启动加载部分Bootloader和应用程序部分APP。
其中,启动加载部分Bootloader,用于从上位机获取升级文件数据并进行校验和备份到存储器;二是从存储设备(电擦除只读存储器eeprom、闪存flash等)加载用于更新单片机内旧APP的新版本的APP数据,如果检测到存储器中无新版本APP,则跳转到原APP起始处开始执行程序。
APP应用程序就是需要被更新、升级的单片机软件,包含单片机等控制器的主要功能以及跳转到Bootloader的功能。
在步骤S102中,如果指定存储位置没有存储升级数据,则运行预先烧写的APP应用程序;
在控制器启动时,算力板板载控制器先进入启动加载部分Bootloader,启动加载部分Bootloader此时检测存储器内没有升级数据,直接跳转并运行应用程序部分APP。
其中,所述升级数据的检测,可以通过检测升级数据的接收完成标志位,来判断是否需要进行数据升级操作,或者直接运动APP应用程序部分。
在步骤S103中,在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区;
在运行APP应用程序时,可以接收控制板发送的控制指令,可以接收传感器采集的传感数据,并根据接收的指令,和/或根据采集的传感数据,执行对应的控制算法。
如图2所示,根据升级指令接收升级数据的过程可以包括:
在步骤S201中,在运行APP应用程序时,如果接收到升级指令,则返回确认指令,向存储器特定地址写入升级标志位并进入启动加载部分Bootloader;
控制器在运行在APP程序时,采集数据并实时接收控制板的各项命令,当收到控制板升级命令并确认后,向存储器(掉电后数据不丢失的存储器,例如:ROM,只读存储器)特定地址写入一个标志位,便自动跳转到Bootloader。
在步骤S202中,在启动加载部分Bootloader检测到所述标志位,循环等待接收升级命令;
在重新进入启动加载部分Bootloader时,检测到所设置的接收升级命令的升级标志位后,则循环等待控制板发送升级命令。控制板上位机在发送给APP应用程序的升级命令后,根据控制器的确认信息延迟一段时间,等待控制器重启进入启动加载部分Bootloader,再次发送升级命令,此时接收到升级命令的是启动加载部分Bootloader,并由启动加载部分Bootloader回复确认信息。
在步骤S203中,接收到升级命令并回复确认后,接收升级数据并存放在APP备份区。
在接收到启动加载部分Bootloader的确认的回复信息后,则进入升级模式,对升级数据进行传输和校验等操作。
作为本申请优选的一种实施方式中,在对升级数据进行发送时,采用拆分打包的方式,如图3所示为升级命令示意图,通过将升级文件拆分为预定长度的数据,并为每段数据加上包头和包尾,生成升级数据包,包括:升级命令“CMD_UPGRADE”(可以用1字节表示),数据包长度70(可以用1字节表示),升级命令数据子命令“SUB_CMD_UPGRADE_DATA”(可以用1字节表示),当前数据包序列码(SN,Serial Number序列码,用来指示当前数据包位于所有升级数据的相对顺序)(可以用1字节表示),升级数据(可以用64字节存储),数据包实际有效长度(用来表“升级数据”中实际有用的数据,因为最后一个包可能不到64字节,但为了固定包的长度,所有升级都依序存在“升级数据”,而实际有效长度由“数据包实际有效长度”来确定,可以用1字节表示),CRC校验码(CRC,Cyclic Redundancy Check,循环冗余校验码,根据校验码的长短和具体算法分为crc8、crc16、crc32等,一种校验算法产生的校验码,一般用于检测数据的正确性,这里用来让控制器校验收到的数据是否与控制板发送的数据一致,避免数据传输过程中发生干扰,导致数据出错)。
在对接收的升级数据进行检验时,可以包括如图4所示的步骤:
在步骤S401中,接收升级命令,并所述升级命令无误后,发送包括校验信息的响应数据;
控制板发送升级命令后,控制器接收到所述升级命令,对所述升级命令进行CRC校验计算,将计算结果与升级命令中包括的校验值进行比较,如果一致,则表明控制器能够正常接收控制板所发送的命令数据,可以向控制板返回响应数据,所述响应数据可以包括校验信息。
在步骤S402中,在所述响应信息被校验无误后,接收包括校验信息和序列信息的升级数据包;
控制板接收到所述响应信息后,对所述响应信息进行校验计算,如果计算的校验值,与响应信息中的校验值相同,则证明控制器的数据被控制板正常接收。至此,控制板与控制器双方的通信正常,可以接着发送升级包。
在发送升级包时,控制板每发送一个升级包,控制器都可以对接受到的数据进行校验(通过升级包最后的crc8进行校验),以保证接受到的升级数据完整无误,确认无误后,除了对升级包进行校验,控制器还会单独对升级数据(64字节)进行一次校验,具体产生方法就是没收到第i个升级包,就以当前校验值作为初值对其中的升级数据做crc校验,以更新校验值,直到收完所有升级包。单片机每收到一个升级包,都会记录当前数据包的SN码(包序号)和实际有效长度。
在步骤S403中,根据所述校验信息确认升级数据无误后,设置用于数据提取操作的接收完成标志位。
当控制板发送完了所有的升级包(会发送一个升级结束命令)给控制器,控制器便通过最后一个升级包SN码和升级包有效数据长度统计本次升级总共为多少,升级结束命令还包含一个整包CRC校验,该值用于控制器在将所有数据写入存储器后,再次读出时校验使用。该校验步骤可以避免单片机在接收到数据后往存储器内写的过程发生错误。单片机确认无误后可以发送一个响应数据给控制板,并改写存储器特定地址的一个升级数据是否接收完成标志位(用于说明成功接收升级数据),然后重启单片机程序,从Bootloader最初的代码开始执行,控制板收到说明单片机接收升级数据完毕。
在步骤S104中,当升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的升级数据写入APP运行区。
重启后,控制器便进入“自升级”过程。重启后,再次进入启动加载部分Bootloader,启动加载部分Bootloader检测到存储器内的接收完成标志位,便开始读物存储器内的APP备份区(与APP的运行区相区分)的升级数据,并对读取的数据进行整体的校验,在读取数据时,如果外部电磁环境恶劣可能导致读取数据发生错误,因此需要对读取的数据进行校验,每读取64字节数据并校验通过的话,便将数据写到旧APP的存储位置(即“APP运行区”),直到写完所有的数据,启动加载部分Bootloader还会对写入的数据再次读取并使用校验值对“APP运行区”的数据进行校验,以保证写入过程没问题。
本申请通过启动加载部分Bootloader判断是否在指定位置存储有升级数据,如果没有,则直接运行预先烧写的APP应用程序,如果在运行APP应用程序时接收到控制板发送的升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存储在APP备份区,在升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的数据写入APP运行区,从而完成控制内的APP数据更新,可以不需要另外设置PCB板,可以接收远程指令实现远程升级,并且不需要设置特殊接口,操作简单高效。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图5为本申请实施例提供的一种控制器的软件升级装置的结构示意图,详述如下:
所述控制器的软件升级装置包括:
升级数据判断单元501,用于当控制器启动时,进入启动加载部分Bootloader并判断指定存储位置是否存储有升级数据;
APP应用程序运行单元502,用于如果指定存储位置没有存储升级数据,则运行预先烧写的APP应用程序;
升级数据接收单元503,用于在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区;
更新单元,用于当升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的升级数据写入APP运行区。
优选的,所述升级数据接收单元包括:
升级指令接收子单元,用于在运行APP应用程序时,如果接收到升级指令,则返回确认指令,向存储器特定地址写入升级标志位并进入启动加载部分Bootloader;
循环等待子单元,用于在启动加载部分Bootloader检测到所述标志位,循环等待接收升级命令;
备份子单元,用于接收到升级命令并回复确认后,接收升级数据并存放在APP备份区。
优选的,所述备份子单元包括:
升级校验模块,用于接收升级命令,并所述升级命令无误后,发送包括校验信息的响应数据;
升级数据包接收模块,用于在所述响应信息被校验无误后,接收包括校验信息和序列信息的升级数据包;
标志位设置单元,用于根据所述校验信息确认升级数据无误后,设置用于数据提取操作的接收完成标志位。
图5所述控制器的软件升级装置,与图1所述的控制器的软件升级方法对应。
图6是本申请一实施例提供的控制器的示意图。如图6所示,该实施例的控制器6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如控制器的软件升级程序。所述处理器60执行所述计算机程序62时实现上述各个控制器的软件升级方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块501至503的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述控制器6中的执行过程。例如,所述计算机程序62可以被分割成,各单元具体功能如下:
升级数据判断单元,用于当控制器启动时,进入启动加载部分Bootloader并判断指定存储位置是否存储有升级数据;
APP应用程序运行单元,用于如果指定存储位置没有存储升级数据,则运行预先烧写的APP应用程序;
升级数据接收单元,用于在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区;
更新单元,用于当升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的升级数据写入APP运行区。
所述控制器6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述控制器可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是控制器6的示例,并不构成对控制器6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述控制器还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述控制器6的内部存储单元,例如控制器6的硬盘或内存。所述存储器61也可以是所述控制器6的外部存储设备,例如所述控制器6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述控制器6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述控制器所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种控制器的软件升级方法,其特征在于,所述控制器的软件升级方法包括:
当控制器启动时,进入启动加载部分Bootloader并判断指定存储位置是否存储有升级数据;
如果指定存储位置没有存储升级数据,则运行预先烧写的APP应用程序;
在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区;
当升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的升级数据写入APP运行区。
2.根据权利要求1所述的控制器的软件升级方法,其特征在于,所述在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区的步骤包括:
在运行APP应用程序时,如果接收到升级指令,则返回确认指令,向存储器特定地址写入升级标志位并进入启动加载部分Bootloader;
在启动加载部分Bootloader检测到所述标志位,循环等待接收升级命令;
接收到升级命令并回复确认后,接收升级数据并存放在APP备份区。
3.根据权利要求1所述的控制器的软件升级方法,其特征在于,所述接收升级数据并存放在APP备份区的步骤包括:
接收升级命令,并所述升级命令无误后,发送包括校验信息的响应数据;
在所述响应信息被校验无误后,接收包括校验信息和序列信息的升级数据包;
根据所述校验信息确认升级数据无误后,设置用于数据提取操作的接收完成标志位。
4.根据权利要求3所述的控制器的软件升级方法,其特征在于,所述根据所述校验信息确认升级数据无误的步骤包括:
接收第i个升级数据包时,根据第i-1个数据包的校验码为初值,对升级数据进行CRC校验,得到更新后的校验值;
判断更新后的校验值是否与升级数据包中的校验值相符,来判断当前接收的数据是否准确。
5.根据权利要求1所述的控制器的软件升级方法,其特征在于,在所述将APP备份区的升级数据写入APP运行区的步骤之后,所述方法还包括:
当APP运行区的数据写入完成时,对写入所述APP运行区的数据进行校验。
6.一种控制器的软件升级装置,其特征在于,所述控制器的软件升级装置包括:
升级数据判断单元,用于当控制器启动时,进入启动加载部分Bootloader并判断指定存储位置是否存储有升级数据;
APP应用程序运行单元,用于如果指定存储位置没有存储升级数据,则运行预先烧写的APP应用程序;
升级数据接收单元,用于在运行APP应用程序时,如果接收到升级指令,则重新进入启动加载部分Bootloader,接收升级数据并存放在APP备份区;
更新单元,用于当升级数据接收完毕后,重启进入启动加载部分Bootloader,将APP备份区的升级数据写入APP运行区。
7.根据权利要求6所述的控制器的软件升级装置,其特征在于,所述升级数据接收单元包括:
升级指令接收子单元,用于在运行APP应用程序时,如果接收到升级指令,则返回确认指令,向存储器特定地址写入升级标志位并进入启动加载部分Bootloader;
循环等待子单元,用于在启动加载部分Bootloader检测到所述标志位,循环等待接收升级命令;
备份子单元,用于接收到升级命令并回复确认后,接收升级数据并存放在APP备份区。
8.根据权利要求6所述的控制器的软件升级装置,其特征在于,所述备份子单元包括:
升级校验模块,用于接收升级命令,并所述升级命令无误后,发送包括校验信息的响应数据;
升级数据包接收模块,用于在所述响应信息被校验无误后,接收包括校验信息和序列信息的升级数据包;
标志位设置单元,用于根据所述校验信息确认升级数据无误后,设置用于数据提取操作的接收完成标志位。
9.一种控制器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述控制器的软件升级方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述控制器的软件升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910292581.3A CN110134415A (zh) | 2019-04-12 | 2019-04-12 | 一种控制器及其软件升级方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910292581.3A CN110134415A (zh) | 2019-04-12 | 2019-04-12 | 一种控制器及其软件升级方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110134415A true CN110134415A (zh) | 2019-08-16 |
Family
ID=67569845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910292581.3A Pending CN110134415A (zh) | 2019-04-12 | 2019-04-12 | 一种控制器及其软件升级方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134415A (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704076A (zh) * | 2019-10-15 | 2020-01-17 | 上海元城汽车技术有限公司 | 数据处理方法和装置、车载控制器及计算机可读存储介质 |
CN110990041A (zh) * | 2019-12-16 | 2020-04-10 | 杭州涂鸦信息技术有限公司 | 一种bootloader升级方法及系统 |
CN111273937A (zh) * | 2020-01-18 | 2020-06-12 | 四川九洲空管科技有限责任公司 | 一种基于stm32f746处理器的远程升级方法 |
CN111309353A (zh) * | 2020-01-20 | 2020-06-19 | 山东超越数控电子股份有限公司 | 一种基于服务器控制板更新运算板fpga固件的方法及设备 |
CN111399869A (zh) * | 2020-02-28 | 2020-07-10 | 合肥芯碁微电子装备股份有限公司 | 控制直写式曝光机软件升级的方法、控制单元和曝光机 |
CN111641527A (zh) * | 2020-05-28 | 2020-09-08 | 四川爱创科技有限公司 | 一种嵌入式芯片软件远程升级备份方法 |
CN111796848A (zh) * | 2020-07-08 | 2020-10-20 | 中国第一汽车股份有限公司 | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 |
CN111984298A (zh) * | 2020-07-17 | 2020-11-24 | 歌尔光学科技有限公司 | 一种闪存中的程序升级区、程序升级方法及系统 |
CN112040476A (zh) * | 2020-08-21 | 2020-12-04 | 北京三一智农数据技术有限公司 | 物联网终端的升级方法及装置 |
CN112162772A (zh) * | 2020-09-29 | 2021-01-01 | 北京东土军悦科技有限公司 | 一种应用程序的运行控制方法、装置、单片机及存储介质 |
CN112181466A (zh) * | 2020-09-08 | 2021-01-05 | 上海深聪半导体有限责任公司 | 一种语音空调固件云端升级方法及系统 |
CN112256338A (zh) * | 2020-10-27 | 2021-01-22 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN112650518A (zh) * | 2019-10-10 | 2021-04-13 | 国创新能源汽车能源与信息创新中心(江苏)有限公司 | Dsp程序在线升级方法 |
CN112882731A (zh) * | 2021-01-08 | 2021-06-01 | 北京锦鸿希电信息技术股份有限公司 | 嵌入式软件升级方法和装置 |
CN113127031A (zh) * | 2021-03-23 | 2021-07-16 | 广东芬尼克兹节能设备有限公司 | 双主控板远程升级的方法、装置、终端装置及可存储介质 |
CN113176891A (zh) * | 2021-05-10 | 2021-07-27 | 常州易控汽车电子股份有限公司 | 一种基于Bootloader带有备份功能的ECU的程序烧写方法 |
CN113342385A (zh) * | 2021-04-29 | 2021-09-03 | 博格思众(常州)空调系统有限公司 | 软件升级方法及装置、空调控制面板 |
CN113407212A (zh) * | 2021-06-17 | 2021-09-17 | 深圳远征技术有限公司 | 远程升级方法、装置、终端设备及存储介质 |
CN113434166A (zh) * | 2021-06-11 | 2021-09-24 | 重庆长安汽车股份有限公司 | 一种含固定刷写区且可回滚的双备份方法 |
CN113495729A (zh) * | 2020-03-20 | 2021-10-12 | 株洲中车时代电气股份有限公司 | 一种软件升级方法及装置 |
CN113741933A (zh) * | 2021-08-23 | 2021-12-03 | 深圳市航天泰瑞捷电子有限公司 | 控制器的远程升级方法、控制器及系统 |
CN117170704A (zh) * | 2023-08-21 | 2023-12-05 | 南京智谱科技有限公司 | 基于硬件iic的远程升级方法和装置 |
CN117278340A (zh) * | 2023-11-23 | 2023-12-22 | 瑞纳智能设备股份有限公司 | 实现低功耗阀固件升级的方法及存储介质、电子设备 |
CN112181466B (zh) * | 2020-09-08 | 2024-04-16 | 深聪半导体(江苏)有限公司 | 一种语音空调固件云端升级方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075564A (zh) * | 2010-12-23 | 2011-05-25 | 李华嵩 | 一种远程软件升级技术方法 |
CN104007996A (zh) * | 2014-06-16 | 2014-08-27 | 南京融教科技有限公司 | 一种分布式控制系统的可靠固件升级实现方法 |
CN104572206A (zh) * | 2015-01-14 | 2015-04-29 | 厦门为那通信科技有限公司 | 应用程序自更新和备份恢复的方法 |
CN107179909A (zh) * | 2017-05-16 | 2017-09-19 | 广东美的暖通设备有限公司 | 软件升级方法、装置及计算机可读存储介质 |
CN108376077A (zh) * | 2018-02-11 | 2018-08-07 | 广东美的厨房电器制造有限公司 | 控制单元的升级方法和装置 |
KR20180130132A (ko) * | 2017-05-29 | 2018-12-07 | 엘지전자 주식회사 | 공기조화장치의 중앙제어기의 부팅 및 업그레이드 방법 |
-
2019
- 2019-04-12 CN CN201910292581.3A patent/CN110134415A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075564A (zh) * | 2010-12-23 | 2011-05-25 | 李华嵩 | 一种远程软件升级技术方法 |
CN104007996A (zh) * | 2014-06-16 | 2014-08-27 | 南京融教科技有限公司 | 一种分布式控制系统的可靠固件升级实现方法 |
CN104572206A (zh) * | 2015-01-14 | 2015-04-29 | 厦门为那通信科技有限公司 | 应用程序自更新和备份恢复的方法 |
CN107179909A (zh) * | 2017-05-16 | 2017-09-19 | 广东美的暖通设备有限公司 | 软件升级方法、装置及计算机可读存储介质 |
KR20180130132A (ko) * | 2017-05-29 | 2018-12-07 | 엘지전자 주식회사 | 공기조화장치의 중앙제어기의 부팅 및 업그레이드 방법 |
CN108376077A (zh) * | 2018-02-11 | 2018-08-07 | 广东美的厨房电器制造有限公司 | 控制单元的升级方法和装置 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650518A (zh) * | 2019-10-10 | 2021-04-13 | 国创新能源汽车能源与信息创新中心(江苏)有限公司 | Dsp程序在线升级方法 |
CN110704076A (zh) * | 2019-10-15 | 2020-01-17 | 上海元城汽车技术有限公司 | 数据处理方法和装置、车载控制器及计算机可读存储介质 |
CN110990041A (zh) * | 2019-12-16 | 2020-04-10 | 杭州涂鸦信息技术有限公司 | 一种bootloader升级方法及系统 |
CN111273937A (zh) * | 2020-01-18 | 2020-06-12 | 四川九洲空管科技有限责任公司 | 一种基于stm32f746处理器的远程升级方法 |
CN111309353A (zh) * | 2020-01-20 | 2020-06-19 | 山东超越数控电子股份有限公司 | 一种基于服务器控制板更新运算板fpga固件的方法及设备 |
CN111309353B (zh) * | 2020-01-20 | 2023-05-23 | 超越科技股份有限公司 | 一种基于服务器控制板更新运算板fpga固件的方法及设备 |
CN111399869A (zh) * | 2020-02-28 | 2020-07-10 | 合肥芯碁微电子装备股份有限公司 | 控制直写式曝光机软件升级的方法、控制单元和曝光机 |
CN113495729A (zh) * | 2020-03-20 | 2021-10-12 | 株洲中车时代电气股份有限公司 | 一种软件升级方法及装置 |
CN111641527A (zh) * | 2020-05-28 | 2020-09-08 | 四川爱创科技有限公司 | 一种嵌入式芯片软件远程升级备份方法 |
CN111796848A (zh) * | 2020-07-08 | 2020-10-20 | 中国第一汽车股份有限公司 | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 |
CN111984298A (zh) * | 2020-07-17 | 2020-11-24 | 歌尔光学科技有限公司 | 一种闪存中的程序升级区、程序升级方法及系统 |
CN112040476A (zh) * | 2020-08-21 | 2020-12-04 | 北京三一智农数据技术有限公司 | 物联网终端的升级方法及装置 |
CN112040476B (zh) * | 2020-08-21 | 2023-08-15 | 北京三一智农数据技术有限公司 | 物联网终端的升级方法及装置 |
CN112181466A (zh) * | 2020-09-08 | 2021-01-05 | 上海深聪半导体有限责任公司 | 一种语音空调固件云端升级方法及系统 |
CN112181466B (zh) * | 2020-09-08 | 2024-04-16 | 深聪半导体(江苏)有限公司 | 一种语音空调固件云端升级方法及系统 |
CN112162772B (zh) * | 2020-09-29 | 2023-03-10 | 北京东土军悦科技有限公司 | 一种应用程序的运行控制方法、装置、单片机及存储介质 |
CN112162772A (zh) * | 2020-09-29 | 2021-01-01 | 北京东土军悦科技有限公司 | 一种应用程序的运行控制方法、装置、单片机及存储介质 |
CN112256338B (zh) * | 2020-10-27 | 2023-12-05 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN112256338A (zh) * | 2020-10-27 | 2021-01-22 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN112882731A (zh) * | 2021-01-08 | 2021-06-01 | 北京锦鸿希电信息技术股份有限公司 | 嵌入式软件升级方法和装置 |
CN113127031A (zh) * | 2021-03-23 | 2021-07-16 | 广东芬尼克兹节能设备有限公司 | 双主控板远程升级的方法、装置、终端装置及可存储介质 |
CN113342385A (zh) * | 2021-04-29 | 2021-09-03 | 博格思众(常州)空调系统有限公司 | 软件升级方法及装置、空调控制面板 |
CN113176891A (zh) * | 2021-05-10 | 2021-07-27 | 常州易控汽车电子股份有限公司 | 一种基于Bootloader带有备份功能的ECU的程序烧写方法 |
CN113434166B (zh) * | 2021-06-11 | 2022-10-11 | 重庆长安汽车股份有限公司 | 一种含固定刷写区且可回滚的双备份方法 |
CN113434166A (zh) * | 2021-06-11 | 2021-09-24 | 重庆长安汽车股份有限公司 | 一种含固定刷写区且可回滚的双备份方法 |
CN113407212A (zh) * | 2021-06-17 | 2021-09-17 | 深圳远征技术有限公司 | 远程升级方法、装置、终端设备及存储介质 |
CN113741933A (zh) * | 2021-08-23 | 2021-12-03 | 深圳市航天泰瑞捷电子有限公司 | 控制器的远程升级方法、控制器及系统 |
CN117170704A (zh) * | 2023-08-21 | 2023-12-05 | 南京智谱科技有限公司 | 基于硬件iic的远程升级方法和装置 |
CN117278340A (zh) * | 2023-11-23 | 2023-12-22 | 瑞纳智能设备股份有限公司 | 实现低功耗阀固件升级的方法及存储介质、电子设备 |
CN117278340B (zh) * | 2023-11-23 | 2024-02-13 | 瑞纳智能设备股份有限公司 | 实现低功耗阀固件升级的方法及存储介质、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134415A (zh) | 一种控制器及其软件升级方法和装置 | |
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN109117168A (zh) | 无人机固件更新方法、装置、无人机及存储介质 | |
US6842858B2 (en) | Mechanism for updating firmware of an electronic device | |
CN109002310A (zh) | 固件升级方法 | |
CN109522033B (zh) | 一种基于器件运行自编程和双中断向量表的ecu程序与数据升级方法 | |
CN111240720A (zh) | 引导程序升级方法、装置及存储介质 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN114003538B (zh) | 一种智能网卡的识别方法及智能网卡 | |
CN103106095A (zh) | 一种工业照相机远程升级的方法及照相机 | |
CN107704258A (zh) | Uboot升级方法、系统及终端设备 | |
CN108920168B (zh) | 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法 | |
CN113467813A (zh) | 一种控制器在线升级方法、装置、电子设备及存储介质 | |
CN111190629B (zh) | 一种嵌入式终端升级软件包及其解析方法 | |
CN105045671A (zh) | 一种智能终端的系统升级方法及装置 | |
CN114860279A (zh) | 一种快速空片升级方法 | |
CN107479924B (zh) | 基于Android系统的软件升级校验方法 | |
CN111857785B (zh) | 一种mcu的启动方法、装置及终端设备 | |
CN109582334B (zh) | 可编程逻辑器件的升级方法及装置 | |
CN113204456A (zh) | 一种服务器vpp接口的测试方法、治具、装置及设备 | |
CN113360161A (zh) | 资源升级方法及相关产品 | |
CN116755749A (zh) | 板载mcu的升级方法、板载mcu、板卡及信息处理系统 | |
CN112860283B (zh) | Sp升级包的自识别升级方法、装置及计算机设备 | |
CN114356365A (zh) | 一种基于PSoC芯片的远程更新方法 | |
CN112445508A (zh) | 一种基于can总线的arm应用程序在线升级的方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190816 |
|
RJ01 | Rejection of invention patent application after publication |