芯片固件升级系统的制作方法

未命名 08-13 阅读:174 评论:0


1.本发明涉及芯片技术领域,尤其涉及一种芯片固件升级系统。


背景技术:

2.芯片固件是存储在芯片内部非易失性存储区域中的软件部分,其本身是软件,但由于固化到芯片的非易失性存储器(flash/eeprom等)中,通常称为固件(firmware),为了修复固件中的缺陷(bug)或新增固件功能,通常需要对芯片固件进行升级。现有技术中,在非易失性存储区域设置两个区域:第一区域和第二区域,在第一区域中存储当前运行版本的固件,当需要进行固件升级时,在第二区域中存储升级版本区域,当芯片重启时,先将第一区域中当前运行版本的固件擦除,然后再将第二区域中的升级固件搬运到第一区域中,搬运完成后,将升级固件作为当前运行版本的固件运行。
3.但是,现有技术中需要多次对第一区域和第二区域进行多次擦除重写,使得固件升级过程耗时,且易降低非易失性存储器的使用寿命。此外,在将升级固件从第二区域搬运到第一区域的过程中,需要先将第一区域中当前运行版本的固件擦除,但如果升级固件存在异常,会导致升级固件无法运行,则需要花费大量的时间到服务器中查找并恢复已擦出的第一区域中的当前运行版本的固件,使得芯片固件升级可靠性差。由此可知,如何提高芯片固件升级效率和可靠性成为亟待解决的技术问题。


技术实现要素:

