CN109766126B - 多核固件加载方法、装置、计算机设备及存储介质 - Google Patents
多核固件加载方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109766126B CN109766126B CN201910026798.XA CN201910026798A CN109766126B CN 109766126 B CN109766126 B CN 109766126B CN 201910026798 A CN201910026798 A CN 201910026798A CN 109766126 B CN109766126 B CN 109766126B
- Authority
- CN
- China
- Prior art keywords
- firmware
- crc
- ssd
- information
- accumulated value
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及多核固件加载方法、装置、计算机设备及存储介质,该方法包括获取SSD固件以及包头信息;对SSD固件进行拆分处理,以形成若干个数据包;对若干个数据包逐一进行搬运处理,以得到CRC累加值;判断CRC累加值与包头信息是否一致;若是,则释放主控芯片的各核,以运行SSD固件;若否,则返回获取SSD固件以及包头信息。本发明摒弃串口Xmodem协议传输结束后统一处理并搬运的观念,实现降低对SSD开发的硬件条件的依赖,缩减SSD产品的硬件开发成本。
Description
技术领域
本发明涉及固态硬盘,更具体地说是指多核固件加载方法、装置、计算机设备及存储介质。
背景技术
目前固态硬盘控制器加载固件的流程如图1所示,芯片上电后,由嵌入在微控制器内部且用于芯片正常工作的代码加载多核加载工程,再由多核加载工程通过串口的Xmodem协议将SSD(固态硬盘,Solid State Drives)固件下载至一段连续的内存区域,解析出SSD固件包中的包头信息和SSD固件信息,经过CRC(循环冗余校验,Cyclic Redundancy Check)校验正确后,通过DMAC(直接存储器访问控制器,Direct Memory Access Controller)模块将SSD固件搬运到各主控芯片的执行域,搬运完成后释放各主控芯片,以完成SSD固件加载。
多核SSD固件一般拥有几百KB甚至更大的数据量,系统需要提供一块连续的内存区域用于存放SSD固件信息,一般的方法是存放在SRAM(静态随机访问存储器,StaticRandom Access Memory)或DDR(双倍速率同步动态随机存储器,Double Data Rate SDRAM)中,但由于SSD主控芯片要适应各种结构的SSD产品,然而为了控制SSD产品的开发成本,并不是所有SSD产品都能提供大块ISRAM或SSD内存区域,这导致当前加载SSD固件的方法已不完全适用,会增加SSD的硬件成本。
因此,有必要设计一种新的方法,实现缩减SSD产品的硬件开发成本。
发明内容
本发明的目的在于克服现有技术的缺陷,提供多核固件加载方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:多核固件加载方法,包括:
获取SSD固件以及包头信息;
对SSD固件进行拆分处理,以形成若干个数据包;
对若干个数据包逐一进行搬运处理,以得到CRC累加值;
判断所述CRC累加值与包头信息是否一致;
若是,则释放主控芯片的各核,以运行SSD固件;
若否,则返回所述获取SSD固件以及包头信息。
其进一步技术方案为:所述获取SSD固件以及包头信息,包括:
对主控芯片进行上电,并加载和运行嵌入在微控制器内部且用于芯片正常工作的代码;
利用所述代码加载多核加载工程;
利用加载多核工程以及串口Xmodem协议获取SSD固件以及包头信息。
其进一步技术方案为:所述包头信息包括搬运参数以及SSD固件的CRC校验值。
其进一步技术方案为:所述数据包包括包头、包序列号、包序列号反码、固件信息以及CRC校验信息。
其进一步技术方案为:所述对若干个数据包逐一进行搬运处理,以得到CRC累加值,包括:
通过串口Xmodem协议下载数据包,以获取固件信息;
将固件信息存储于CRC累加变量中;
根据包头信息将固件信息搬运到目的地址;
对CRC累加变量进行累加,以形成累加值;
将所述累加值存储于CRC累加变量中;
判断所有数据包是否均下载完成;
若是,则将当前的CRC累计变量中的累加值作为CRC累加值;
若否,则进入所述通过串口Xmodem协议下载数据包,以获取固件信息。
其进一步技术方案为:所述判断所述CRC累加值与包头信息是否一致,包括:
获取包头信息内的SSD固件的CRC校验值;
判断所述CRC累加值与所述SSD固件的CRC校验值是否一致;
若是,则所述CRC累加值与包头信息一致;
若否,则所述CRC累加值与包头信息不一致。
本发明还提供了多核固件加载装置,包括:
固件获取单元,用于获取SSD固件以及包头信息;
拆分单元,用于对SSD固件进行拆分处理,以形成若干个数据包;
搬运处理单元,用于对若干个数据包逐一进行搬运处理,以得到CRC累加值;
判断单元,用于判断所述CRC累加值与包头信息是否一致,若否,则返回所述获取SSD固件以及包头信息;
释放单元,用于若是,则释放主控芯片的各核,以运行SSD固件。
其进一步技术方案为:所述固件获取单元包括:
代码处理子单元,用于对主控芯片进行上电,并加载和运行嵌入在微控制器内部且用于芯片正常工作的代码;
工程加载子单元,用于利用所述代码加载多核加载工程;
固件及信息获取子单元,用于利用加载多核工程以及串口Xmodem协议获取SSD固件以及包头信息。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过将SSD固件下载后进行拆分成若干个数据包,分别对这些数据包内的固件信息进行逐一搬移至目的地址,且每搬移完成一个数据包的固件信息,则对该固件信息进行CRC累加,所有数据包的固件信息搬移完成后,将CRC累加得到的数值为CRC累加值,与SSD固件包头内的SSD固件的CRC校验值进行对比,在两者一致的情况进行执行SSD固件,摒弃串口Xmodem协议传输结束后统一处理并搬运的观念,实现降低对SSD开发的硬件条件的依赖,缩减SSD产品的硬件开发成本。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的固件加载的流程示意图;
图2为本发明实施例提供的多核固件加载方法的流程示意图;
图3为本发明实施例提供的多核固件加载方法的子流程示意图;
图4为本发明实施例提供的多核固件加载方法的固件拆分示意图;
图5为本发明实施例提供的多核固件加载方法的子流程示意图;
图6为本发明实施例提供的多核固件加载方法的子流程示意图;
图7为本发明实施例提供的多核固件加载装置的示意性框图;
图8为本发明实施例提供的多核固件加载装置的固件获取单元的示意性框图;
图9为本发明实施例提供的多核固件加载装置的搬运处理单元的示意性框图;
图10为本发明实施例提供的多核固件加载装置的判断单元的示意性框图;
图11为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图2,图2为本发明实施例提供的多核固件加载方法的应用场景示意图。该多核固件加载方法应用于带有固态硬盘的服务器等设备中,以进行SSD固件的下载和加载,实现降低对SSD开发的硬件条件的依赖,缩减SSD产品的硬件开发成本。
图2是本发明实施例提供的多核固件加载方法的流程示意图。如图2所示,该方法包括以下步骤S110至S150。
S110、获取SSD固件以及包头信息。
在本实施例中,每个SSD固件都会携带一个包头信息,包头信息是指:数据包的头信息,该包头信息包括搬运参数以及SSD固件的CRC校验值,其中,搬运参数是用于指定SSD固件加载的目的地址、固件大小,位置参数等;SSD固件的CRC校验值是用于校验SSD固件加载后是否存在错误的校验值。
在一实施例中,如图3所示,上述的步骤S110可包括步骤S111~S113。
S111、对主控芯片进行上电,并加载和运行嵌入在微控制器内部且用于芯片正常工作的代码。
S112、利用所述代码加载多核加载工程;
S113、利用加载多核工程以及串口Xmodem协议获取SSD固件以及包头信息。
运行代码以便于加载多核加载工程,进而由多核加载工程应道bootloader引导串口采用串口Xmodem协议获取SSD固件以及包头信息。Xmodem是用于调制解调器纠错的协议,它实际上已经成了标准,使用此协议的调制解散调节器发送的数据包大小为128或1024字节,如果包成功接收,接收方会返回一个肯定应答信号(ACK),如果发现错误,则返回一个否定应答信号(NAK)并重新发送数据包,Xmodem使用奇偶校验作为查错控制的方法。
S120、对SSD固件进行拆分处理,以形成若干个数据包。
在本实施例中,如图4所示,按照1KB一个数据包的形式,对SSD固件进行拆分,形成若干个1KB大小的数据包。以使得固态硬盘控制器不再要求SSD产品提供大块内存存放固件信息,进一步缩减SSD产品的开发成本。
在本实施例中,上述的数据包包括包头、包序列号、包序列号反码、固件信息以及CRC校验信息,其中,该CRC校验信息与SSD固件的CRC校验值一致,当然,也可以是经过一定算法处理后的SSD固件的CRC校验值形成的数值作为CRC校验信息。
另外,上述的固件信息指的是拆分后的数据包的固件信息,所有数据包的固件信息组合形成SSD固件的整体信息。
S130、对若干个数据包逐一进行搬运处理,以得到CRC累加值。
将串口Xmodem协议下载的数据包逐一处理,摒弃串口Xmodem协议传输结束后统一处理并搬运的观念,降低对SSD开发的硬件条件的依赖。
在一实施例中,如图5所示,上述的步骤S130可包括步骤S131~S137。
S131、通过串口Xmodem协议下载数据包,以获取固件信息。
每下载一个数据包,则对该数据包进行提取固件信息的操作,以针对该固件信息进行CRC累加处理,以得到累加值。
S132、将固件信息存储于CRC累加变量中;
S133、根据包头信息将固件信息搬运到目的地址;
S134、对CRC累加变量进行累加,以形成累加值;
S135、将所述累加值存储于CRC累加变量中。
在本实施例中,具体是按照从第一个数据包获取的累加值到最后一个数据包获取的累加值进行叠加,以得到CRC累加值,比如,第一个数据包的固件信息进行CRC累加后得到累加值S1,将该累加值S1加入到CRC累加变量中,当获取第二个数据包的固件信息后,将该固件信息存储到CRC累加变量中,对累加值S1与固件信息所形成的CRC累加变量进行累加,从而得到新的累加值S2,将该累加值S2加入到CRC累加变量中,重复上述步骤,直至所有数据包均下载完成,最后的CRC累加变量的数值作为CRC累加值。
S136、判断所有数据包是否均下载完成;
S137、若是,则将当前的CRC累计变量中的累加值作为CRC累加值;
若否,则进入所述步骤S131。
每传输完一个数据包后,通过提取数据包中的固件信息和包头信息中的CRC校验值,可将其分别存放在数据变量和CRC累加变量中,然后将数据变量中的固件信息通过DMAC模块搬运到目的主控芯片的执行域,并将固件信息进行CRC累加,直至所有数据包传输完成。
S140、判断所述CRC累加值与包头信息是否一致。
在本实施例中,传输后的数据包的CRC累加值与最初始的SSD固件的CRC校验值进行对比,才可得知固件传输和加载过程中是否出现错误。
在一实施例中,如图6所示,上述的步骤S140可包括步骤S141~S144。
S141、获取包头信息内的SSD固件的CRC校验值;
S142、判断所述CRC累加值与所述SSD固件的CRC校验值是否一致;
S143、若是,则所述CRC累加值与包头信息一致;
S144、若否,则所述CRC累加值与包头信息不一致。
SSD固件的CRC校验值一般会放置在包头信息的末端或者某一指定位置,只需要将其提取出来,与CRC累加值进行对比,便可得知固件传输和加载过程中是否出现错误。
S150、若是,则释放主控芯片的各核,以运行SSD固件;
若否,则返回所述步骤S110。
理论上SSD产品只需要提供一个数据包大小的内存区域用于存放SSD固件信息,即1KB的内存,实际应用中可根据需求,传输完固定个数的数据包后再进行DMAC搬运,从而达到降低缓冲内存大小的同时保证固件加载效率的目的。有效缩减缓存SSD固件内存空间,通过串口Xmodem协议下载的数据包逐一处理并搬运,摒弃串口Xmodem协议传输结束后统一处理并搬运的观念,该方法为纯软件实现过程,减少对SSD硬件条件的依赖,从而达到有效降低内存成本的目的。
上述的多核固件加载方法,通过将SSD固件下载后进行拆分成若干个数据包,分别对这些数据包内的固件信息进行逐一搬移至目的地址,且每搬移完成一个数据包的固件信息,则对该固件信息进行CRC累加,所有数据包的固件信息搬移完成后,将CRC累加得到的数值为CRC累加值,与SSD固件包头内的SSD固件的CRC校验值进行对比,在两者一致的情况进行执行SSD固件,摒弃串口Xmodem协议传输结束后统一处理并搬运的观念,实现降低对SSD开发的硬件条件的依赖,缩减SSD产品的硬件开发成本。
图7是本发明实施例提供的一种多核固件加载装置300的示意性框图。如图7所示,对应于以上多核固件加载方法,本发明还提供一种多核固件加载装置300。该多核固件加载装置300包括用于执行上述多核固件加载方法的单元,该装置可以被配置于带有固态硬盘的服务器等设备中。
具体地,请参阅图7,该多核固件加载装置300包括:
固件获取单元301,用于获取SSD固件以及包头信息;
拆分单元302,用于对SSD固件进行拆分处理,以形成若干个数据包;
搬运处理单元303,用于对若干个数据包逐一进行搬运处理,以得到CRC累加值;
判断单元304,用于判断所述CRC累加值与包头信息是否一致,若否,则返回所述获取SSD固件以及包头信息;
释放单元305,用于若是,则释放主控芯片的各核,以运行SSD固件。
在一实施例中,如图8所示,所述固件获取单元301包括:
代码处理子单元3011,用于对主控芯片进行上电,并加载和运行嵌入在微控制器内部且用于芯片正常工作的代码;
工程加载子单元3012,用于利用所述代码加载多核加载工程;
固件及信息获取子单元3013,用于利用加载多核工程以及串口Xmodem协议获取SSD固件以及包头信息。
在一实施例中,如图9所示,所述搬运处理单元303包括:
下载子单元3031,用于通过串口Xmodem协议下载数据包,以获取固件信息;
信息存储子单元3032,用于将固件信息存储于CRC累加变量中;
搬运子单元3033,用于根据包头信息将固件信息搬运到目的地址;
累加子单元3034,用于对CRC累加变量进行累加,以形成累加值;
累加值存储子单元3035,用于将所述累加值存储于CRC累加变量中;
下载判断子单元3036,用于判断所有数据包是否均下载完成;若是,则将当前的CRC累计变量中的累加值作为CRC累加值;若否,则进入所述通过串口Xmodem协议下载数据包,以获取固件信息。
在一实施例中,如图10所示,所述判断单元304包括:
校验值获取子单元3041,用于获取包头信息内的SSD固件的CRC校验值;
数值判断子单元3042,用于判断所述CRC累加值与所述SSD固件的CRC校验值是否一致;若是,则所述CRC累加值与包头信息一致;若否,则所述CRC累加值与包头信息不一致。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述多核固件加载装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述多核固件加载装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图11所示的计算机设备上运行。
请参阅图11,图11是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑等具有通信功能且具备固态硬盘的电子设备。服务器是具备固态硬盘的服务器,具体可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图11,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种多核固件加载方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种多核固件加载方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
获取SSD固件以及包头信息;
对SSD固件进行拆分处理,以形成若干个数据包;
对若干个数据包逐一进行搬运处理,以得到CRC累加值;
判断所述CRC累加值与包头信息是否一致;
若是,则释放主控芯片的各核,以运行SSD固件;
若否,则返回所述获取SSD固件以及包头信息。
其中,所述数据包包括包头、包序列号、包序列号反码、固件信息以及CRC校验信息。
在一实施例中,处理器502在实现所述获取SSD固件以及包头信息步骤时,具体实现如下步骤:
对主控芯片进行上电,并加载和运行嵌入在微控制器内部且用于芯片正常工作的代码;
利用所述代码加载多核加载工程;
利用加载多核工程以及串口Xmodem协议获取SSD固件以及包头信息。
其中,所述包头信息包括搬运参数以及SSD固件的CRC校验值。
在一实施例中,处理器502在实现所述对若干个数据包逐一进行搬运处理,以得到CRC累加值步骤时,具体实现如下步骤:
通过串口Xmodem协议下载数据包,以获取固件信息;
将固件信息存储于CRC累加变量中;
根据包头信息将固件信息搬运到目的地址;
对CRC累加变量进行累加,以形成累加值;
将所述累加值存储于CRC累加变量中;
判断所有数据包是否均下载完成;
若是,则将当前的CRC累计变量中的累加值作为CRC累加值;
若否,则进入所述通过串口Xmodem协议下载数据包,以获取固件信息。
在一实施例中,处理器502在实现所述判断所述CRC累加值与包头信息是否一致步骤时,具体实现如下步骤:
获取包头信息内的SSD固件的CRC校验值;
判断所述CRC累加值与所述SSD固件的CRC校验值是否一致;
若是,则所述CRC累加值与包头信息一致;
若否,则所述CRC累加值与包头信息不一致。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
获取SSD固件以及包头信息;
对SSD固件进行拆分处理,以形成若干个数据包;
对若干个数据包逐一进行搬运处理,以得到CRC累加值;
判断所述CRC累加值与包头信息是否一致;
若是,则释放主控芯片的各核,以运行SSD固件;
若否,则返回所述获取SSD固件以及包头信息。
其中,所述数据包包括包头、包序列号、包序列号反码、固件信息以及CRC校验信息。
在一实施例中,所述处理器在执行所述计算机程序而实现所述获取SSD固件以及包头信息步骤时,具体实现如下步骤:
对主控芯片进行上电,并加载和运行嵌入在微控制器内部且用于芯片正常工作的代码;
利用所述代码加载多核加载工程;
利用加载多核工程以及串口Xmodem协议获取SSD固件以及包头信息。
其中,所述包头信息包括搬运参数以及SSD固件的CRC校验值。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对若干个数据包逐一进行搬运处理,以得到CRC累加值步骤时,具体实现如下步骤:
通过串口Xmodem协议下载数据包,以获取固件信息;
将固件信息存储于CRC累加变量中;
根据包头信息将固件信息搬运到目的地址;
对CRC累加变量进行累加,以形成累加值;
将所述累加值存储于CRC累加变量中;
判断所有数据包是否均下载完成;
若是,则将当前的CRC累计变量中的累加值作为CRC累加值;
若否,则进入所述通过串口Xmodem协议下载数据包,以获取固件信息。
在一实施例中,所述处理器在执行所述计算机程序而实现所述判断所述CRC累加值与包头信息是否一致步骤时,具体实现如下步骤:
获取包头信息内的SSD固件的CRC校验值;
判断所述CRC累加值与所述SSD固件的CRC校验值是否一致;
若是,则所述CRC累加值与包头信息一致;
若否,则所述CRC累加值与包头信息不一致。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.多核固件加载方法,其特征在于,包括:
获取SSD固件以及包头信息;
对SSD固件进行拆分处理,以形成若干个数据包;
对若干个数据包逐一进行搬运处理,以得到CRC累加值;
判断所述CRC累加值与包头信息是否一致;
若是,则释放主控芯片的各核,以运行SSD固件;
若否,则返回所述获取SSD固件以及包头信息;
所述数据包包括包头、包序列号、包序列号反码、固件信息以及CRC校验信息;
所述对若干个数据包逐一进行搬运处理,以得到CRC累加值,包括:
通过串口Xmodem协议下载数据包,以获取固件信息;
将固件信息存储于CRC累加变量中;
根据包头信息将固件信息搬运到目的地址;
对CRC累加变量进行累加,以形成累加值;
将所述累加值存储于CRC累加变量中;
判断所有数据包是否均下载完成;
若是,则将当前的CRC累计变量中的累加值作为CRC累加值;
若否,则进入所述通过串口Xmodem协议下载数据包,以获取固件信息。
2.根据权利要求1所述的多核固件加载方法,其特征在于,所述获取SSD固件以及包头信息,包括:
对主控芯片进行上电,并加载和运行嵌入在微控制器内部且用于芯片正常工作的代码;
利用所述代码加载多核加载工程;
利用加载多核工程以及串口Xmodem协议获取SSD固件以及包头信息。
3.根据权利要求2所述的多核固件加载方法,其特征在于,所述包头信息包括搬运参数以及SSD固件的CRC校验值。
4.根据权利要求3所述的多核固件加载方法,其特征在于,所述判断所述CRC累加值与包头信息是否一致,包括:
获取包头信息内的SSD固件的CRC校验值;
判断所述CRC累加值与所述SSD固件的CRC校验值是否一致;
若是,则所述CRC累加值与包头信息一致;
若否,则所述CRC累加值与包头信息不一致。
5.多核固件加载装置,其特征在于,包括:
固件获取单元,用于获取SSD固件以及包头信息;
拆分单元,用于对SSD固件进行拆分处理,以形成若干个数据包;所述数据包包括包头、包序列号、包序列号反码、固件信息以及CRC校验信息;
搬运处理单元,用于对若干个数据包逐一进行搬运处理,以得到CRC累加值;
判断单元,用于判断所述CRC累加值与包头信息是否一致,若否,则返回所述获取SSD固件以及包头信息;
释放单元,用于若是,则释放各个主控芯片,以运行SSD固件;
所述搬运处理单元包括:
下载子单元,用于通过串口Xmodem协议下载数据包,以获取固件信息;
信息存储子单元,用于将固件信息存储于CRC累加变量中;
搬运子单元,用于根据包头信息将固件信息搬运到目的地址;
累加子单元,用于对CRC累加变量进行累加,以形成累加值;
累加值存储子单元,用于将所述累加值存储于CRC累加变量中;
下载判断子单元,用于判断所有数据包是否均下载完成;若是,则将当前的CRC累计变量中的累加值作为CRC累加值;若否,则进入所述通过串口Xmodem协议下载数据包,以获取固件信息。
6.根据权利要求5所述的多核固件加载装置,其特征在于,所述固件获取单元包括:
代码处理子单元,用于对主控芯片进行上电,并加载和运行嵌入在微控制器内部且用于芯片正常工作的代码;
工程加载子单元,用于利用所述代码加载多核加载工程;
固件及信息获取子单元,用于利用加载多核工程以及串口Xmodem协议获取SSD固件以及包头信息。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的方法。
8.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910026798.XA CN109766126B (zh) | 2019-01-11 | 2019-01-11 | 多核固件加载方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910026798.XA CN109766126B (zh) | 2019-01-11 | 2019-01-11 | 多核固件加载方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766126A CN109766126A (zh) | 2019-05-17 |
CN109766126B true CN109766126B (zh) | 2022-02-01 |
Family
ID=66452601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910026798.XA Active CN109766126B (zh) | 2019-01-11 | 2019-01-11 | 多核固件加载方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766126B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625388B (zh) * | 2020-05-28 | 2023-07-04 | 深圳忆联信息系统有限公司 | Ssd前端错误处理方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216773A (zh) * | 2008-01-09 | 2008-07-09 | 深圳国人通信有限公司 | 一种嵌入式Linux系统固件下载方法和装置 |
CN101408847A (zh) * | 2008-11-27 | 2009-04-15 | 成都市华为赛门铁克科技有限公司 | 一种固件加载方法、系统和装置 |
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6848046B2 (en) * | 2001-05-11 | 2005-01-25 | Intel Corporation | SMM loader and execution mechanism for component software for multiple architectures |
-
2019
- 2019-01-11 CN CN201910026798.XA patent/CN109766126B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216773A (zh) * | 2008-01-09 | 2008-07-09 | 深圳国人通信有限公司 | 一种嵌入式Linux系统固件下载方法和装置 |
CN101408847A (zh) * | 2008-11-27 | 2009-04-15 | 成都市华为赛门铁克科技有限公司 | 一种固件加载方法、系统和装置 |
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109766126A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250192B (zh) | 上位机的软件升级方法及系统 | |
WO2020124960A1 (zh) | 数据存储的检测方法、装置、存储介质及电子装置 | |
CN111045933B (zh) | 一种回归策略更新方法、装置、存储介质及终端设备 | |
EP3518100B1 (en) | Quick loading method for kernel image file, and apparatus | |
US8782643B2 (en) | Device and method for controlling communication between BIOS and BMC | |
CN108123851B (zh) | 分布式系统中主从节点同步链路的存活检测方法及装置 | |
CN112165533B (zh) | 数据校验、传输方法、装置、设备、系统及存储介质 | |
CN110958024B (zh) | 一种串口数据编码方法、装置、嵌入式设备及通信系统 | |
US20180173608A1 (en) | Software Defect Analysis Tool | |
CN110995851B (zh) | 消息处理方法、装置、存储介质及设备 | |
US9507761B2 (en) | Comparing webpage elements having asynchronous functionality | |
WO2020010727A1 (zh) | 应用更新方法和装置及计算机可读存储介质 | |
JP2017504106A5 (zh) | ||
CN109766126B (zh) | 多核固件加载方法、装置、计算机设备及存储介质 | |
CN110618859B (zh) | 支持按顺序打包的交易池设计方法、电子设备 | |
CN111522562A (zh) | 洗碗机软件烧录方法、装置及其设备 | |
CN108200157B (zh) | 主节点触发回退的日志同步方法及装置 | |
CN113396391B (zh) | 应用程序启动的方法、装置、电子设备及存储介质 | |
CN114253619A (zh) | SSD多级Boot的方法、装置、计算机设备及存储介质 | |
CN113568398B (zh) | 一种分散控制系统组态删除方法和系统 | |
CN112035071B (zh) | 磁盘数据读取方法、装置、计算机设备及存储介质 | |
CN111475220B (zh) | 冷启动方法、装置、电子设备及计算机存储介质 | |
CN113791808A (zh) | 底层程序升级方法、装置、计算机设备及存储介质 | |
CN114328080A (zh) | 一种固件状态检测的方法及装置、电子设备 | |
CN111193777B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |