CN106951342B - 一种TF卡片内Flash的纠错方法 - Google Patents
一种TF卡片内Flash的纠错方法 Download PDFInfo
- Publication number
- CN106951342B CN106951342B CN201710160668.6A CN201710160668A CN106951342B CN 106951342 B CN106951342 B CN 106951342B CN 201710160668 A CN201710160668 A CN 201710160668A CN 106951342 B CN106951342 B CN 106951342B
- Authority
- CN
- China
- Prior art keywords
- flash
- piece
- application program
- application
- check 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种TF卡片内Flash的纠错方法,采用握手超时机制区分下载应用程序和启动应用程序,若在预设时间内接收到正确的握手信号,则接收上位机的应用程序,并写入片内Flash的应用程序区和片外Flash的应用程序备份区,计算应用程序数据的CRC校验值作为标准校验值写入片外Flash的应用程序校验码区;从片外Flash的应用程序校验码区读取全部的标准校验值至RAM中,对片内Flash中的应用程序空间存储的有效数据求取CRC校验值,如果求取的CRC校验值与标准校验值存在偏差,则从片外Flash的应用程序备份区读取备份数据,并将备份数据写入到片内Flash中覆盖原始数据,启动应用程序。本发明的错误检出率高,纠错能力强,大大提高了片内Flash的可靠性和启动性能,降低了功耗。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种TF卡片内Flash的纠错方法。
背景技术
便携式移动终端的应用渗透到了人们工作生活的每个角落,TF卡以其体积小、存储能力强大并且采用高效的SD接口传输,在便携设备中获得良好的推广和长足的发展。现今,TF卡形态的产品已经不仅适用于存储领域,其在蓝牙、无线通信及密码安全领域也占据一席之地。对于支持热插拔的TF卡,启动时间越短则提供给用户更好的体验。当前多数TF卡采用挂接在SPI总线的片外Flash,这种Flash不支持CPU直接访问,所以TF卡上电后需要CPU通过SPI接口将片外Flash中的代码读取到RAM,在RAM中执行代码。受SPI总线及片外Flash的性能限制,读取片外Flash的速率相比于片内Flash会有明显下降,所以部分用户选择片内Flash作为程序存储和运行空间。由于片内Flash对芯片生产工艺会有比较高的要求,所以片内Flash容易出现故障,其中一种故障类型为:随着擦写次数的增加,Flash内部存储单元出现电平翻转错误的概率急剧上升,直接导致程序运行出错,造成TF卡故障甚至无法使用。该类问题在芯片出厂时的出现概率较低,通常在芯片投入使用后随着Flash擦写次数的增加才会逐步出现,导致TF卡使用寿命降低。
对于上述故障,通常采用纠错或者备份的方式减轻其对整个TF卡系统的危害。纠错方式是指事先采用纠错算法(常见ECC算法)处理Flash中存储的有效数据并生成纠错码,在芯片上电后立即调用纠错算法处理Flash中存储的有效数据,对出现电平翻转的存储单元及时处理,降低Flash出错的概率。备份方式非常直观,即在Flash开辟一块与应用程序空间同样大的区域,对应用程序作完整备份,上电后即对比两片区域,发现错误后则将备份区域的数据覆盖到原始区域。
但是,这两种方式都存在一些问题:
纠错方式的问题在于纠错效果和时间性能的冲突,ECC算法只能纠正1bit错误,对于2个bit以上的错误则纠错失败,要想纠错效果更上一层楼,需要大大增加算法的复杂度,势必会降低时间性能。
备份方式纠错效果好,方法简单高效,但对片内Flash的容量要求较高,需要至少2倍于应用程序的空间,Flash容量增加直接导致芯片的体积和功耗增大。对于主要应用于移动便携设备的TF卡,体积和功耗是非常重要的因素,因此备份方式并不十分适用于TF卡的片内Flash故障。
发明内容
鉴于上述的分析,本发明旨在提供一种TF卡片内Flash的纠错方法,用以解决现有TF卡片内Flash随着擦写次数的增加出现电平翻转故障的问题。
本发明的目的主要是通过以下技术方案实现的:
一种TF卡片内Flash的纠错方法,包括以下步骤:
步骤S1:TF卡上电后,进行软硬件初始化;
步骤S2:等待上位机的握手信号,若在预设时间内接收到正确的握手信号,执行步骤S3;若等待握手信号超时,执行步骤S4;
步骤S3:下载应用程序;
步骤S4:对应用程序进行检错和纠错,启动应用程序。
所述步骤S3包括以下步骤:
步骤S301:接收上位机的应用程序;
步骤S302:将从上位机接收的应用程序写入片内Flash的应用程序区;
步骤S303:将从上位机接收的应用程序写入片外Flash的应用程序备份区;
步骤S304:计算步骤S303应用程序数据的CRC校验值作为标准校验值写入片外Flash的应用程序校验码区。
从上位机每接收到256字节数据,执行步骤S302,不足256字节数据按实际长度处理。
片内Flash的起始地址存放纠错代码,后续存放应用程序;片外Flash的起始地址存放应用程序的标准校验值,后续存放应用程序的备份。
所述步骤S4包括以下步骤:
步骤S401:从片外Flash的应用程序校验码区读取全部的标准校验值至RAM中;
步骤S402:对片内Flash中的应用程序空间存储的有效数据求取CRC校验值;
步骤S403:如果求取的CRC校验值与从片外Flash读取至RAM中的标准校验值存在偏差,则对应用程序进行纠错;
步骤S404:纠错完成后,关闭片外Flash的时钟和电源,跳转到应用程序的起始地址启动应用程序。
片外Flash无数据读写时关闭其独立电源时钟,只在使用时开启。
所述步骤S402中,对于片内Flash中的应用程序空间存储的有效数据,每256字节求取一个8bit的CRC校验值,不足256字节按实际长度处理。
步骤S403所述的对应用程序进行纠错,从片外Flash的应用程序备份区读取备份数据,并将备份数据写入到片内Flash中覆盖原始数据。
应用程序运行过程中,当终端设备访问TF卡时,TF卡自动从低功耗模式恢复到正常模式,纠错代码对应用程序进行检错和纠错,纠错完成后继续运行应用程序。
本发明有益效果如下:
本发明通过在TF卡的硬件结构中增加挂接在主控芯片上的片外Flash,配合CRC校验与备份结合的软件机制,提供了一种TF卡片内Flash的纠错方法,错误的检出率高,纠错能力强,大大提高了片内Flash的可靠性;程序启动前的纠错工作采用首先检错,检出错误后再启用备份数据的方式,在一定程度上提高了启动性能;采用片外Flash扩展存储空间,无数据读写时可独立关闭其电源时钟,降低功耗。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为TF卡内部结构示意图;
图2为Flash的存储空间分配示意图;
图3为TF卡片内Flash的纠错方法流程图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
本发明实施例提供了一种TF卡片内Flash的纠错方法,包括以下步骤:
步骤S1:TF卡上电后,进行软硬件初始化。
如图1所示,所述TF卡包括主控芯片、片外Flash、SPI总线和NAND Flash;
所述主控芯片包括SD接口、时钟控制模块和片内Flash;
具体地,所述软硬件初始化包括初始化时钟、SD接口、片内Flash和片外Flash。
步骤S2:等待上位机的握手信号,若在预设时间内接收到正确的握手信号,执行步骤S3;若等待握手信号超时,执行步骤S4。
优选地,采用握手超时机制区分下载应用程序和启动应用程序。
步骤S3:下载应用程序。
具体地,如图3所示,接收上位机的应用程序,每接收到256字节数据,先将其写入片内Flash的应用程序区,然后写入片外Flash的应用程序备份区,最后计算256字节数据的CRC校验值作为标准校验值并写入片外Flash的应用程序校验码区(不足256字节数据按实际长度处理);
图2为片内Flash和片外Flash的存储空间分配示意图,片内Flash的起始地址存放纠错代码,后续存放应用程序,PC指针可以在纠错程序和应用程序之间相互跳转;片外Flash的起始地址存放应用程序的标准校验值,后续存放应用程序的备份;
所述纠错代码同时具备下载应用程序及启动应用程序的功能。
步骤S4:对应用程序进行检错和纠错,启动应用程序。
优选地,程序启动前首先进行检错,检出错误后再启用备份数据;检错动作只需要从片外Flash中获取全部的标准校验值,只有在校验出错时才会从片外Flash中读取应用程序备份区的备份数据写入片内Flash覆盖原始数据,在一定程度上提高了应用程序的启动性能;
采用片外Flash扩展存储空间,相比于扩展片内Flash存储空间的方式,在扩展空间使用频率较低的情况下,片外Flash无数据读写时可关闭其独立电源时钟,而只在使用时开启,以降低功耗。
具体地,所述步骤S4包括以下步骤:
步骤S401:从片外Flash的应用程序校验码区读取全部的标准校验值至RAM中;
步骤S402:对片内Flash中的应用程序空间存储的有效数据求取CRC校验值;
具体地,对于片内Flash中的应用程序空间存储的有效数据,每256字节求取一个8bit的CRC校验值(不足256字节按实际长度处理);
步骤S403:如果求取的CRC校验值与从片外Flash读取至RAM中的标准校验值存在偏差,则对应用程序进行纠错;
具体地,如图3所示,如果求取的CRC校验值与从片外Flash读取至RAM中的标准校验值存在偏差,则认为该区间由于存储单元电平跳变而导致数据出错,则从片外Flash的应用程序备份区的相应位置读取备份数据,并将备份数据写入到片内Flash中覆盖原始数据;
步骤S403:纠错完成后,关闭片外Flash的时钟和电源,跳转到应用程序的起始地址启动应用程序。
优选地,纠错代码在TF卡上电时对片内Flash内的应用程序进行检错和纠错,但在应用程序实时运行过程中片内Flash区域也随时可能出错,所以TF卡每次从低功耗模式恢复到正常模式时,纠错代码均会对应用程序进行检错和纠错;
具体地,当终端设备没有访问TF卡的需求时,TF卡会自动进入低功耗模式,且不再执行任何外设访问操作;当终端设备访问TF卡时,TF卡自动从低功耗模式恢复到正常模式,然后纠错代码对应用程序进行检错和纠错,纠错完成后继续运行应用程序。在TF卡由低功耗模式恢复正常模式时对应用程序进行检错和纠错,选择了合适的纠错时机,提高了纠错频率,进一步提升了片内Flash存储的可靠性。
综上所述,本发明实施例提供了一种TF卡片内Flash的纠错方法,在TF卡主控芯片外挂接Flash,配合CRC校验与备份结合的软件机制,错误的检出率高,纠错能力强,大大提高了片内Flash的可靠性;程序启动前的纠错工作采用首先检错,检出错误后再启用备份数据的方式,在一定程度上提高了启动性能;采用片外Flash扩展存储空间,无数据读写时可独立关闭其电源时钟,降低功耗。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种TF卡片内Flash的纠错方法,其特征在于,包括以下步骤:
步骤S1:TF卡上电后,进行软硬件初始化;
步骤S2:等待上位机的握手信号,若在预设时间内接收到正确的握手信号,执行步骤S3;若等待握手信号超时,执行步骤S4;
步骤S3:下载应用程序;
步骤S4:对应用程序进行检错和纠错,启动应用程序;
所述步骤S4包括以下步骤:
步骤S401:从片外Flash的应用程序校验码区读取全部的标准校验值至RAM中;
步骤S402:对片内Flash中的应用程序空间存储的有效数据求取CRC校验值;
步骤S403:如果求取的CRC校验值与从片外Flash读取至RAM中的标准校验值存在偏差,则对应用程序进行纠错;
步骤S404:纠错完成后,关闭片外Flash的时钟和电源,跳转到应用程序的起始地址启动应用程序。
2.根据权利要求1所述的方法,其特征在于,所述步骤S3包括以下步骤:
步骤S301:接收上位机的应用程序;
步骤S302:将从上位机接收的应用程序写入片内Flash的应用程序区;
步骤S303:将从上位机接收的应用程序写入片外Flash的应用程序备份区;
步骤S304:计算步骤S303应用程序数据的CRC校验值作为标准校验值写入片外Flash的应用程序校验码区。
3.根据权利要求2所述的方法,其特征在于,从上位机每接收到256字节数据,执行步骤S302,不足256字节数据按实际长度处理。
4.根据权利要求2或3所述的方法,其特征在于,片内Flash的起始地址存放纠错代码,后续存放应用程序;片外Flash的起始地址存放应用程序的标准校验值,后续存放应用程序的备份。
5.根据权利要求1所述的方法,其特征在于,片外Flash无数据读写时关闭其独立电源时钟,只在使用时开启。
6.根据权利要求1所述的方法,其特征在于,所述步骤S402中,对于片内Flash中的应用程序空间存储的有效数据,每256字节求取一个8bit的CRC校验值,不足256字节按实际长度处理。
7.根据权利要求1所述的方法,其特征在于,步骤S403所述的对应用程序进行纠错,从片外Flash的应用程序备份区读取备份数据,并将备份数据写入到片内Flash中覆盖原始数据。
8.根据权利要求7所述的方法,其特征在于,应用程序运行过程中,当终端设备访问TF卡时,TF卡自动从低功耗模式恢复到正常模式,纠错代码对应用程序进行检错和纠错,纠错完成后继续运行应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710160668.6A CN106951342B (zh) | 2017-03-17 | 2017-03-17 | 一种TF卡片内Flash的纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710160668.6A CN106951342B (zh) | 2017-03-17 | 2017-03-17 | 一种TF卡片内Flash的纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951342A CN106951342A (zh) | 2017-07-14 |
CN106951342B true CN106951342B (zh) | 2019-07-19 |
Family
ID=59472322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710160668.6A Active CN106951342B (zh) | 2017-03-17 | 2017-03-17 | 一种TF卡片内Flash的纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951342B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107748704A (zh) * | 2017-10-13 | 2018-03-02 | 郑州云海信息技术有限公司 | 基于fpga的内存镜像实现的方法及装置 |
CN108132853A (zh) * | 2017-11-24 | 2018-06-08 | 北京动力机械研究所 | 用于发动机控制器软件的上电校验双冗余引导加载方法 |
CN110287059B (zh) * | 2019-05-21 | 2023-12-15 | 广东九联科技股份有限公司 | 一种spi flash的多备份方法 |
CN112181725B (zh) * | 2020-09-25 | 2023-07-25 | 江苏恒宝智能系统技术有限公司 | 一种嵌入式系统的片内外数据掉电防拔备份方法及系统 |
CN112114888B (zh) * | 2020-09-29 | 2024-05-17 | 上海大郡动力控制技术有限公司 | 一种电动汽车电控系统通用客户端引导程序生成方法 |
CN111966525B (zh) * | 2020-10-23 | 2021-03-26 | 中国人民解放军国防科技大学 | 星载导航设备的dsp程序运行方法及其dsp系统 |
CN117369733B (zh) * | 2023-12-07 | 2024-02-23 | 上海励驰半导体有限公司 | 集成电路、数据处理系统和车辆 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102545574A (zh) * | 2010-12-27 | 2012-07-04 | 北京中电华大电子设计有限责任公司 | 一种soc芯片的低功耗电源网络设计方法 |
CN105653384A (zh) * | 2015-12-30 | 2016-06-08 | 惠州市伟乐科技股份有限公司 | 一种软核cpu复位方法及主从式系统 |
CN106066684A (zh) * | 2016-05-27 | 2016-11-02 | 中国电子科技集团公司第二十四研究所 | 主从式soc芯片低功耗控制电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7756495B2 (en) * | 2005-09-29 | 2010-07-13 | Intel Corporation | High speed receiver |
-
2017
- 2017-03-17 CN CN201710160668.6A patent/CN106951342B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102545574A (zh) * | 2010-12-27 | 2012-07-04 | 北京中电华大电子设计有限责任公司 | 一种soc芯片的低功耗电源网络设计方法 |
CN105653384A (zh) * | 2015-12-30 | 2016-06-08 | 惠州市伟乐科技股份有限公司 | 一种软核cpu复位方法及主从式系统 |
CN106066684A (zh) * | 2016-05-27 | 2016-11-02 | 中国电子科技集团公司第二十四研究所 | 主从式soc芯片低功耗控制电路 |
Also Published As
Publication number | Publication date |
---|---|
CN106951342A (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951342B (zh) | 一种TF卡片内Flash的纠错方法 | |
JP6049716B2 (ja) | セキュアなストレージのハイジャック保護のための技術 | |
US6392925B2 (en) | Mobile communication device having integrated embedded flash and SRAM memory | |
US9286164B2 (en) | Electronic device to restore MBR, method thereof, and computer-readable medium | |
CN103930878A (zh) | 用于存储器验证的方法、装置及系统 | |
US8726097B2 (en) | Debugging method and computer system using the same | |
JP2014519662A (ja) | ホストから見たデバイスファームウェア更新の影響の管理 | |
CN113495799B (zh) | 一种内存故障处理方法及相关设备 | |
CN106909352A (zh) | 一种嵌入式设备的固件升级方法 | |
WO2014173211A1 (en) | Code coverage testing method, device and system | |
CN103810004A (zh) | 嵌入式系统升级的方法、装置及设备 | |
US8301981B2 (en) | Data access method for flash memory and storage system and controller thereof | |
US9218249B2 (en) | Electronic apparatus, method of restoring guid partition table (GPT) and computer-readable recording medium | |
KR102207110B1 (ko) | 메모리 초기화 방법 및 이를 지원하는 전자 장치 | |
CN104615387B (zh) | 基于xpe系统的车载设备及其设计方法 | |
JP5754287B2 (ja) | Icチップ、icチップにおける処理方法、uim、携帯端末、及びicチップ用処理プログラム | |
US20130132648A1 (en) | Portable storage device and the method of dynamically adjusting the operating modes thereof | |
CN111159123B (zh) | 一种嵌入式可靠参数储存文件系统及方法 | |
CN113778485A (zh) | 电子芯片的系统运行方法、装置、电子芯片和存储介质 | |
CN109857469B (zh) | 显示屏控制方法及相关产品 | |
CN110297595B (zh) | 主机存储器缓冲区配置方法、储存装置与控制电路单元 | |
EP3523707B1 (en) | System-on-chip, electronic device including the same, and driving method thereof | |
CN107704270B (zh) | 基于二取二架构的μC/OS-II系统启动引导方法及装置 | |
US10417030B2 (en) | Apparatus and method for compile time construction of memory structures | |
CN102566935A (zh) | 应用于bios的虚拟磁盘实现方法 |
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 |