4.本发明目的在于,提供一种芯片固件升级系统,提高了芯片固件升级效率和可靠性。
5.根据本发明一方面,提供了一种芯片固件升级系统,包括第一存储器、第二存储器和处理器,其中,所述第一存储器中存储有至少一组固件运行程序和固件升级程序;所述固件运行程序中的起始操作地址为第一逻辑地址;所述固件升级程序中的起始操作地址为第二逻辑地址;所述处理器用于运行所述固件运行程序和固件升级程序,所述固件运行程序用于基于第一逻辑地址执行当前芯片固件,所述固件升级程序用于基于第二逻辑地址写入升级芯片固件;所述第二存储器中包括至少一个固件存储单元,每一组固件运行程序和固件升级程序对应一个固件存储单元,所述固件存储单元包括映射标识位、地址映射表、第一存储区域和第二存储区域;所述映射标识设置为第一标识或第二标识;所述第一存储区域的起始地址为第一物理地址,所述第二存储区域的起始地址为第二物理地址;所述地址映射表用于存储地址映射关系,若所述映射标识设置为第一标识,则所述第一逻辑地址映射至第一物理地址,所述第二逻辑地址映射至第二物理地址;若所述映射标识设置为第二标识,则所述第一逻辑地址映射至第二物理地址,所述第二逻辑地址映
射至第一物理地址。
6.本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种芯片固件升级系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:本发明所述系统在实现芯片固件升级时,无需更改固件运行程序和固件升级程序,也无需在第一存储区域和第二存储区域之间搬运升级固件,仅需通过切换映射标识,结合地址映射表即可实现芯片固件升级,提高了芯片固件升级效率和可靠性。
附图说明
7.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
8.图1为本发明实施例提供的芯片固件升级系统示意图。
具体实施方式
9.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
10.本发明实施例提供了一种芯片固件升级系统,如图1所示,包括第一存储器、第二存储器和处理器,其中,所述第一存储器、第二存储器均为非易失性存储器。
11.所述第一存储器中存储有至少一组固件运行程序和固件升级程序;所述固件运行程序中的起始操作地址为第一逻辑地址;所述固件升级程序中的起始操作地址为第二逻辑地址。需要说明的是,芯片结构复杂,在芯片完成初始化操作之后,芯片中可能存在多个模块需要执行对应的固件中的操作,因此,所述第一存储器中可能存储一组或多组固件运行程序和固件升级程序,每一组固件运行程序和固件升级程序对应一个芯片模块。所述固件运行程序中对应的第一逻辑地址始终不变,所述固件升级程序中的对应的第二逻辑地址也始终不变,即在芯片固件升级过程中,需要更改固件运行程序和固件升级程序。固件运行程序中的操作地址范围始终属于[第一逻辑地址, 第一逻辑地址+第一地址长度],固件升级程序中的操作地址范围始终属于[第二逻辑地址, 第二逻辑地址+第二地址长度]。
[0012]
所述处理器用于运行所述固件运行程序和固件升级程序,所述固件运行程序用于基于第一逻辑地址执行当前芯片固件,所述固件升级程序用于基于第二逻辑地址写入升级芯片固件。需要说明的是,在写入升级芯片固件是在当前芯片固件是正常执行的前提下实现的。
[0013]
所述第二存储器中包括至少一个固件存储单元,每一组固件运行程序和固件升级程序对应一个固件存储单元,所述固件存储单元包括映射标识位、地址映射表、第一存储区域和第二存储区域;所述映射标识设置为第一标识或第二标识,例如第一标识为1,第二标识为0,再如,第一标识为0,第二标识为1。所述第一存储区域的起始地址为第一物理地址,
所述第二存储区域的起始地址为第二物理地址。所述第二存储器具体可以为spi flash存储器。
[0014]
需要说明的是,第一存储器和第二存储器可以单独设置,也可以设置为一个,即通过同一个存储器来实现第一存储器和第二存储器的功能。
[0015]
作为一种示例,所述第一存储区域的地址长度为第三地址长度,第二存储区域的地址长度为第四地址长度。第一地址长度小于等于第三地址长度和第四地址长度,第二地址长度小于等于第三地址长度和第四地址长度。优选的,第一地址长度、第二地址长度、第三地址长度和第四地址长度都相等。
[0016]
所述地址映射表用于存储地址映射关系,若所述映射标识设置为第一标识,则所述第一逻辑地址映射至第一物理地址,所述第二逻辑地址映射至第二物理地址;若所述映射标识设置为第二标识,则所述第一逻辑地址映射至第二物理地址,所述第二逻辑地址映射至第一物理地址。即在映射标识不同的情况下,第一逻辑地址和第二逻辑地址所对应的物理地址也不相同。
[0017]
作为一种实施例,所述系统在初始状态下,所述映射标识设置为第一标识,所述第一存储区域用于存储当前芯片固件,所述第二存储区域为空,所述第二存储区域切换为待写入升级固件的区域。所述处理器执行所述固件运行程序,基于所述第一标识和所述地址映射表将第一逻辑地址映射至第一物理地址,执行所述第一存储区域中存储的当前芯片固件。所述处理器执行所述固件升级程序,基于所述第一标识和所述地址映射表将第二逻辑地址映射至第二物理地址,在所述第二存储区域中写入升级固件。可以理解的是,在初始状态下,第二存储区域为空,因此无需执行擦除操作即可直接在第二存储区域中写入升级固件。
[0018]
作为一种实施例,若所述映射标识设置为第一标识,当升级固件在所述第二存储区域中写入完毕时,将所述映射标识切换为第二标识,将所述第二存储区域中写入的升级固件切换为当前芯片固件,所述第一存储区域切换为待写入升级固件的区域。可以理解的是,通过切换映射标识即可实现芯片固件升级,无需在第一存储区域和第二存储区域之间搬运升级固件,提高了固件升级效率。
[0019]
作为一种实施例,当所述映射标识为第二标识时,所述处理器执行所述固件运行程序,基于所述第二标识和所述地址映射表将第一逻辑地址映射至第二物理地址,执行所述第二存储区域中存储的当前芯片固件。所述处理器执行所述固件升级程序,基于所述第二标识和所述地址映射表将第二逻辑地址映射至第一物理地址,先将第一存储区域中的芯片固件擦除,然后在所述第一存储区域中写入升级固件。
[0020]
需要说明的是,将所述第二存储区域中写入的升级固件切换为当前芯片固件之后,在成功运行第二存储区域中的当前芯片固件之前,第一存储区域中所存储的上一版本的芯片固件并未被擦除,当成功运行第二存储区域中的当前芯片固件之后,才能实现固件升级程序的运行,才可以在第一存储区域中写入升级固件,此时,才将第一存储区域中所存储的上一版本的芯片固件擦除。进一步的,若所述映射标识为第二标识,所述处理器执行固件运行程序时,所述当前芯片固件执行异常;当所述当前芯片固件执行异常时,所述固件升级程序无法执行,所述系统将所述映射标识切换为第一标识,将所述第一存储区域中存储的芯片固件设置切换为当前芯片固件,所述第二存储区域切换为待写入升级固件的区域。
[0021]
作为一种实施例,若所述映射标识为第二标识,当升级固件在所述第一存储区域中写入完毕时,将所述映射标识切换为第一标识,将所述第一存储区域中写入的升级固件切换为当前芯片固件,所述第二存储区域切换为待写入升级固件的区域。可以理解的是,通过切换映射标识即可实现芯片固件升级,无需在第一存储区域和第二存储区域之间搬运升级固件。
[0022]
作为一种实施例,若所述映射标识设置为第一标识,且所述第二存储区域不为空,所述处理器执行所述固件升级程序,基于所述第一标识和所述地址映射表将第二逻辑地址映射至第二物理地址,先将第二存储区域中的芯片固件擦除,然后在所述第二存储区域中写入升级固件。
[0023]
需要说明的是,将所述第一存储区域中固件切换为当前芯片固件之后,在成功运行第一存储区域中的当前芯片固件之前,第二存储区域中所存储的上一版本的芯片固件并未被擦除,当成功运行第一存储区域中的当前芯片固件之后,才能实现固件升级程序的运行,才可以在第二存储区域中写入升级固件,此时,才将第二存储区域中所存储的上一版本的芯片固件擦除。作为一种实施例,若所述映射标识为第一标识,且所述第二存储区域不为空,所述处理器执行固件运行程序时,所述当前芯片固件执行异常;当所述当前芯片固件执行异常时,所述固件升级程序无法执行,所述系统将所述映射标识切换为第二标识,将所述第二存储区域中存储的芯片固件设置切换为当前芯片固件,所述第一存储区域切换为待写入升级固件的区域。
[0024]
需要说明的是,现有技术中,第一存储区域始终用于存储当前芯片固件,第二存储区域始终用于存储升级固件,升级时,需要将第二存储区域的芯片固件搬运到第一存储区域中,因此,在搬运之前需要先将第一存储区域中的芯片固件擦除,搬运之后,才能基于第一存储区域运行搬运后的升级固件,但是,若升级固件出现异常,则无法直接返回上一版本的芯片固件,可能出现芯片卡顿甚至无法运行,若需要找回上一版本的芯片固件,还需要到服务器中,花费大量的时间和资源来寻找,可靠性差。而本技术在运行升级的固件时,第一存储区域或第二存储区域中,上一版本的芯片固件并未被擦除,只有在升级固件成功运行后,才会将上一版本的芯片固件擦除,若出现升级固件运行异常,则能快速通过切换映射标识,返回上一版本的芯片固件正常运行,并可以继续等待新的升级固件写入,提高了芯片升级的可靠性。
[0025]
本发明实施例所述系统在实现芯片固件升级时,无需更改固件运行程序和固件升级程序,也无需在第一存储区域和第二存储区域之间搬运升级固件,仅需通过切换映射标识,结合地址映射表即可实现芯片固件升级,提高了芯片固件升级效率和可靠性。
[0026]
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

