CN104298938B - 一种存储数据的读写保护方法 - Google Patents
一种存储数据的读写保护方法 Download PDFInfo
- Publication number
- CN104298938B CN104298938B CN201410530956.2A CN201410530956A CN104298938B CN 104298938 B CN104298938 B CN 104298938B CN 201410530956 A CN201410530956 A CN 201410530956A CN 104298938 B CN104298938 B CN 104298938B
- Authority
- CN
- China
- Prior art keywords
- unblock
- constant
- data storage
- read
- locking
- 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.)
- Expired - Fee Related
Links
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)
- Telephone Function (AREA)
Abstract
本发明公开了一种存储数据的读写保护方法。所述方法包括:设置解锁常量、加锁常量和解锁/加锁变量,将所述解锁/加锁变量的初始值设为所述加锁常量;创建解锁接口,将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量;收到读写存储数据的程序指令,调用所述解锁接口;判断所述解锁/加锁变量是否等于所述解锁常量,若是,调用存储数据的读写接口,执行读写存储数据的操作,若否,禁止读写存储数据。通过本发明的技术方案,能够防止断电时程序运行错乱对存储器件中的数据进行改写。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种存储数据的读写保护方法。
背景技术
在2.4G/5G蓝牙等电子设备中,配对的ID以及一些配置信息会使用EEPROM、 FLASH等存储设备进行保存,从而使得用户在后续使用设备时,不用再重新输入配对新或者其他配置信息。
目前市场上的同类外设产品中,相关配置信息都存储在产品芯片内部的可重复擦写的存储单元或芯片外部的可重复擦写的存储器中,然而在设备掉电时,常常出现产品芯片的复位电路没能立刻进行复位,导致芯片掉电的短暂时间里程序运行出现错乱,进而导致对存储单元中的数据进行改写或者破坏,并且此类数据破坏是无法恢复的,严重时可能给用户造成极大的负面影响,使得用户认为产品质量不良,退换货情况频繁发生。
发明内容
本发明的目的在于提出一种存储数据的读写保护方法,能够防止断电时程序运行错乱对存储器件中的数据进行改写。
为达此目的,本发明采用以下技术方案:
一种存储数据的读写保护方法,包括:
设置解锁常量、加锁常量和解锁/加锁变量,将所述解锁/加锁变量的初始值设为所述加锁常量;
创建解锁接口,将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量;
收到读写存储数据的程序指令,调用所述解锁接口;
判断所述解锁/加锁变量是否等于所述解锁常量,若是,调用存储数据的读写接口,执行读写存储数据的操作,若否,禁止读写存储数据。
其中,执行读写存储数据的操作之后,还包括:
调用预设的加锁接口,将所述加锁常量赋值给所述解锁/加锁变量。
其中,所述将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量,具体为:
将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量,且在每个BIT赋值之后延时预设时长。
其中,所述预设时长为1-5毫秒。
其中,所述预设时长为2毫秒。
其中,所述解锁常量的长度大于等于8BIT。
其中,所述解锁常量、加锁常量和解锁/加锁变量的数据类型相同。
实施本发明实施例,具有如下有益效果:
本发明实施例通过设置一个常量作为解锁常量,一个另一常量为加锁常量,创建一个变量作为解锁/加锁标志,创建解锁接口,将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量;收到读写存储数据的程序指令,调用所述解锁接口;判断所述解锁/加锁变量是否等于所述解锁常量,若是,调用存储数据的读写接口,执行读写存储数据的操作,若否,禁止读写存储数据。由于设备断电导致的程序错乱通常是瞬间性的,无法调用并实现所述解锁接口,由此防止了断电时程序运行错乱对存储单元中的数据进行改写,有效保护了用户存储器件中的重要数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种存储数据的读写保护方法的流程示意图。
图2是本发明实施例中解锁接口的实现方法流程示意图。
具体实施方式
下面结合本发明的附图对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
结合图1对本发明的第一实施例进行说明。
图1是本发明第一实施例的一种存储数据的读写保护方法流程图,详述如下:
步骤S101,设置解锁常量、加锁常量和解锁/加锁变量,将所述解锁/加锁变量的初始值设为所述加锁常量。
在本实施例中,所述解锁常量、加锁常量和解锁/加锁变量的数据类型相同,解锁常量、加锁常量可为数字序列或者字符串序列。优选的,所述解锁常量的长度大于等于8BIT。
本实施例中,用常量S表示解锁常量,常量Y表示加锁常量,变量K表示解锁/加锁变量,初始时,设定K=Y。
步骤S10.2,创建解锁接口,将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量。
本实施例需预先创建解锁程序接口,实现该接口时,执行S->K的赋值操作。
在本实施例中,所述解锁接口为独立的程序接口,设备断电时,在调用读写存储数据的接口之前,需要先调用该解锁接口进行解锁。在实现该解锁接口时,通过将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量。
优选的,在本实施例中,所述解锁接口实现时,将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量时,还在每个BIT赋值之后延时预设时长,即S->K的赋值方式为:高位到低位逐BIT进行赋值,每个BIT之后加一段延时,延时可以为N(N>=1)毫秒,例如1-5毫秒。
步骤S103,收到读写存储数据的程序指令,调用所述解锁接口。
步骤S104,判断所述解锁/加锁变量是否等于所述解锁常量,若是,调用存储数据的读写接口,执行读写存储数据的操作,若否,禁止读写存储数据。
本实施例中,读写存储单元中的存储数据之前必须调用解锁接口,并且判断变量K是否等于S,若不等于,则不予读写存储数据,返回;若是,调用读写数据的接口读写存储数据。由此可以在设备断电,在程序运行错乱时,保护存储单元的入口,使读写存储数据的操作无法成功执行,防止储单元中的数据被改写,保证用户使用体验。
较佳的,本实施例中,执行读写存储数据的操作之后,调用预设的加锁接口,将所述加锁常量赋值给所述解锁/加锁变量,以重新将存储单元读写接口进行保护。对应的,本实施例还需预先创建加锁程序接口,实现该接口时,执行 Y->K的赋值操作。
如图2所示,本实施例中实现解锁接口的步骤如下:
步骤S201,执行(S&0x80)->K。
本实施例中,即通过常量S与0x80进行与操作,将常量S中未赋值的最高位的值赋值给变量K的对应位。
步骤S202,延时2毫秒。
步骤S203,判断S->K的赋值操作是否完成?若是,执行步骤S205,否则,执行步骤S204。
本实施例中,即判断是否将常量S中所有BIT位的值赋值给变量K的对应位,若是,执行步骤S205,否则,执行步骤S204。
步骤S204,S右移1BIT,返回步骤S201。
本实施例中,即准备将常量S中的下一BIT位值赋值给变量K的对应位。
步骤S205,解锁接口实现完成,退出解锁接口。
通过本发明上述实施例,通过设置一个常量作为解锁常量,一个另一常量为加锁常量,创建一个变量作为解锁/加锁标志,创建解锁接口,将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量;收到读写存储数据的程序指令,调用所述解锁接口;判断所述解锁/加锁变量是否等于所述解锁常量,若是,调用存储数据的读写接口,执行读写存储数据的操作,若否,禁止读写存储数据。由于设备断电导致的程序错乱通常是瞬间性的,无法调用并实现所述解锁接口,由此防止了断电时程序运行错乱对存储器件中的数据进行改写,有效保护了用户存储器件中的重要数据。并且,本方案的保护机制实现方式简便,占用程序空间少,易于在不同的系统平台中移植。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利要求范围,因此,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,仍属本发明所涵盖的范围。
Claims (6)
1.一种存储数据的读写保护方法,其特征在于,包括:
设置解锁常量、加锁常量和解锁/加锁变量,将所述解锁/加锁变量的初始值设为所述加锁常量;
创建解锁接口,将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量;
收到读写存储数据的程序指令,调用所述解锁接口;
判断所述解锁/加锁变量是否等于所述解锁常量,若是,调用存储数据的读写接口,执行读写存储数据的操作,若否,禁止读写存储数据;
所述执行读写存储数据的操作之后,还包括:
调用预设的加锁接口,将所述加锁常量赋值给所述解锁/加锁变量。
2.根据权利要求1所述的存储数据的读写保护方法,其特征在于,所述将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量,具体为:
将所述解锁常量按照由高位到低位逐BIT的方式赋值给所述解锁/加锁变量,且在每个BIT赋值之后延时预设时长。
3.根据权利要求2所述的存储数据的读写保护方法,其特征在于,所述预设时长为1-5毫秒。
4.根据权利要求3所述的存储数据的读写保护方法,其特征在于,所述预设时长为2毫秒。
5.根据权利要求1所述的存储数据的读写保护方法,其特征在于,所述解锁常量的长度大于等于8BIT。
6.根据权利要求1所述的存储数据的读写保护方法,其特征在于,所述解锁常量、加锁常量和解锁/加锁变量的数据类型相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410530956.2A CN104298938B (zh) | 2014-10-10 | 2014-10-10 | 一种存储数据的读写保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410530956.2A CN104298938B (zh) | 2014-10-10 | 2014-10-10 | 一种存储数据的读写保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104298938A CN104298938A (zh) | 2015-01-21 |
CN104298938B true CN104298938B (zh) | 2018-01-23 |
Family
ID=52318659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410530956.2A Expired - Fee Related CN104298938B (zh) | 2014-10-10 | 2014-10-10 | 一种存储数据的读写保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104298938B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211623A (zh) * | 2006-12-27 | 2008-07-02 | 株式会社东芝 | 磁盘装置及控制方法 |
CN104077245A (zh) * | 2013-03-27 | 2014-10-01 | 研祥智能科技股份有限公司 | 一种nvram控制方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009503656A (ja) * | 2005-07-21 | 2009-01-29 | クレブエックス・リミテッド・ライアビリティ・カンパニー | メモリロックシステム |
CN101685424A (zh) * | 2008-09-27 | 2010-03-31 | 华基科研有限公司 | 快闪存储器的加锁解锁方法 |
CN102043735B (zh) * | 2009-10-16 | 2014-07-09 | 深圳Tcl新技术有限公司 | 外接存储设备及其掉电保护方法 |
CN102646075A (zh) * | 2012-02-16 | 2012-08-22 | 兰宦泽 | 存储卡锁定方法及系统 |
-
2014
- 2014-10-10 CN CN201410530956.2A patent/CN104298938B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211623A (zh) * | 2006-12-27 | 2008-07-02 | 株式会社东芝 | 磁盘装置及控制方法 |
CN104077245A (zh) * | 2013-03-27 | 2014-10-01 | 研祥智能科技股份有限公司 | 一种nvram控制方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104298938A (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230260577A1 (en) | Nonvolatile semiconductor memory device which performs improved erase operation | |
US8914702B2 (en) | Bit error repair method and information processing apparatus | |
US6549457B1 (en) | Using multiple status bits per cell for handling power failures during write operations | |
KR101626080B1 (ko) | 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들 | |
US10459837B2 (en) | Data storage device with production state awareness and non-volatile memory operating method with production state awareness | |
KR101686376B1 (ko) | 메모리 시스템에서의 소거 관리 | |
CN103366831B (zh) | 存储器的检测方法 | |
CN104380381A (zh) | 存储器芯片电力管理 | |
CN102929565B (zh) | 基于SoC的引导装载程序读取方法、装置及芯片 | |
US9400746B2 (en) | Data storage device and flash memory control method | |
US9898211B2 (en) | Nonvolatile memory control device, nonvolatile memory control method and computer readable storage medium | |
US10649840B2 (en) | Data storage device performing recovery operation after sudden power-off and operating method thereof | |
JP3875153B2 (ja) | 不揮発性半導体記憶装置およびその書き換え禁止制御方法 | |
US11488671B2 (en) | Method, associated memory device and controller thereof for performing programming management | |
CN104951249A (zh) | 存储器控制设备、信息处理设备及其控制方法 | |
CN104598357B (zh) | 一种数据抗干扰保护方法 | |
TWI530954B (zh) | 保護非揮發性記憶體中儲存之程式碼的裝置 | |
US20170154681A1 (en) | Memory control method and apparatus | |
CN104298938B (zh) | 一种存储数据的读写保护方法 | |
CN112053727B (zh) | Eeprom掉电保护控制方法、装置、存储介质及存储设备 | |
CN202486769U (zh) | 一种块存储保护电路 | |
KR101212745B1 (ko) | 플래시 메모리 장치 및 프로그램 검증 방법 | |
US8566572B2 (en) | Method, device and non-transitory computer readable storage medium for masking the end of life transition of a electronic device | |
CN105868046B (zh) | 存储装置中管理、写入及加载固件代码的方法 | |
CN106021124B (zh) | 一种数据的存储方法及存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180123 Termination date: 20181010 |