CN111782531A - 一种芯片的固件完整性检测方法及系统 - Google Patents
一种芯片的固件完整性检测方法及系统 Download PDFInfo
- Publication number
- CN111782531A CN111782531A CN202010625204.XA CN202010625204A CN111782531A CN 111782531 A CN111782531 A CN 111782531A CN 202010625204 A CN202010625204 A CN 202010625204A CN 111782531 A CN111782531 A CN 111782531A
- Authority
- CN
- China
- Prior art keywords
- chip
- firmware
- processor
- communication module
- result
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
Abstract
本发明提供一种芯片的固件完整性检测方法及系统,本方法包括:S1,将固件发送至芯片(200)中;S2,获取第一校验结果和第二校验结果,其中,第一校验结果由本地对固件进行校验而产生,第二校验结果由芯片(200)对固件进行校验而产生;S3,根据第一校验结果和第二校验结果判断固件是否成功下载到芯片(200)中。本发明提供的方法能够缩短芯片(200)的固件读取的时间,加快固件数据完整性确认的速度。
Description
技术领域
本发明涉及芯片测试技术领域,具体涉及一种芯片的固件完整性检测方法及系统。
背景技术
传统的芯片固件下载方法:通过外部接口I2C双向二线制同步串行总线、串行外设接口(Serial Peripheral Interface,SPI)、通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter,UART)、联合测试工作组(Joint Test ActionGroup,JTAG)接口、调试仿真接口等串行接口下载固件,然后读取芯片内部的固件,进行数据比较,判断固件数据的完整性。如果读取数据与下载数据一致,芯片固件下载成功;如果读取数据与下载数据不一致,芯片固件下载失败。
由于外部接口I2C、SPI、UART等串行通讯接口,通讯速度一般很慢,远小于芯片内部CPU运行速度,本发明采用SOC芯片内部CPU对固件信息进行数据校验,能够减少固件读取的时间,加快固件数据完整性确认的速度。
发明内容
(一)要解决的技术问题
针对上述问题,本发明提供了一种芯片的固件完整性检测方法及系统,用于至少部分解决传统测试方法效率低、测试时间长等技术问题。
(二)技术方案
本发明一方面提供了一种芯片的固件完整性检测方法,包括:S1,将固件发送至芯片200中;S2,获取第一校验结果和第二校验结果,其中,第一校验结果由本地对固件进行校验而产生,第二校验结果由芯片200对固件进行校验而产生;S3,根据第一校验结果和第二校验结果判断固件是否成功下载到芯片200中。
进一步地,芯片200包括处理器201和存储器202,S1具体包括:将固件发送至芯片200的存储器202中,处理器201通过并行接口从存储器202中读取固件,进行数据校验。
进一步地,芯片200还包括数据校验模块203,S2具体包括:处理器201读取固件后通过数据校验模块203进行运算,得到第二校验结果。
进一步地,芯片200还包括串行通讯模块204,S1具体还包括:固件通过串行通讯模块204发送至芯片200的存储器中;S2具体还包括:数据校验运行指令通过串行通讯模块204发送至芯片200中;S3具体包括:第二校验结果通过串行通讯模块204发送至本地,进行结果判断。
进一步地,S3具体包括:判断第一校验结果的运算值与第二校验结果的运算值是否一致,若运算值一致则固件下载成功。
进一步地,S2之前还包括:使芯片200下电,并使该芯片200重新进行上电复位。
本发明另一方面提供了一种嵌入式系统300,包括处理器301和存储器302,存储器302存储有固件,处理器301将存储器302中的固件发送至芯片200中;处理器301将校验运行指令发送至芯片200中,并在本地进行校验运算得到第一校验结果;处理器301将第一校验结果与芯片200对固件进行校验而产生的第二校验结果进行比对,判断固件是否成功下载到芯片200中。
进一步地,嵌入式系统300还包括:数据校验模块303,处理器301通过数据校验模块303进行运算,得到第一校验结果。
进一步地,嵌入式系统300还包括:接口通讯模块304,处理器301通过接口通讯模块304将固件发送至芯片200中;处理器301通过接口通讯模块304将校验运行指令发送至芯片200中;处理器301通过接口通讯模块304获取第二校验结果。
进一步地,接口通讯模块304与芯片200的串行通讯模块204连接,进行信号和数据的传输。
(三)有益效果
本发明实施例提供的一种芯片的固件完整性检测方法及系统,通过比较本地对固件进行校验而产生的第一校验结果和芯片200对固件进行校验而产生第二校验结果,节省了通过串行接口读取芯片200内部固件再进行数据比较的时间,加快固件数据完整性确认的速度。
附图说明
图1示意性示出了根据本发明实施例芯片的固件完整性检测方法的流程图;
图2示意性示出了根据本发明实施例芯片内部结构示意图;
图3示意性示出了根据本发明实施例芯片的固件完整性测试系统结构示意图;
图4示意性示出了根据本发明实施例芯片的固件完整性检测方法的测试流程图;
图5示意性示出了根据本发明实施例芯片的固件完整性检测方法与传统测试方法的测试时间对比图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明的第一实施例提供了一种芯片的固件完整性检测方法,请参见图1,包括:
S1,将固件发送至芯片200中;
程序开始,将外部存储模块中存储的固件信息下载到待测芯片200内部的存储器202当中。
S2,获取第一校验结果和第二校验结果,其中,第一校验结果由本地对固件进行校验而产生,第二校验结果由芯片200对固件进行校验而产生;
本地检测系统300对固件进行数据校验得到第一校验结果,待测芯片200对下载完成的固件进行数据校验得到第二校验结果,第一校验结果和第二校验结果由相同的校验运算方法得出。
S3,根据第一校验结果和第二校验结果判断固件是否成功下载到芯片200中。
判断第一校验结果和第二校验结果是否一致,若校验结果一致则固件下载成功,若校验结果不一致则固件下载失败。
在上述实施例的基础上,芯片200包括处理器201和存储器202,S1具体包括:将固件发送至芯片200的存储器202中,处理器201通过并行接口从存储器202中读取固件,进行数据校验。
芯片200的处理器201和存储器202通过并行接口连接,固件发送至芯片200的存储器202中后,处理器201内部采用并行接口读取固件,开始数据校验运算。
在上述实施例的基础上,芯片200还包括数据校验模块,S2具体包括:处理器201读取固件后通过数据校验模块进行运算,得到第二校验结果。
数据校验运算通过芯片200中的数据校验模块203进行,如果芯片200没有数据校验硬件模块,也可以通过软件代码的方式实现数据校验硬件模块的功能。
在上述实施例的基础上,芯片200还包括串行通讯模块204,S1具体还包括:固件通过串行通讯模块204发送至芯片200的存储器202中;S2具体还包括:数据校验运行指令通过串行通讯模块204发送至芯片200中;S3具体包括:第二校验结果通过串行通讯模块204发送至本地,进行结果判断。
串行通讯模块204用于发送与接收信号和数据,具体包括传输发送至芯片200的固件信息、传输数据校验运行指令,传输芯片200运算得到的第二校验结果。需要说明的是,串行通讯模块204包括但不限于I2C、SPI、UART、JTAG等串行接口装置。
在上述实施例的基础上,S3具体包括:判断第一校验结果的运算值与第二校验结果的运算值是否一致,若运算值一致则固件下载成功。
数据校验运算得到的结果可以就是一个值,通过比较一个值而不是整个固件信息,减少了比对步骤的数据量大小,因此缩短了芯片200的固件读取时间,加快了固件数据完整性确认的速度。
在上述实施例的基础上,S2之前还包括:使芯片200下电,并使该芯片200重新进行上电复位。
该操作使芯片200重新上电复位是为了避免假性下载的问题。
以下对本实施例中的芯片200内部结构进行实例说明,请参见图2。芯片200内部的存储器202,一般采用多次擦写编程存储器、NAND FLASH闪存、NOR FLASH闪存等器件。芯片200内部的处理器201,通过并行接口与内部的非易失存储器202进行连接,有多根控制线、数据线和地址线,因此内部CPU核与非易失存储器交互数据,通讯速度非常快。芯片出于IO管脚的封装数量的考虑,一般引出串行接口供外面使用,这样可以降低芯片尺寸和成本。传统的下载方法,通过串行通讯接口204,经过芯片200内部CPU处理,访问非易失存储器的数据;而本发明通过CPU核读取存储器中固件,并在芯片200内部进行数据校验,缩短了芯片200的固件读取时间,提高了芯片200的固件完整性检测的效率。
本发明的第二实施例提供了一种嵌入式系统300,请参见图3。本嵌入式系统300包括处理器301和存储器302,存储器302存储有固件,处理器301将存储器302中的固件发送至待检测芯片200中;处理器301将校验运行指令发送至待检测芯片200中,并在本地进行校验运算得到第一校验结果;处理器301将第一校验结果与待检测芯片200对固件进行校验而产生的第二校验结果进行比对,判断固件是否成功下载到芯片200中。
在上述实施例的基础上,嵌入式系统300还包括:数据校验模块303,处理器301通过数据校验模块303进行运算,得到第一校验结果。
数据校验运算通过数据校验模块303进行,数据校验模块303包含数据校验算法,通常用于数据传输过程中,控制数据传输出错,保证数据的完整性。常用的数据校验算法包括:奇偶校验、纵向冗余校验(Longitudinal Redundancy Check,LRC)、循环冗余校验(Cyclic Redundancy Codes,CRC)等校验算法。本发明以下实施例采用CRC-32算法进行描述,只是用于描述本发明的具体实施流程,并不限制于使用CRC-32算法。
在上述实施例的基础上,嵌入式系统300还包括:接口通讯模块304,处理器301通过接口通讯模块304将固件发送至芯片200中;处理器301通过接口通讯模块304将校验运行指令发送至芯片200中;处理器301通过接口通讯模块304获取第二校验结果。
接口通讯模块304用于发送与接收信号和数据,与芯片200进行信号和数据的传输,具体包括将固件发送至芯片200中、将数据校验运行指令发送至芯片200中、传输芯片200发送的第二校验结果的数据。
在上述实施例的基础上,嵌入式系统300中的接口通讯模块304与芯片200的串行通讯模块204连接,进行信号和数据的传输。
嵌入式系统300与芯片200之间的数据和信号传输通过接口通讯模块304和串行通讯模块204实现。
具体地,图4提供了一种芯片的固件完整性检测方法的完整流程图,包括:
S101,程序开始,嵌入式系统300中的处理器301将存储器302中的固件,通过接口通讯模块304,下载到待测芯片200内部的存储器202中。
S102,使芯片200下电,并使该芯片200重新进行上电复位,避免出现假性下载的问题,S101和S102相当于芯片的固件完整性检测方法中的S1步骤。
S201,固件下载完成后,嵌入式系统300中的处理器301通过接口通讯模块304发送指令命令,使待测芯片200开始进行CRC运算。
S202,嵌入式系统300和待测芯片200,采用内部的CRC模块,开始计算各自内部固件信息的CRC值,S201和S202相当于芯片的固件完整性检测方法中的S2步骤。
S301,然后进行CRC比较,CRC值一致则测试成功,CRC值不一致则测试失败,S301相当于芯片的固件完整性检测方法中的S3步骤。
进一步地,芯片200采用串行通讯12C接口,嵌入式系统300采用STM32的单片机,嵌入式系统300将固件下载到芯片200中,芯片200重新上电复位;嵌入式系统300通过串行通讯12C接口,操作芯片200内部自定义的寄存器Register_CRC_Start,设置其值为1,开启CRC的运算。嵌入式系统300和待测芯片200,两边同时计算CRC。嵌入式系统300通过串行通讯I2C接口,读取芯片200内部自定义的寄存器Register_CRC_Done。如果其中是1,表示芯片200内部已经计算完成,如果是0,表示未完成、需要等待。比较两边的值是否一致,如果一致表示固件下载成功。
图5为本发明实施例提供的测试时间的对比图。其中固件下载的时间是一样的,都是通过串行通讯模块204,将固件下载到芯片200内部的存储器202,然后芯片200重新进行上电复位。传统的下载方案,由于采用串行方式进行固件读取,测试时间长。本发明的技术方案,嵌入式系统300中的处理器301采用并行接口读取固件,进行CRC运算,通过比较CRC值,判断固件是否下载成功,测试速度快。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种芯片的固件完整性检测方法,其特征在于,方法包括:
S1,将固件发送至所述芯片(200)中;
S2,获取第一校验结果和第二校验结果,其中,所述第一校验结果由本地对所述固件进行校验而产生,所述第二校验结果由芯片(200)对所述固件进行校验而产生;
S3,根据所述第一校验结果和第二校验结果判断所述固件是否成功下载到所述芯片(200)中。
2.根据权利要求1所述的固件完整性检测方法,其特征在于,所述芯片(200)包括处理器(201)和存储器(202),所述S1具体包括:将固件发送至所述芯片(200)的存储器(202)中,所述处理器(201)通过并行接口从所述存储器(202)中读取固件,进行数据校验。
3.根据权利要求2所述的固件完整性检测方法,其特征在于,所述芯片(200)还包括数据校验模块(203),所述S2具体包括:所述处理器(201)读取固件后通过数据校验模块(203)进行运算,得到第二校验结果。
4.根据权利要求3所述的固件完整性检测方法,其特征在于,所述芯片(200)还包括串行通讯模块(204),所述S1具体还包括:所述固件通过串行通讯模块(204)发送至所述芯片(200)的存储器(202)中;所述S2具体还包括:数据校验运行指令通过串行通讯模块(204)发送至所述芯片(200)中;所述S3具体包括:所述第二校验结果通过串行通讯模块(204)发送至本地,进行结果判断。
5.根据权利要求1所述的固件完整性检测方法,其特征在于,所述S3具体包括:判断所述第一校验结果的运算值与第二校验结果的运算值是否一致,若运算值一致则固件下载成功。
6.根据权利要求1所述的固件完整性检测方法,其特征在于,所述S2之前还包括:
使芯片(200)下电,并使该芯片(200)重新进行上电复位。
7.一种嵌入式系统(300),包括处理器(301)和存储器(302),其特征在于,所述存储器(302)存储有固件,所述处理器(301)将存储器(302)中的固件发送至芯片(200)中;所述处理器(301)将校验运行指令发送至所述芯片(200)中,并在本地进行校验运算得到第一校验结果;所述处理器(301)将第一校验结果与所述芯片(200)对所述固件进行校验而产生的第二校验结果进行比对,判断所述固件是否成功下载到所述芯片(200)中。
8.根据权利要求7所述的嵌入式系统(300),其特征在于,还包括:数据校验模块(303),所述处理器(301)通过所述数据校验模块(303)进行运算,得到第一校验结果。
9.根据权利要求7所述的嵌入式系统(300),其特征在于,还包括:接口通讯模块(304),所述处理器(301)通过所述接口通讯模块(304)将所述固件发送至所述芯片(200)中;所述处理器(301)通过所述接口通讯模块(304)将校验运行指令发送至所述芯片(200)中;所述处理器(301)通过所述接口通讯模块(304)获取所述第二校验结果。
10.根据权利要求9所述的嵌入式系统(300),其特征在于,所述接口通讯模块(304)与所述芯片(200)的串行通讯模块(204)连接,进行信号和数据的传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010625204.XA CN111782531A (zh) | 2020-07-02 | 2020-07-02 | 一种芯片的固件完整性检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010625204.XA CN111782531A (zh) | 2020-07-02 | 2020-07-02 | 一种芯片的固件完整性检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782531A true CN111782531A (zh) | 2020-10-16 |
Family
ID=72757795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010625204.XA Pending CN111782531A (zh) | 2020-07-02 | 2020-07-02 | 一种芯片的固件完整性检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782531A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858396A (zh) * | 2023-02-02 | 2023-03-28 | 北京紫光芯能科技有限公司 | 用于芯片验证的方法及装置、电子设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105549974A (zh) * | 2015-12-09 | 2016-05-04 | 合肥联宝信息技术有限公司 | 一种芯片的固件更新的方法及系统 |
CN110389778A (zh) * | 2019-07-19 | 2019-10-29 | 苏州浪潮智能科技有限公司 | 一种异构加速平台的mcu固件升级方法及相关装置 |
CN111273153A (zh) * | 2020-01-21 | 2020-06-12 | 广芯微电子(广州)股份有限公司 | 一种芯片的自动测试方法、装置和系统 |
-
2020
- 2020-07-02 CN CN202010625204.XA patent/CN111782531A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105549974A (zh) * | 2015-12-09 | 2016-05-04 | 合肥联宝信息技术有限公司 | 一种芯片的固件更新的方法及系统 |
CN110389778A (zh) * | 2019-07-19 | 2019-10-29 | 苏州浪潮智能科技有限公司 | 一种异构加速平台的mcu固件升级方法及相关装置 |
CN111273153A (zh) * | 2020-01-21 | 2020-06-12 | 广芯微电子(广州)股份有限公司 | 一种芯片的自动测试方法、装置和系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858396A (zh) * | 2023-02-02 | 2023-03-28 | 北京紫光芯能科技有限公司 | 用于芯片验证的方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134415A (zh) | 一种控制器及其软件升级方法和装置 | |
CN110618903A (zh) | 电子设备测试方法与装置 | |
CN114328316B (zh) | Dma控制器、soc系统及基于dma控制器的数据搬运方法 | |
CN114860279B (zh) | 一种快速空片升级方法 | |
CN111145826B (zh) | 一种存储器内建自测试方法、电路及计算机存储介质 | |
CN114281394A (zh) | 一种快速在线升级程序的方法、系统、设备及介质 | |
TWI564904B (zh) | 資料處理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111782531A (zh) | 一种芯片的固件完整性检测方法及系统 | |
CN112380046A (zh) | 计算结果校验方法、系统、装置、设备及存储介质 | |
CN113641381A (zh) | Dsp固件远程升级装置、方法及工业机器人 | |
CN112395129A (zh) | 存储校验方法、装置、计算芯片、计算机设备及存储介质 | |
CN111048142B (zh) | 应用于闪存控制器的编码器自我测试电路及相关的方法 | |
CN113360161A (zh) | 资源升级方法及相关产品 | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
CN116204214A (zh) | Bmc升级方法、装置、系统、电子设备及存储介质 | |
CN111596199B (zh) | 一种测试芯片、集成电路测试方法及系统和检测设备 | |
CN104142839A (zh) | 一种防止音频芯片初始化失效的方法 | |
CN212181459U (zh) | Fpga升级系统 | |
CN113672260A (zh) | 一种处理器cpu初始化方法 | |
CN113010114A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN112596749A (zh) | 一种系统开机自检和自修复的方法、装置 | |
CN117170704B (zh) | 基于硬件iic的远程升级方法和装置 | |
CN110118925A (zh) | 一种核心板测试方法及系统 | |
CN112181444B (zh) | 一种基于1553b总线的dsp多核数据烧写方法 | |
CN112445659B (zh) | 一种多协议高速serdes测试实现方法及系统 |
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 |