CN112346745A - 多线程、多Flash条件下的固件快速烧录方法 - Google Patents
多线程、多Flash条件下的固件快速烧录方法 Download PDFInfo
- Publication number
- CN112346745A CN112346745A CN202011184948.9A CN202011184948A CN112346745A CN 112346745 A CN112346745 A CN 112346745A CN 202011184948 A CN202011184948 A CN 202011184948A CN 112346745 A CN112346745 A CN 112346745A
- Authority
- CN
- China
- Prior art keywords
- flash
- erasing
- task
- thread
- callback function
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000006870 function Effects 0.000 claims abstract description 14
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种多线程、多Flash条件下的固件快速烧录方法,包括以下步骤:嵌入式系统创建擦写执行线程池,擦写执行线程池中的线程与Flash硬件中独立擦写资源一一对应;每个线程具有自有的任务列表;嵌入式系统接收完整镜像文件到内存,将需要写入第1块Flash的部分镜像块的起始地址、空间大小、回调函数指针、Flash名称这些必要参数构建成一个任务参数对象添加到对应线程该Flash的任务队列;执行擦写任务,待该擦写任务完成后就调用回调函数,在回调函数中置位该Flash擦写完成标记;按上述操作方法在添加了第1块Flash的任务参数对象后立即开始处理其他需要写Flash的镜像块。本发明可充分利用多个Flash控制器的擦写带宽最快速度完成镜像升级。
Description
技术领域
本发明涉及嵌入式系统技术领域,尤其是一种多线程、多Flash条件下的固件快速烧录方法。
背景技术
在嵌入式系统上需要擦写的镜像文件覆盖2个及以上flash时候,通常第二块flash的擦写是排在第一块擦写完成之后才能开始,这不仅损失了速度,而且持续时间更长就更大概率容易受到断电而擦写失败。
发明内容
本发明的目的在于克服现有技术中存在的不足,提供一种多线程、多Flash条件下的固件快速烧录方法,充分利用硬件能力带宽、可多线程并行擦写。
本发明实施例采用的技术方案是:
一种多线程、多Flash条件下的固件快速烧录方法,包括以下步骤:
嵌入式系统创建擦写执行线程池,擦写执行线程池中的线程与Flash硬件中独立擦写资源一一对应;每个线程具有自有的任务列表;
嵌入式系统接收完整镜像文件到内存,将需要写入第1块Flash的部分镜像块的起始地址、空间大小、回调函数指针、Flash名称(作为回调函数的参数)这些必要参数构建成一个任务参数对象添加到对应线程该Flash的任务队列;执行擦写任务,待该擦写任务完成后就调用回调函数,在回调函数中置位该Flash擦写完成标记;
按上述操作方法在添加了第1块Flash的任务参数对象后立即开始处理其他需要写Flash的镜像块。
进一步地,接收完整镜像文件到内存后,需要先验证镜像文件有效性。
进一步地,每块Flash具有一个或多个擦写资源。
本发明的优点在于:多个擦写线程将并行执行,可充分利用多个Flash控制器的擦写带宽最快速度完成镜像升级。
附图说明
图1为本发明实施例中的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
嵌入式系统通常外置Flash;嵌入式系统与外置的一个或多个Flash连接;
本发明实施例提出一种多线程、多Flash条件下的固件快速烧录方法,包括以下步骤:
步骤S1,初始化;
嵌入式系统通常使用Nand/Nor Flash作为非易失存储;
嵌入式系统创建擦写执行线程池,擦写执行线程池中的线程与Flash硬件中独立擦写资源一一对应;每个线程具有自有的任务列表;
一般每块Nand/Nor Flash只有一套擦写控制器和对应电路,即每块Flash只有一个擦写资源;但不排除将来演化出一块flash内具有多个擦写控制器及对应电路的设计;
步骤S2,执行;
嵌入式系统接收完整镜像文件到内存,验证镜像文件有效性通过后,将需要写入第1块Flash的部分镜像块的起始地址、空间大小、回调函数指针、Flash名称(作为回调函数的参数)这些必要参数构建成一个任务参数对象添加到对应线程该Flash的任务队列;执行擦写任务,待该擦写任务完成后就调用回调函数,在回调函数中置位该Flash擦写完成标记;
按上述操作方法在添加了第1块Flash的任务参数对象后立即开始处理其他需要写Flash的镜像块。
通常Flash擦写操作比任务添加、线程切换所需时间多得多,多个擦写线程将并行执行,可充分利用多个Flash控制器的擦写带宽最快速度完成镜像升级;待所有需要写入的数据完成写入各Flash后,就可以重启系统按新的程序加载运行。
最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (3)
1.一种多线程、多Flash条件下的固件快速烧录方法,其特征在于,包括以下步骤:
嵌入式系统创建擦写执行线程池,擦写执行线程池中的线程与Flash硬件中独立擦写资源一一对应;每个线程具有自有的任务列表;
嵌入式系统接收完整镜像文件到内存,将需要写入第1块Flash的部分镜像块的起始地址、空间大小、回调函数指针、Flash名称这些必要参数构建成一个任务参数对象添加到对应线程该Flash的任务队列;执行擦写任务,待该擦写任务完成后就调用回调函数,在回调函数中置位该Flash擦写完成标记;
按上述操作方法在添加了第1块Flash的任务参数对象后立即开始处理其他需要写Flash的镜像块。
2.如权利要求1所述的多线程、多Flash条件下的固件快速烧录方法,其特征在于,
接收完整镜像文件到内存后,需要先验证镜像文件有效性。
3.如权利要求1所述的多线程、多Flash条件下的固件快速烧录方法,其特征在于,
每块Flash具有一个或多个擦写资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011184948.9A CN112346745B (zh) | 2020-10-30 | 2020-10-30 | 多线程、多Flash条件下的固件快速烧录方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011184948.9A CN112346745B (zh) | 2020-10-30 | 2020-10-30 | 多线程、多Flash条件下的固件快速烧录方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112346745A true CN112346745A (zh) | 2021-02-09 |
CN112346745B CN112346745B (zh) | 2024-02-02 |
Family
ID=74355262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011184948.9A Active CN112346745B (zh) | 2020-10-30 | 2020-10-30 | 多线程、多Flash条件下的固件快速烧录方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112346745B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170300410A1 (en) * | 2016-04-13 | 2017-10-19 | Nanjing University | Method and System for Optimizing Deterministic Garbage Collection in Nand Flash Storage Systems |
CN109582455A (zh) * | 2018-12-03 | 2019-04-05 | 恒生电子股份有限公司 | 多线程任务处理方法、装置及存储介质 |
-
2020
- 2020-10-30 CN CN202011184948.9A patent/CN112346745B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170300410A1 (en) * | 2016-04-13 | 2017-10-19 | Nanjing University | Method and System for Optimizing Deterministic Garbage Collection in Nand Flash Storage Systems |
CN109582455A (zh) * | 2018-12-03 | 2019-04-05 | 恒生电子股份有限公司 | 多线程任务处理方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
耿庆田;赵宏伟;常亮;: "基于嵌入式的文件系统研究", 吉林大学学报(信息科学版), no. 06 * |
Also Published As
Publication number | Publication date |
---|---|
CN112346745B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11062777B2 (en) | Nonvolatile semiconductor memory device which performs improved erase operation | |
US10296231B2 (en) | Data-storage device and data maintenance method thereof | |
CN109582217B (zh) | 数据储存装置与将数据写入存储器装置的方法 | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
JP2007519083A (ja) | 不揮発性メモリシステムのための内部メンテナンススケジュール要求 | |
US11294586B2 (en) | Method for performing read acceleration, associated data storage device and controller thereof | |
US10579300B2 (en) | Information handling system firmware persistent memory runtime reclaim | |
JP2012198878A (ja) | 半導体不揮発性メモリ装置のリフレッシュ操作開始方法およびシステム | |
TW201411351A (zh) | 迴避由突然斷電所造成之損壞資料頁與損壞區塊的方法 | |
DE102008005863A1 (de) | Verfahren zum Reparieren eines Halbleiterspeicherbauelements und Halbleiterspeicherbauelement | |
CN110688141B (zh) | 固件更新方法 | |
CN112346745A (zh) | 多线程、多Flash条件下的固件快速烧录方法 | |
CN109815055B (zh) | 卫星程序管理系统和卫星程序管理方法 | |
US10628344B2 (en) | Controlling method, channel operating circuit and memory system for executing memory dies with single channel | |
US9229798B2 (en) | Error handling method, memory storage device and memory controlling circuit unit | |
CN112148203B (zh) | 存储器管理方法、装置、电子设备及存储介质 | |
CN109558274B (zh) | 一种信息处理方法、装置及计算机可读存储介质 | |
CN112599172B (zh) | 电子控制单元的数据写入方法、装置及存储介质 | |
US9208076B2 (en) | Nonvolatile storage device and method of storing data thereof | |
CN113031868B (zh) | 一种存储器的控制方法及装置 | |
US20220208275A1 (en) | Semiconductor device and method of manufacturing the same | |
CN1612118A (zh) | 固件更新的方法及执行此方法的系统 | |
CN111782142A (zh) | 一种基于分时处理的Flash存储方法 | |
CN115373610A (zh) | 数据写入方法、装置、电子设备及存储介质 | |
JP2014071535A (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 |