CN109614118B - 一种SPI Flash固件烧录方法及装置 - Google Patents
一种SPI Flash固件烧录方法及装置 Download PDFInfo
- Publication number
- CN109614118B CN109614118B CN201811410001.8A CN201811410001A CN109614118B CN 109614118 B CN109614118 B CN 109614118B CN 201811410001 A CN201811410001 A CN 201811410001A CN 109614118 B CN109614118 B CN 109614118B
- Authority
- CN
- China
- Prior art keywords
- firmware
- burned
- burning
- spi flash
- lower computer
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种SPI Flash固件烧录方法及装置。该固件烧录方法包括:步骤1:上位机向下位机发出烧录指令;步骤2:下位机检测待烧录固件的大小;步骤3:下位机擦除SPI Flash内与待烧录固件大小相同的存储空间;步骤4:下位机将待烧录固件写入至SPI Flash内被擦除的存储空间内。该固件烧录方法能够节省更多的烧录时间,提高烧录效率。
Description
技术领域
本发明涉及固件烧录技术,尤其涉及一种SPI Flash固件烧录方法及装置。
背景技术
大多数电子***,都需要使用SPI Flash来储存程序固件。在烧录固件的过程中,进行写入操作之前,需要先进行擦除操作,以将SPI Flash进行擦除,而现有的SPI Flash烧录器一般都是整片擦除SPI Flash,尽管待烧录固件的大小可能只有SPI Flash容量的一半,甚至几分之一,多余的擦除操作带来了不必要的时间浪费,擦除时间甚至是写入时间的十几倍,而且SPI Flash的存储空间越大,所需的擦除时间也越长。
另外,现在的烧录器需要手动选择待烧录固件,而烧录器无法判断待烧录固件是否正确,比如要烧录的固件是A版本,生产线的操作人员如果误选择了B版本,甚至选择了其他不是固件的文件,而这些烧录器是无法识别的。
发明内容
为了解决上述现有技术的不足,本发明提供一种SPI Flash固件烧录方法及装置,能够节省更多的烧录时间,提高烧录效率。
本发明所要解决的技术问题通过以下技术方案予以实现:
一种SPI Flash固件烧录方法,包括:
步骤1:上位机向下位机发出烧录指令;
步骤2:下位机检测待烧录固件的大小;
步骤3:下位机擦除SPI Flash内与待烧录固件大小相同的存储空间;
步骤4:下位机将待烧录固件写入至SPI Flash内被擦除的存储空间内。
进一步地,下位机的内置存储单元里储存有待烧录固件,下位机从其内置存储单元里读取待烧录固件。
进一步地,在步骤1中,上位机在发出烧录指令前,还包括:检测待烧录固件的烧录次数,若烧录次数为0,则将其储存的待烧录固件传输至下位机,以将待烧录固件储存在下位机的内置存储单元里。
进一步地,在步骤4中,下位机将待烧录固件写入SPI Flash内后,检测SPI Flash内的已写入固件,若已写入固件与其储存的待烧录固件不一致,则重复步骤2-4。
进一步地,在进行步骤4之后,还包括:
步骤5:下位机向上位机发送一反馈信号;
步骤6:上位机将待烧录固件的烧录次数+1。
进一步地,上位机每次开机后,均将待烧录固件的烧录次数重置为0。
进一步地,上位机每次开机后,均通过互联网检测其储存的待烧录固件与服务器上的新发布固件是否一致,若不一致则将其储存的待烧录固件更新为服务器上的新发布固件。
进一步地,下位机将烧录进程和结果实时反馈至上位机。
一种SPI Flash固件烧录装置,包括依次电连接的上位机、下位机和存储器,其中,所述下位机电连接至SPI Flash以进行烧录;所述存储器用于储存供所述下位机执行的烧录程序。
进一步地,所述下位机具有内置存储单元,用于储存待烧录固件。
本发明具有如下有益效果:该SPI Flash固件烧录方法在写入固件前的擦除操作中,仅擦除SPI Flash内与待烧录固件大小相同的部分存储空间,相较于现有烧录器需擦除整片SPI Flash内的全部存储空间,能够节省更多的烧录时间,提高烧录效率。
附图说明
图1为本发明提供的固件烧录方法的步骤框图;
图2为本发明提供的固件烧录方法中上位机在步骤1的步骤框图;
图3为本发明提供的固件烧录方法中上位机开机后的步骤框图;
图4为本发明提供的固件烧录装置的原理框图。
具体实施方式
下面结合附图和实施例对本发明进行详细的说明。
实施例一
如图1所示,一种SPI Flash固件烧录方法,包括:
步骤1:上位机向下位机发出烧录指令;
在该步骤1中,生产线的操作人员将SPI Flash电连接至下位机后,通过操作上位机里的烧录程序,以对下位机发出烧录指令,启动对SPI Flash的固件烧录。
下位机的内置存储单元里储存的待烧录固件时从上位机处接收的,因此,在启动对SPI Flash的固件烧录后,在步骤1中,上位机在发出烧录指令前,如图2所示,还包括:检测待烧录固件的烧录次数,若烧录次数为0,则将其储存的待烧录固件传输至下位机,以将待烧录固件储存在下位机的内置存储单元里。
该SPI Flash固件烧录方法在第一次烧录待烧录固件时,上位机都先将待烧录固件传输并储存至下位机的内置存储单元里。
步骤2:下位机检测待烧录固件的大小;
步骤3:下位机擦除SPI Flash内与待烧录固件大小相同的存储空间;
步骤4:下位机将待烧录固件写入至SPI Flash内被擦除的存储空间内。
该SPI Flash固件烧录方法在写入固件前的擦除操作中,仅擦除SPI Flash内与待烧录固件大小相同的部分存储空间,相较于现有烧录器需擦除整片SPI Flash内的全部存储空间,能够节省更多的烧录时间,提高烧录效率。
其中,下位机具有一内置存储单元,内置存储单元里储存有待烧录固件,在固件烧录过程中,下位机从其内置存储单元里读取待烧录固件。
该SPI Flash固件烧录方法将待烧录固件储存在下位机的内置存储单元里,在固件烧录过程中,下位机直接从其内置存储单元里读取待烧录固件,可避免在烧录多片SPIFlash时,下位机频繁从上位机里读取待烧录固件,以节省数据传输时间。
同时,为了保证上位机传输给下位机的带烧录固件是最新版本,优选地,如图3所示,上位机每次开机后,均通过互联网检测其储存的待烧录固件与服务器上的新发布固件是否一致,若不一致则将其储存的待烧录固件更新为服务器上的新发布固件。
同时,上位机每次开机后,均将待烧录固件的烧录次数重置为0。
其中,上位机在检测其储存的待烧录固件与服务器上的新发布固件是否一致时,包括:
读取服务器上的新发布固件的检验码;
将新固件的校验码与其储存的待烧录固件的校验码进行比对,若不一致则判定新固件和待烧录固件不一致。
本实施例中,每个固件的头部上都被增设了一个两字节的CRC16校验码,不同固件信息的固件上具有不同的CRC16校验码,也就是说,若两个固件的CRC16校验码是相同的话,则说明这两个固件里面的固件信息相同,是同一版固件。
另外,在步骤4中,下位机将待烧录固件写入SPI Flash内后,检测SPI Flash内的已写入固件,若已写入固件与其储存的待烧录固件不一致,则重复步骤2-4。
该SPI Flash固件烧录方法可自动识别已写入固件是否为需进行烧录的待烧录固件,防止下位机将其他版本的固件或一些非固件文件错误写入到SPI Flash内,只有写入正确的待烧录固件才算完成一片SPI Flash的烧录。
其中,下位机在检测其储存的待烧录固件与SPI Flash内的已写入固件是否一致时,具体步骤包括:
读取SPI Flash内的已写入固件的检验码;
将已写入固件的校验码与其储存的待烧录固件的校验码进行比对,若不一致则判定已写入固件和待烧录固件不一致。
另外,在进行步骤4之后,还包括:
步骤5:下位机向上位机发送一反馈信号;
步骤6:上位机将待烧录固件的烧录次数+1。
该SPI Flash固件烧录方法具有自动统计固件烧录次数的功能,生产线的操作人员通过上位机显示的烧录次数可得知已完成固件烧录的SPI Flash的数量。
同时,下位机将烧录进程和结果实时反馈至上位机,以方便生产线的操作人员实时了解烧录进程和结果。
实施例二
如图4所示,一种SPI Flash固件烧录装置,用于实施例一中所述的SPI Flash固件烧录方法,包括依次电连接的上位机、下位机和存储器,其中,所述下位机电连接至SPIFlash以进行烧录;所述存储器用于储存供所述下位机执行的烧录程序。
本实施例中,所述上位机采用个人电脑,所述下位机采用型号为N32905的单片机,所述存储器采用Flash闪存;所述上位机和下位机之间通过USB线进行通讯连接,所述下位机和存储器之间通过总线进行通讯连接。
所述下位机具有内置存储单元,用于储存待烧录固件;本实施例中,型号为N32905的单片机具有内置DDR单元。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制,但凡采用等同替换或等效变换的形式所获得的技术方案,均应落在本发明的保护范围之内。
Claims (8)
1.一种SPI Flash固件烧录方法,其特征在于,包括:
步骤1:上位机向下位机发出烧录指令;
步骤2:下位机检测待烧录固件的大小;
步骤3:下位机擦除SPI Flash内与待烧录固件大小相同的存储空间;
步骤4:下位机将待烧录固件写入至SPI Flash内被擦除的存储空间内;
在步骤4中,下位机检测SPI Flash内的已写入固件,若已写入固件与其储存的待烧录固件不一致,则重复步骤2-4;
上位机每次开机后,均通过互联网检测其储存的待烧录固件与服务器上的新发布固件是否一致,若不一致则将其储存的待烧录固件更新为服务器上的新发布固件;
其中,上位机在检测其储存的待烧录固件与服务器上的新发布固件是否一致时,包括:
读取服务器上的新发布固件的检验码;
将新固件的校验码与其储存的待烧录固件的校验码进行比对,若不一致则判定新固件和待烧录固件不一致;
每个固件的头部上都被增设了一个两字节的CRC16校验码,不同固件信息的固件上具有不同的CRC16校验码,若两个固件的CRC16校验码是相同的话,则说明这两个固件里面的固件信息相同,是同一版固件。
2.根据权利要求1所述的SPI Flash固件烧录方法,其特征在于,下位机的内置存储单元里储存有待烧录固件,下位机从其内置存储单元里读取待烧录固件。
3.根据权利要求2所述的SPI Flash固件烧录方法,其特征在于,在步骤1中,上位机在发出烧录指令前,还包括:检测待烧录固件的烧录次数,若烧录次数为0,则将其储存的待烧录固件传输至下位机,以将待烧录固件储存在下位机的内置存储单元里。
4.根据权利要求1-3中任一所述的SPI Flash固件烧录方法,其特征在于,在进行步骤4之后,还包括:
步骤5:下位机向上位机发送一反馈信号;
步骤6:上位机将待烧录固件的烧录次数+1。
5.根据权利要求4所述的SPI Flash固件烧录方法,其特征在于,上位机每次开机后,均将待烧录固件的烧录次数重置为0。
6.根据权利要求1-3中任一所述的SPI Flash固件烧录方法,其特征在于,下位机将烧录进程和结果实时反馈至上位机。
7.一种SPI Flash固件烧录装置,其特征在于,用于实现权利要求1-6中任一所述的SPIFlash固件烧录方法;包括依次电连接的上位机、下位机和存储器,其中,所述下位机电连接至SPI Flash以进行烧录;所述存储器用于储存供所述下位机执行的烧录程序。
8.根据权利要求7所述的SPI Flash固件烧录装置,其特征在于,所述下位机具有内置存储单元,用于储存待烧录固件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811410001.8A CN109614118B (zh) | 2018-11-23 | 2018-11-23 | 一种SPI Flash固件烧录方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811410001.8A CN109614118B (zh) | 2018-11-23 | 2018-11-23 | 一种SPI Flash固件烧录方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614118A CN109614118A (zh) | 2019-04-12 |
CN109614118B true CN109614118B (zh) | 2022-05-06 |
Family
ID=66003852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811410001.8A Active CN109614118B (zh) | 2018-11-23 | 2018-11-23 | 一种SPI Flash固件烧录方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614118B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309361A (zh) * | 2020-02-13 | 2020-06-19 | 北京集创北方科技股份有限公司 | 数据读写方法及装置、电子设备、存储介质 |
CN111459744A (zh) * | 2020-03-20 | 2020-07-28 | 江苏集萃智能集成电路设计技术研究所有限公司 | 视频处理芯片的固件烧录方法和固件调试方法 |
CN115827032A (zh) * | 2022-12-12 | 2023-03-21 | 深微光电科技(深圳)有限公司 | 存储器的烧录方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778378A (zh) * | 2009-01-14 | 2010-07-14 | 英华达(上海)电子有限公司 | 一种固件节点更新方法、装置和*** |
CN102543193A (zh) * | 2011-12-31 | 2012-07-04 | 深圳创维数字技术股份有限公司 | 一种闪存烧录方法、烧录设备及烧录*** |
CN202956753U (zh) * | 2012-11-05 | 2013-05-29 | 汕尾芯灵电子科技有限公司 | 一种嵌入式***中闪存芯片的编程装置及*** |
CN103412781A (zh) * | 2013-08-27 | 2013-11-27 | 信利光电股份有限公司 | 一次性可编程芯片的烧录方法 |
CN104598408A (zh) * | 2015-02-05 | 2015-05-06 | 深圳芯邦科技股份有限公司 | 一种一次性可编程只读存储器数据烧录方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103310842A (zh) * | 2012-03-06 | 2013-09-18 | 富泰华工业(深圳)有限公司 | 烧录***及烧录方法 |
-
2018
- 2018-11-23 CN CN201811410001.8A patent/CN109614118B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778378A (zh) * | 2009-01-14 | 2010-07-14 | 英华达(上海)电子有限公司 | 一种固件节点更新方法、装置和*** |
CN102543193A (zh) * | 2011-12-31 | 2012-07-04 | 深圳创维数字技术股份有限公司 | 一种闪存烧录方法、烧录设备及烧录*** |
CN202956753U (zh) * | 2012-11-05 | 2013-05-29 | 汕尾芯灵电子科技有限公司 | 一种嵌入式***中闪存芯片的编程装置及*** |
CN103412781A (zh) * | 2013-08-27 | 2013-11-27 | 信利光电股份有限公司 | 一次性可编程芯片的烧录方法 |
CN104598408A (zh) * | 2015-02-05 | 2015-05-06 | 深圳芯邦科技股份有限公司 | 一种一次性可编程只读存储器数据烧录方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109614118A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614118B (zh) | 一种SPI Flash固件烧录方法及装置 | |
CN102508732B (zh) | 改善一次性可编程存储器使用性能的方法及装置 | |
CN101452745B (zh) | 一种编程器及其编程方法 | |
US10475516B2 (en) | Data storage device and data erasing method wherein after erasing process, predetermined value is written to indicate completion of said erasing method | |
WO2021248786A1 (zh) | key码数据烧录方法、装置、终端设备和可读存储介质 | |
TWI451248B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
CN102543193B (zh) | 一种闪存烧录方法、烧录设备及烧录*** | |
CN105740031B (zh) | 基于开卡套件的开卡方法、开卡套件 | |
CN116880782B (zh) | 一种内嵌式存储器及其测试方法 | |
US10635874B2 (en) | Burning control system and method | |
TW201526007A (zh) | Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統 | |
CN103514101A (zh) | 存取闪存的方法以及相关的记忆装置 | |
CN102622190A (zh) | 产品识别信息在线写入方法及电子产品 | |
CN104461644A (zh) | 一种国产计算机平台烧录ec固件的方法 | |
CN103218319A (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN112445670B (zh) | 一种eMMC测试方法和装置 | |
CN103389941A (zh) | 存储器格式化方法、存储器控制器及存储器存储装置 | |
TWI396090B (zh) | 快閃記憶裝置、資料儲存系統、以及傳送特殊命令至快閃記憶裝置之方法 | |
CN110888656B (zh) | 一种多功能烧写器及烧写方法 | |
CN113434179B (zh) | 一种可编程电源的在线升级方法、装置、设备及存储介质 | |
JP3028055B2 (ja) | Pcカードシステム及びプログラム書き換え方法 | |
CN110781031B (zh) | 控制器数据恢复方法、装置、控制器及汽车 | |
CN102236608B (zh) | 数据存取方法与***、存储介质控制器与存储*** | |
CN114356806B (zh) | 快速开卡方法、设备及计算机可读存储介质 | |
JP6864228B2 (ja) | 記憶装置および記憶装置のデータ管理方法 |
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 |