技术特征:
1.一种芯片固件升级系统,其特征在于,包括第一存储器、第二存储器和处理器,其中,所述第一存储器中存储有至少一组固件运行程序和固件升级程序;所述固件运行程序中的起始操作地址为第一逻辑地址;所述固件升级程序中的起始操作地址为第二逻辑地址;所述处理器用于运行所述固件运行程序和固件升级程序,所述固件运行程序用于基于第一逻辑地址执行当前芯片固件,所述固件升级程序用于基于第二逻辑地址写入升级芯片固件;所述第二存储器中包括至少一个固件存储单元,每一组固件运行程序和固件升级程序对应一个固件存储单元,所述固件存储单元包括映射标识位、地址映射表、第一存储区域和第二存储区域;所述映射标识设置为第一标识或第二标识;所述第一存储区域的起始地址为第一物理地址,所述第二存储区域的起始地址为第二物理地址;所述地址映射表用于存储地址映射关系,若所述映射标识设置为第一标识,则所述第一逻辑地址映射至第一物理地址,所述第二逻辑地址映射至第二物理地址;若所述映射标识设置为第二标识,则所述第一逻辑地址映射至第二物理地址,所述第二逻辑地址映射至第一物理地址。2.根据权利要求1所述的系统,其特征在于,所述系统在初始状态下,所述映射标识设置为第一标识,所述第一存储区域用于存储当前芯片固件,所述第二存储区域为空,所述第二存储区域切换为待写入升级固件的区域;所述处理器执行所述固件运行程序,基于所述第一标识和所述地址映射表将第一逻辑地址映射至第一物理地址,执行所述第一存储区域中存储的当前芯片固件;所述处理器执行所述固件升级程序,基于所述第一标识和所述地址映射表将第二逻辑地址映射至第二物理地址,在所述第二存储区域中写入升级固件。3.根据权利要求2所述的系统,其特征在于,若所述映射标识设置为第一标识,当升级固件在所述第二存储区域中写入完毕时,将所述映射标识切换为第二标识,将所述第二存储区域中写入的升级固件切换为当前芯片固件,所述第一存储区域切换为待写入升级固件的区域。4.根据权利要求3所述的系统,其特征在于,当所述映射标识为第二标识时,所述处理器执行所述固件运行程序,基于所述第二标识和所述地址映射表将第一逻辑地址映射至第二物理地址,执行所述第二存储区域中存储的当前芯片固件;所述处理器执行所述固件升级程序,基于所述第二标识和所述地址映射表将第二逻辑地址映射至第一物理地址,先将第一存储区域中的芯片固件擦除,然后在所述第一存储区域中写入升级固件。5.根据权利要求4所述的系统,其特征在于,若所述映射标识为第二标识,当升级固件在所述第一存储区域中写入完毕时,将所述映射标识切换为第一标识,将所述第一存储区域中写入的升级固件切换为当前芯片固件,所述第二存储区域切换为待写入升级固件的区域。6.根据权利要求5所述的系统,其特征在于,
若所述映射标识设置为第一标识,且所述第二存储区域不为空,所述处理器执行所述固件升级程序,基于所述第一标识和所述地址映射表将第二逻辑地址映射至第二物理地址,先将第二存储区域中的芯片固件擦除,然后在所述第二存储区域中写入升级固件。7.根据权利要求5所述的系统,其特征在于,若所述映射标识为第一标识,且所述第二存储区域不为空,所述处理器执行固件运行程序时,所述当前芯片固件执行异常;当所述当前芯片固件执行异常时,所述固件升级程序无法执行,所述系统将所述映射标识切换为第二标识,将所述第二存储区域中存储的芯片固件设置切换为当前芯片固件,所述第一存储区域切换为待写入升级固件的区域。8.根据权利要求5所述的系统,其特征在于,若所述映射标识为第二标识,所述处理器执行固件运行程序时,所述当前芯片固件执行异常;当所述当前芯片固件执行异常时,所述固件升级程序无法执行,所述系统将所述映射标识切换为第一标识,将所述第一存储区域中存储的芯片固件设置切换为当前芯片固件,所述第二存储区域切换为待写入升级固件的区域。9.根据权利要求1所述的系统,其特征在于,所述第一存储器、第二存储器均为非易失性存储器。

技术总结
本发明涉及芯片技术领域,尤其涉及一种芯片固件升级系统,其中,固件运行程序、固件升级程序中的起始操作地址分别为第一逻辑地址和第二逻辑地址;处理器运行固件运行程序和固件升级程序,固件运行程序基于第一逻辑地址执行当前芯片固件,固件升级程序基于第二逻辑地址写入升级芯片固件;映射标识设置为第一标识或第二标识;第一存储区域的起始地址为第一物理地址,第二存储区域的起始地址为第二物理地址;若映射标识设置为第一标识,则第一逻辑地址映射至第一物理地址,第二逻辑地址映射至第二物理地址;若映射标识设置为第二标识,则第一逻辑地址映射至第二物理地址,第二逻辑地址映射至第一物理地址。本发明提高了芯片固件升级效率和可靠性。级效率和可靠性。级效率和可靠性。


技术研发人员:叶红亮 费菲
受保护的技术使用者:沐曦集成电路(上海)有限公司
技术研发日:2023.07.11
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