CN113836600A - 一种Embedded Flash误写保护方法 - Google Patents
一种Embedded Flash误写保护方法 Download PDFInfo
- Publication number
- CN113836600A CN113836600A CN202111415769.6A CN202111415769A CN113836600A CN 113836600 A CN113836600 A CN 113836600A CN 202111415769 A CN202111415769 A CN 202111415769A CN 113836600 A CN113836600 A CN 113836600A
- Authority
- CN
- China
- Prior art keywords
- writing
- word
- error
- embedded flash
- address
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种Embedded Flash误写保护方法,所述方法步骤包括:Embedded Flash控制器收到写操作指令后,缓存所述写操作的地址和数据,并读取所述地址的数据;判断读取的数据是否为32’hFFFF_FFFF,如果是,则全区域能够执行写操作;如果不是,则进一步判断对word中的每一个byte的值是否有8’hFF;如果值有8’hFF,则所述word能够执行写操作;如果值没有8’hFF,则整个word不能执行写操作,本发明提高了Embedded Flash误写保护的保护范围,实现了对Flash全区域的误写保护,保护颗粒度小,减少误写概率。
Description
技术领域
本发明涉及一种Flash控制器以及存储管理技术技术领域,具体为一种EmbeddedFlash 误写保护方法。
背景技术
Embedded Flash作为代码和数据的存储单元,广泛应用各种MCU中,MCU 软件在运行过程中,如果发生对Embedded Flash区域的误写操作,将会导致存储在Embedded Flash内部的代码或者数据被窜改,最终可能会引起MCU 系统崩溃。
目前现有对Embedded Flash的误写保护方法,通过在Embedded Flash 地址空间范围内,需要划定一些区域,无法保护Flash全区域的误写操作,当误写保护功能使能后,后续软件在这些区域内写操作,将不会被执行,对于没有保护的区域,还是会产生误写,并且这种方法区域个数确定后,就不能增加保护区域,如果要增加判断区域需要对Flash控制器设计做改动,具有较大的局限性;
现有的方法一般划定的区域比实际代码区域大的话,会使一些不需要保护的地址空间也被保护了,使得Flash 的利用率降低;
同时现有方法保护颗粒度大小跟保护区域大小有关,如果保护颗粒度要按一个word,则保护区域只能设置成一个word地址空间,类似的区域大小就没有实际意义;
另外,Embedded Flash控制器读flash时,是按word操作,写program操作可以按byte颗粒度进行写,划定区域保护Embedded Flash的误写的方法保护的颗粒度为一个word(4bytes),误写操作导致整个word区域全部不能写操作,资源浪费且局限性大;
并且,误写操作会导致系统出现Bug,工作人员需要查找Bug原因,进行debug调试,步骤繁琐,浪费时间。
现有技术已经不能满足现阶段人们的需求,基于现状,急需对现有技术进行改革。
发明内容
本发明的目的在于提供一种Embedded Flash 误写保护方法,以解决上述背景技术中提出的问题。
本发明提供如下技术方案一种Embedded Flash 误写保护方法,具体步骤包括:
Embedded Flash 控制器收到写操作指令后,缓存这个写操作的地址和数据,并针对这个地址发起对Flash的读操作,读取这个地址的数据。
根据读取的数据判断这个读数据是否为32’hFFFF_FFFF,先判断整个保护区域;
如果是32’hFFFF_FFFF,则这个地址没有被写过,整个保护区域都可以写操作;
如果不是32’hFFFF_FFFF,则这个地址之前已经被写过,区域内的word不可以全部写操作;则Embedded Flash控制器发送中断将误写操作通知CPU, 并产生AHB bus errorresponse(AHB总线错误响应),并记录word的误写信息,误写信息包括:写地址,写数据以及读数据;
当读数据不是32’hFFFF_FFFF时,Embedded Flash控制器继续判断读数据word中的每一个byte的值是否有8’hFF,进一步判断word中的写操作;则分为两种情况:
(1)Embedded Flash 控制器读数据word中有bytes的值为8’hFF,则所述bytes可以写操作,且只执行所述word中的bytes值为8’hFF的写操作,并记录非8’hFF值的bytes的误写信息包括:写地址,写数据以及读数据。
(2)若word中读取的bytes值没有8’hFF,则整个word的地址已经被写过,不执行写操作。
有益效果
(1)本发明提高了Embedded Flash 误写保护的灵活性和保护范围,实现了对Flash全区域的误写保护,不需要更改设计来增加写保护区域,减少误写概率;
(2)本发明保护的颗粒度由一个word(4 bytes)到1个byte,保护的颗粒度更小;
(3)本发明误写操作后记录的信息,包括写地址,写数据以及读数据,能很好的指导软件进行debug调试,准确定位误写错误发生的地址。
附图说明
图1为本发明结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于Embedded Flash 按32 bits 一个word 读取, 每个word擦除操作后的值为32’hFFFF_FFFF,每次烧写前需要对Flash 先进行erase擦除操作,如果对已经烧写的区域,没经过erase 擦除操作,又发生写操作,就是产生误写,会把原先的值改掉,所以在烧写前先对Flash进行擦除操作,且每个word 擦除操作后的值为32’hFFFF_FFFF;
本发明提供如下技术方案一种Embedded Flash 误写保护方法,先判断整个保护区域的写操作,再判断区域中每一个word 内的bytes的写操作,不但实现了全区域保护,而且对word中的每一个byte的地址做判断,使得没有被写过的bytes也可以继续写操作,节约了资源;具体步骤如下:
当CPU给Embedded Flash 控制器发送写操作指令时,Embedded Flash 控制器收到写操作指令后,缓存该写操作的地址和数据,并针对该地址发起对Flash的读操作,读取这个地址的数据;
根据读取的数据判断这个读数据是否为32’hFFFF_FFFF,先判断整个保护区域的写操作,如果是32’hFFFF_FFFF,则这个地址没有被写过,则全区域能够执行写操作,Embedded Flash控制器可以执行写操作;如果不是32’hFFFF_FFFF,则这个地址中的存在地址之前已经被写过,Embedded Flash控制器不继续执行改写操作;
发送中断将word的误写操作通知CPU, 并产生AHB bus error response,(AHB总线错误响应), 同时记录误写信息,包括写地址、写数据以及读数据,用来debug调试。
若根据背景技术中所述的常规技术手段通过划定一块区域,地址在这个区域内的写操作就是误操作,这样可导致这个区域内每一个word 内没有被写过的bytes都不能写,本发明以word为颗粒度判断完word地址后,再以byte为颗粒度对word内每一个byte判断是否能够写操作,具体步骤为:
由于一个word包含4个bytes,Embedded Flash 控制器继续读word中的每一个byte值,并判断是否有8’hFF, 则分为两种情况:
(1)Embedded Flash 控制器读数据word中有bytes的值为8’hFF,则所述bytes可以写操作,且只执行所述word中的bytes值为8’hFF的写操作,并记录非8’hFF值的bytes的误写信息包括:写地址,写数据以及读数据;
例如,按一个word 包括4 bytes保护为实施例,如果这4bytes中有3bytes没有被写过的,只有一个byte被写过,若根据背景技术中所述的划定一定区域进行保护的方法,word中的4 个bytes都不能写操作,但是本发明通过对word中的每一个byte的地址做判断,使得没有被写过的3bytes可以继续写操作,只有一个byte不执行写操作,需要记录该byte的误写信息包括:写地址,写数据以及读数据,用于debug调试。
(2)若word中读取的bytes值没有8’hFF,则整个word的地址已经被写过,不执行写操作;
例如,按一个word 包括4 bytes保护为实施例,如果这4bytes都被写过,则说明该word 地址全部被写过,所以不执行写操作。
本实施例的技术方案有效的提高了Embedded Flash 误写保护的灵活性和保护范围,实现了对Flash全区域的误写保护,不需要更改设计来增加写保护区域,减少误写概率,颗粒度由一个word(4 bytes)到1个byte,保护的颗粒度减小,并根据误写操作后记录的信息,能很好的指导软件进行debug调试,准确定位误写错误发生的地址。
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种Embedded Flash 误写保护方法,其特征在于,不需要划定或重新更改写保护区域实现对Flash全区域的误写保护,且保护的颗粒度由一个word到1个byte;
所述方法包括:
Embedded Flash 控制器收到写操作指令后,缓存所述写操作的地址和数据,并读取所述地址的数据;
判断读取的数据是否为32’hFFFF_FFFF,如果是,则全区域能够执行写操作;
如果不是32’hFFFF_FFFF,则区域内已经被烧写,进一步判断word中的每一个byte的值是否有8’hFF,且所述Embedded Flash控制器发送中断指令并产生AHB总线错误响应,同时记录word的误写信息,误写信息包括:写地址,写数据以及读数据;
如果word中的bytes值有8’hFF,则执行所述word中的bytes值为8’hFF的写操作,并记录非8’hFF值的bytes的误写信息,误写信息包括:写地址,写数据以及读数据;
如果值没有8’hFF,则整个word不执行写操作。
2.根据权利要求1所述的一种Embedded Flash误写保护方法,其特征在于:读取的数据是否为32’hFFFF_FFFF,判断全区域能否执行写操作时,所述保护方法保护的颗粒度单位为1个word。
3.根据权利要求1所述的一种Embedded Flash误写保护方法,其特征在于:读取的数据是否有8’hFF,判断整个word能否执行写操作时,所述保护方法保护的颗粒度单位为1个byte。
4.根据权利要求1所述的一种Embedded Flash误写保护方法,其特征在于:所述误写信息能够被用于debug调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111415769.6A CN113836600B (zh) | 2021-11-26 | 2021-11-26 | 一种Embedded Flash误写保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111415769.6A CN113836600B (zh) | 2021-11-26 | 2021-11-26 | 一种Embedded Flash误写保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113836600A true CN113836600A (zh) | 2021-12-24 |
CN113836600B CN113836600B (zh) | 2022-02-18 |
Family
ID=78971348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111415769.6A Active CN113836600B (zh) | 2021-11-26 | 2021-11-26 | 一种Embedded Flash误写保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113836600B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115954037A (zh) * | 2023-03-10 | 2023-04-11 | 上海泰矽微电子有限公司 | 提高efuse芯片良率的方法、装置和设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1257246A (zh) * | 1998-12-16 | 2000-06-21 | 明碁电脑股份有限公司 | 防止快闪存储器数据遗失或误写的方法 |
JP2002366436A (ja) * | 2001-06-05 | 2002-12-20 | Hitachi Ltd | 不揮発性メモリ誤消去,誤書込み防止回路及び方法 |
US20030005241A1 (en) * | 2001-06-29 | 2003-01-02 | Tomoo Ueno | Write protect method |
CN101430666A (zh) * | 2008-10-31 | 2009-05-13 | 无敌科技(西安)有限公司 | 防止数据误写入的方法及装置 |
CN101751347A (zh) * | 2008-12-04 | 2010-06-23 | 北京中电华大电子设计有限责任公司 | 一种防止存储器被误擦写的保护方法 |
CN107832637A (zh) * | 2017-11-20 | 2018-03-23 | 丹东瑞银科技有限公司 | Emmc及emmc的分区写保护方法 |
CN110597469A (zh) * | 2019-10-23 | 2019-12-20 | Oppo广东移动通信有限公司 | 一种存储分区写保护方法、装置及计算机可读存储介质 |
CN113076563A (zh) * | 2021-04-08 | 2021-07-06 | 上海磐启微电子有限公司 | 一种Flash内容保护方法及装置 |
-
2021
- 2021-11-26 CN CN202111415769.6A patent/CN113836600B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1257246A (zh) * | 1998-12-16 | 2000-06-21 | 明碁电脑股份有限公司 | 防止快闪存储器数据遗失或误写的方法 |
JP2002366436A (ja) * | 2001-06-05 | 2002-12-20 | Hitachi Ltd | 不揮発性メモリ誤消去,誤書込み防止回路及び方法 |
US20030005241A1 (en) * | 2001-06-29 | 2003-01-02 | Tomoo Ueno | Write protect method |
CN101430666A (zh) * | 2008-10-31 | 2009-05-13 | 无敌科技(西安)有限公司 | 防止数据误写入的方法及装置 |
CN101751347A (zh) * | 2008-12-04 | 2010-06-23 | 北京中电华大电子设计有限责任公司 | 一种防止存储器被误擦写的保护方法 |
CN107832637A (zh) * | 2017-11-20 | 2018-03-23 | 丹东瑞银科技有限公司 | Emmc及emmc的分区写保护方法 |
CN110597469A (zh) * | 2019-10-23 | 2019-12-20 | Oppo广东移动通信有限公司 | 一种存储分区写保护方法、装置及计算机可读存储介质 |
CN113076563A (zh) * | 2021-04-08 | 2021-07-06 | 上海磐启微电子有限公司 | 一种Flash内容保护方法及装置 |
Non-Patent Citations (3)
Title |
---|
L JEEVITHA等: "SATA Protocol implementation on FPGA for Write Protection of Hard Disk Drive/Solid State Device", 《2019 3RD INTERNATIONAL CONFERENCE ON ELECTRONICS, COMMUNICATION AND AEROSPACE TECHNOLOGY (ICECA)》 * |
罗英军等: "TMS320VC5409系统中FLASH的程序设计方法", 《十堰职业技术学院学报》 * |
赵东艳等: "一种智能卡写保护机制的实现", 《电子产品世界》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115954037A (zh) * | 2023-03-10 | 2023-04-11 | 上海泰矽微电子有限公司 | 提高efuse芯片良率的方法、装置和设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113836600B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
EP1548602B1 (en) | Non-volatile storage device control method | |
TWI662410B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US7725646B2 (en) | Method of using a flash memory for a circular buffer | |
US20190227926A1 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
CN110879793B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US11176035B2 (en) | Data storage devices and data processing methods | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN102043725B (zh) | 用于闪存的数据写入方法及其控制器与储存系统 | |
CN113836600B (zh) | 一种Embedded Flash误写保护方法 | |
CN114005476A (zh) | 闪存器、闪存擦写计数方法、电子设备及计算机存储介质 | |
CN116185563B (zh) | 一种基于车规级微控制器数据闪存的软件模拟算法 | |
CN111078136B (zh) | 一种防止BMS动态数据存储导致flash寿命降低的方法 | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
CN114822664B (zh) | 基于数据优先级的风险评估方法、存储装置及控制电路 | |
CN115878033A (zh) | 一种固态硬盘及其映射表管理方法 | |
CN102087632B (zh) | 用于闪存的数据储存方法及其控制器与储存系统 | |
CN113204316A (zh) | 一种使用flash进行高效数据存储的方法 | |
US8312205B2 (en) | Method for identifying a page of a block of flash memory, and associated memory device | |
TWI653630B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
CN114637626B (zh) | 减少eeprom数据读写出错的方法、装置、设备及可读存储介质 | |
CN113703671B (zh) | 一种数据块擦除方法及相关装置 | |
CN117170753B (zh) | 程序处理方法、程序处理装置、车辆和存储介质 | |
CN113885791B (zh) | Flash存储器的数据写入方法、读取方法和装置 |
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 |