CN112130765B - Eeprom数据读写方法及装置 - Google Patents
Eeprom数据读写方法及装置 Download PDFInfo
- Publication number
- CN112130765B CN112130765B CN202010979984.8A CN202010979984A CN112130765B CN 112130765 B CN112130765 B CN 112130765B CN 202010979984 A CN202010979984 A CN 202010979984A CN 112130765 B CN112130765 B CN 112130765B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer queue
- read
- written
- ring buffer
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Systems (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了EEPROM数据读写方法及装置,涉及数据读写技术领域。所述方法包括以下步骤:获取读\写操作指令;当获取到读\写操作指令时,获取待读\写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail;判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail;当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针。本发明提供的EEPROM数据读写方法及装置,有效提高EEPROM的资源利用率,延长EEPROM数据读写装置的使用寿命,确保了EEPROM数据存储的可靠性。
Description
技术领域
本发明涉及数据读写技术领域,具体是涉及EEPROM数据读写方法及装置。
背景技术
EEPROM(Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器,是一种掉电后数据不丢失的存储芯片,EEPROM的擦除以电子信号来修改其内容,且以Byte为最小修改单位。因此一般用于要求数据存储量比较少、访问速率要求不高、掉电后数据不丢失的场合,如配置信息、过程记录等重要数据。
EEPROM的寿命一般由写操作的次数定义,目前主流EEPROM存储芯片的寿命为10万次,即每个存储单元一般只能承受10万次的擦写,在达到擦写次数极限的后,EEPROM擦写功能失效,从而会影响其所在设备的正常运行。10万次对于一些不需要频繁擦写数据的场合而言完全符合要求,但是对于擦写频率比较高的场合来说是远远不够的。因此长期在同一位置进行擦写会导致EEPROM资源不能充分利用,同时缩短EEPROM的使用寿命。此外,EEPROM存储数据时可能遭受外界\总线时钟偶发的异常干扰,会导致数据存储错误,无法保证数据存储的可靠性。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供EEPROM数据读写方法及装置。
第一方面,本发明提供了一种EEPROM数据读写方法,包括以下步骤:
获取读\写操作指令;
当获取到读\写操作指令时,获取待读\写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail;
根据待读\写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail;
当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针。
根据第一方面,在第一方面第一种可能的实现方式中,所述“根据待读\写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
当获取待读操作指令时,获取pValid+Len和pTail的比对关系;
当pValid+Len>pTail时,判定当判定环形缓冲队列读取待读数据后,超出环形缓冲队列;
当pValid+Len≤pTail时,判定当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列;
当获取到存储操作指令时,获取pVailTail+Len和pTail的比对关系;
当pVailTail+Len>pTail时,判定当判定环形缓冲队列写入待写数据后,超出环形缓冲队列;
当pVailTail+Len≤pTail时,判定当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列。
根据第一方面,在第一方面第二种可能的实现方式中,所述“当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针”步骤,具体包括以下步骤:
当判定环形缓冲队列读取待读数据后,超出环形缓冲队列时,将待读数据拆分成(pTail-pValid)第一段待读数据和(Len-pTail+pValid)第二段待读数据;
将pValid配置为(pTail-pValid)第一段待读数据的读地址指针;
将pHead配置为(Len-pTail+pValid)第二段待读数据的读地址指针;
当判定环形缓冲队列写入待写数据后,超出环形缓冲队列时,将待写数据拆分成(pTail-pValidTail)第一段待写数据和(Len-pTail
+pValidTail)第二段待写数据;
将pValidTail配置为(pTail-pValidTail)第一段待写数据的写地址指针;
将pHead配置为(Len-pTail+pValidTail)第二段待写数据的写地址指针。
根据第一方面,在第一方面可能的第三种可能的实现方式中,所述“根据待读\写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列时,将环形缓冲队列的起始指针pValid配置为读地址指针;
当环形缓冲队列存储待存数据后,未超出环形缓冲队列时,将环形缓冲队列的使用区域的起始指针pValid配置为读地址指针。
根据第一方面,在第一方面第四种可能的实现方式中,所述“根据待读\写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列时,将pValid配置为读地址指针;
当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列时,将pValidTail配置为写地址指针。
根据第一方面,在第一方面第五种可能的实现方式中,所述“当获取到读\写操作指令时,获取待读\写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail”步骤,具体包括以下步骤:
当第一次获取到写操作指令时,将环形缓冲队列使用区域的起始指针pValid和环形缓冲队列使用区域的结尾指针pValidTail均更新配置为环形缓冲队列的首地址pHead;
获取环形环形队列的首地址pHead、环形缓冲队列的尾地址pTail以及环形缓冲队列使用区域的更新后的起始指针pValid、环形缓冲队列使用区域更新后的结尾指针pValidTail。
根据第一方面,在第一方面第六种可能的实现方式中,所述“将pHead配置为(Len-pTail+pValidTail)第二段待写数据的写地址指针”步骤或“当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列时,将pValidTail配置为写地址指针”步骤之后,还包括以下步骤:
读取上次待写数据存储至环形缓冲队列中的回读数据;
比对回读数据与上次待写数据;
当回读数据与上次待写数据一致时,判定完成待写数据的存储;
当回读数据与上次待写数据不一致时,判定未完成待写数据的存储,并重复执行将待写数据存储至环形缓冲队列中的写数据操作,直至判定完成待写数据的存储。
根据第一方面,在第一方面第七种可能的实现方式中,所述“判定完成待写数据的存储”步骤之后,还包括以下步骤:
当再次获取到写数据操作指令时,获取环形环形队列上一次写入待写数据后的使用区域尾地址指针pValidTail;
将(pValidTail+1)配置为最新待写数据的写地址指针。
第二方面,本发明还提供了一种EEPROM数据读写装置,包括:
第一获取单元,用于获取读\写操作指令;
第一控制单元,与第一获取单元通信连接;
第二获取单元,与第一控制单元通信连接,用于在获取到读\写操作指令时,获取待读\写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail;
判断单元,与第二获取单元通信连接,用于根据获取的获取待读\写数据的数据长度Len、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail;
第二控制单元,与判断单元通信连接,用于当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针。
根据第二方面,在第二方面第一种可能的实现方式中,还包括:
第一拆分单元,与判断单元、第一获取单元、第二控制单元通信连接,当获取到读操作指令时,并且环形缓冲队列读取待读数据后,超出环形缓冲队列时,将待读数据拆分成(pTail-pValid)第一段待读数据和(Len-pTail+pValid)第二段待读数据;
第二拆分单元,与判断单元、第一获取单元、第二控制单元通信连接,当获取到写操作指令,并且环形缓冲队列写入待写数据后,超出环形缓冲队列时,将待写数据拆分成(pTail-pValidTail)第一段待写数据和(Len-pTail+pValidTail)第二段待写数据。
与现有技术相比,本发明的优点如下:
本发明提供的EEPROM数据读写方法及装置,当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针,避免长期在同一位置进行擦写导致的EEPROM资源不能充分利用的情况发生,有效提高EEPROM的资源利用率,延长EEPROM数据读写装置的使用寿命,同时避免了EEPROM存储数据时可能遭受外界/总线时钟偶发的异常干扰的情况发生,确保了EEPROM数据存储的可靠性。
附图说明
图1是本发明实施例的方法流程图;
图2为环形缓冲队列的结构示意图;
图3为环形缓冲队列的示意图;
图4为本发明实施例提供的另一方法流程图;
图5为本发明实施例提供的另一方法流程图;
图6为本发明实施例提供的另一方法流程图;
图7为本发明实施例提供的另一方法流程图;
图8为本发明实施例提供的功能模块框图。
图中:
100、空闲区域;200、使用区域;300、第一获取单元;400、第一控制单元;500、第二获取单元;600、判断单元;700、第二控制单元。
具体实施方式
现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
注意:接下来要介绍的示例仅是一个具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。
本发明针对目前EEPROM存在的资源利用率低、使用寿命短以及数据存储不可靠的问题,提供了一种EEPROM数据存储方法及装置。
参见图1所示,本发明实施例提供一种EEPROM数据读写方法及装置,包括以下步骤:
S100、获取读\写操作指令;
S200、当获取到读\写操作指令时,获取待读\写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域200的起始指针pValid、环形缓冲队列使用区域200的结尾指针pValidTail;
S300、根据待读\写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail;
S400、当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针。
本发明提供的EEPROM数据读写方法及装置,当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针,避免长期在同一位置进行擦写导致的EEPROM资源不能充分利用的情况发生,有效提高EEPROM的资源利用率,延长EEPROM数据读写装置的使用寿命,同时避免了EEPROM存储数据时可能遭受外界/总线时钟偶发的异常干扰的情况发生,确保了EEPROM数据存储的可靠性。
参见图2所示,为本发明提供的环形缓冲队列的结构示意图,包括空闲区域100和使用区域200,使用区域200存储数据item 1、item 2…item n,环形缓冲队列遵循先进先出的特点,当环形缓冲队列的缓冲区被使用完,且又有新的数据需要存储时,就会丢掉历史最久的数据,保存最新的数据。其中,参见图3所示,pHead和pTail分别是环形缓冲队列的首地址和尾地址,pValid和pValidTail分别是使用区域200的起始指针和结尾指针。
参见图4和图5所示,一些实施例中,所述“根据待读\写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
S310、当获取待读操作指令时,获取pValid+Len和pTail的比对关系;
S311、当pValid+Len>pTail时,判定当判定环形缓冲队列读取待读数据后,超出环形缓冲队列;
S312、当pValid+Len≤pTail时,判定当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列;
S320、当获取到存储操作指令时,获取pVailTail+Len和pTail的比对关系;
S321、当pVailTail+Len>pTail时,判定当判定环形缓冲队列写入待写数据后,超出环形缓冲队列;
S322、当pVailTail+Len≤pTail时,判定当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列。
参见图6和图7所示,所述“当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针”步骤,具体包括以下步骤:
S410、当判定环形缓冲队列读取待读数据后,超出环形缓冲队列时,将待读数据拆分成(pTail-pValid)第一段待读数据和(Len-pTail+pValid)第二段待读数据,第一段待读数据和第二段待读数据的数据长度分别为(pTail-pValid)和(Len-pTail+pValid),该两段待读数据的长度之和为待读数据的总长度值Len;
S411、将pValid配置为(pTail-pValid)第一段待读数据的读地址指针;
S412、将pHead配置为(Len-pTail+pValid)第二段待读数据的读地址指针;
环形缓冲队列读取待读的被拆分的两段待读数据后的pValid发生偏移,指向(pHead+Len-pTail+pValid)。
S420、当判定环形缓冲队列写入待写数据后,超出环形缓冲队列时,将待写数据拆分成(pTail-pValidTail)第一段待写数据和(Len-pTail
+pValidTail)第二段待写数据,第一段待读数据和第二段待读数据的数据长度分别为(pTail-pValidTail)和(Len-pTail+pValidTail),该两段待读数据的长度之和为待读数据的总长度值Len;
S421、将pValidTail配置为(pTail-pValidTail)第一段待写数据的写地址指针;
S422、将pHead配置为(Len-pTail+pValidTail)第二段待写数据的写地址指针;
环形缓冲队列写入被拆分的两段待写数据后的pValid发生偏移,指向(pHead+Len-pTail+pValidTail);
一些实施例中,所述“根据待读\写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
S510、当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列时,将环形缓冲队列的起始指针pValid配置为读地址指针,环形缓冲队列读取待读数据后的pValid发生偏移,指向(pValid+Len)。
S520、当环形缓冲队列存储待存数据后,未超出环形缓冲队列时,将环形缓冲队列的使用区域200的起始指针pValid配置为读地址指针,环形缓冲队列写入待写数据后的pValidTail发生偏移,指向(pVaildTail+Len)。
一些实施例中,所述“根据待读\写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列时,将pValid配置为读地址指针,从环形缓冲队列中直接读取待读数据;
当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列时,将pValidTail配置为写地址指针,按顺序向环形缓冲队列写入待写数据,均匀循环利用环形缓冲队列的每个存储单元。
一些实施例中,所述“当获取到读\写操作指令时,获取待读\写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域200的起始指针pValid、环形缓冲队列使用区域200的结尾指针pValidTail”步骤,具体包括以下步骤:
当第一次获取到写操作指令时,将环形缓冲队列使用区域200的起始指针pValid和环形缓冲队列使用区域200的结尾指针pValidTail均更新配置为环形缓冲队列的首地址pHead;该步骤仅用于第一次使用环形缓冲队列进行读写数据前,用于确保系统能够正确找到环形缓冲队列最后更新的位置;
获取环形环形队列的首地址pHead、环形缓冲队列的尾地址pTail以及环形缓冲队列使用区域200的更新后的起始指针pValid、环形缓冲队列使用区域200更新后的结尾指针pValidTail。
一些实施例中,所述“将pHead配置为(Len-pTail+pValidTail)第二段待写数据的写地址指针”步骤或“当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列时,将pValidTail配置为写地址指针”步骤之后,还包括以下步骤:
读取上次待写数据存储至环形缓冲队列中的回读数据;
比对回读数据与上次待写数据;
当回读数据与上次待写数据一致时,判定完成待写数据的存储;
当回读数据与上次待写数据不一致时,判定未完成待写数据的存储,并重复执行将待写数据存储至环形缓冲队列中的写数据操作,直至判定完成待写数据的存储。通过对存储值环形缓冲队列的数据进行回读,将回读数据和待读数据进行比较,来确定数据存储是否存储成功,确保EEPROM数据存储的可靠性.
一些实施例中,所述“判定完成待写数据的存储”步骤之后,还包括以下步骤:
当再次获取到写数据操作指令时,获取环形环形队列上一次写入待写数据后的使用区域200尾地址指针pValidTail;
将(pValidTail+1)配置为最新待写数据的写地址指针。
本发明在使用环形缓冲队列在EEPROM中保存数据,如果单次记录数据为1Byte,EEPROM存储空间为1KB,在不考虑校验、标志位等冗余存储时,EEPROM的寿命已经提高了1000倍。
基于同一发明构思,参见图8所示,本发明还提供了一种EEPROM数据读写装置,包括第一获取单元300、第一控制单元400、第二获取单元500、判断单元600和第二控制单元700,所述第一获取单元300用于获取读\写操作指令;所述第一控制单元400与第一获取单元300通信连接;所述第二获取单元500与第一控制单元400通信连接,用于在获取到读\写操作指令时,获取待读\写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域200的起始指针pValid、环形缓冲队列使用区域200的结尾指针pValidTail;判断单元600与第二获取单元500通信连接,用于根据获取的获取待读\写数据的数据长度Len、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域200的起始指针pValid、环形缓冲队列使用区域200的结尾指针pValidTail,判断环形缓冲队列读\写待读\写数据后,是否超出环形缓冲队列的尾地址pTail;第二控制单元700与判断单元600通信连接,用于当环形缓冲队列读\写待读\写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读\写地址指针。
一些实施例中,还包括第一拆分单元和第二拆分单元,所述第一拆分单元与判断单元600、第一获取单元300、第二控制单元700通信连接,当获取到读操作指令时,并且环形缓冲队列读取待读数据后,超出环形缓冲队列时,将待读数据拆分成(pTail-pValid)第一段待读数据和(Len-pTail+pValid)第二段待读数据;第二拆分单元与判断单元600、第一获取单元300、第二控制单元700通信连接,当获取到写操作指令,并且环形缓冲队列写入待写数据后,超出环形缓冲队列时,将待写数据拆分成(pTail-pValidTail)第一段待写数据和(Len-pTail+pValidTail)第二段待写数据。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的所有方法步骤或部分方法步骤。
本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
基于同一发明构思,本申请实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法中的所有方法步骤或部分方法步骤。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机程序和\或模块,处理器通过运行或执行存储在存储器内的计算机程序和\或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如声音播放功能、图像播放功能等);存储数据区可存储根据手机的使用所创建的数据(例如音频数据、视频数据等)。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、服务器或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、服务器和计算机程序产品的流程图和\或方框图来描述的。应理解可由计算机程序指令实现流程图和\或方框图中的每一流程和\或方框、以及流程图和\或方框图中的流程和\或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和\或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和\或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和\或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种EEPROM数据读写方法,其特征在于,包括以下步骤:
获取读写操作指令;
当获取到读写操作指令时,获取待读写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail,其中,所述使用区域为环形缓冲队列中存储数据的区域;
根据待读写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读写待读写数据后,是否超出环形缓冲队列的尾地址pTail;
当环形缓冲队列读写待读写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读写地址指针;
所述“当环形缓冲队列读写待读写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读写地址指针”步骤,具体包括以下步骤:
当判定环形缓冲队列读取待读数据后,超出环形缓冲队列时,将待读数据拆分成(pTail-pValid)第一段待读数据和(Len-pTail+pValid)第二段待读数据;
将pValid配置为(pTail-pValid)第一段待读数据的读地址指针;
将pHead配置为(Len-pTail+pValid)第二段待读数据的读地址指针;
当判定环形缓冲队列写入待写数据后,超出环形缓冲队列时,将待写数据拆分成(pTail-pValidTail)第一段待写数据和(Len-pTail+pValidTail)第二段待写数据;
将pValidTail配置为(pTail-pValidTail)第一段待写数据的写地址指针;
将pHead配置为(Len-pTail+pValidTail)第二段待写数据的写地址指针。
2.如权利要求1所述的EEPROM数据读写方法,其特征在于,所述“根据待读写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读写待读写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
当获取待读操作指令时,获取pValid+Len和pTail的比对关系;
当pValid+Len>pTail时,判定当判定环形缓冲队列读取待读数据后,超出环形缓冲队列;
当pValid+Len≤pTail时,判定当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列;
当获取到存储操作指令时,获取pVailTail+Len和pTail的比对关系;
当pVailTail+Len>pTail时,判定当判定环形缓冲队列写入待写数据后,超出环形缓冲队列;
当pVailTail+Len≤pTail时,判定当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列。
3.如权利要求1所述的EEPROM数据读写方法,其特征在于,所述“根据待读写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读写待读写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列时,将环形缓冲队列的起始指针pValid配置为读地址指针;
当环形缓冲队列存储待存数据后,未超出环形缓冲队列时,将环形缓冲队列的使用区域的起始指针pValid配置为读地址指针。
4.如权利要求1所述的EEPROM数据读写方法,其特征在于,所述“根据待读写数据的数据长度Len、环形缓冲队列的起始指针pValid、环形缓冲队列的结尾指针pValidTail,判断环形缓冲队列读写待读写数据后,是否超出环形缓冲队列的尾地址pTail”步骤之后,还包括以下步骤:
当判定环形缓冲队列读取待读数据后,未超出环形缓冲队列时,将pValid配置为读地址指针;
当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列时,将pValidTail配置为写地址指针。
5.如权利要求1所述的EEPROM数据读写方法,其特征在于,
所述“当获取到读写操作指令时,获取待读写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail”步骤,具体包括以下步骤:
当第一次获取到写操作指令时,将环形缓冲队列使用区域的起始指针pValid和环形缓冲队列使用区域的结尾指针pValidTail均更新配置为环形缓冲队列的首地址pHead;
获取环形环形队列的首地址pHead、环形缓冲队列的尾地址pTail以及环形缓冲队列使用区域的更新后的起始指针pValid、环形缓冲队列使用区域更新后的结尾指针pValidTail。
6.如权利要求1所述的EEPROM数据读写方法,其特征在于,所述“将pHead配置为(Len-pTail+pValidTail)第二段待写数据的写地址指针”步骤或“当判定环形缓冲队列写入待写数据后,未超出环形缓冲队列时,将pValidTail配置为写地址指针”步骤之后,还包括以下步骤:
读取上次待写数据存储至环形缓冲队列中的回读数据;
比对回读数据与上次待写数据;
当回读数据与上次待写数据一致时,判定完成待写数据的存储;
当回读数据与上次待写数据不一致时,判定未完成待写数据的存储,并重复执行将待写数据存储至环形缓冲队列中的写数据操作,直至判定完成待写数据的存储。
7.如权利要求6所述的EEPROM数据读写方法,其特征在于,所述“判定完成待写数据的存储”步骤之后,还包括以下步骤:
当再次获取到写数据操作指令时,获取环形环形队列上一次写入待写数据后的使用区域尾地址指针pValidTail;
将(pValidTail+1)配置为最新待写数据的写地址指针。
8.一种EEPROM数据读写装置,其特征在于,
第一获取单元,用于获取读写操作指令;
第一控制单元,与第一获取单元通信连接;
第二获取单元,与第一控制单元通信连接,用于在获取到读写操作指令时,获取待读写数据的数据长度Len,并获取环形缓冲队列的首地址pHead、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail;
判断单元,与第二获取单元通信连接,用于根据获取的获取待读写数据的数据长度Len、环形缓冲队列的尾地址pTail、环形缓冲队列使用区域的起始指针pValid、环形缓冲队列使用区域的结尾指针pValidTail,判断环形缓冲队列读写待读写数据后,是否超出环形缓冲队列的尾地址pTail;
第二控制单元,与判断单元通信连接,用于当环形缓冲队列读写待读写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读写地址指针;
所述当环形缓冲队列读写待读写数据后,超出环形缓冲队列时,将环形缓冲队列的首地址pHead地址配置为读写地址指针,具体包括:
当判定环形缓冲队列读取待读数据后,超出环形缓冲队列时,将待读数据拆分成(pTail-pValid)第一段待读数据和(Len-pTail+pValid)第二段待读数据;
将pValid配置为(pTail-pValid)第一段待读数据的读地址指针;
将pHead配置为(Len-pTail+pValid)第二段待读数据的读地址指针;
当判定环形缓冲队列写入待写数据后,超出环形缓冲队列时,将待写数据拆分成(pTail-pValidTail)第一段待写数据和(Len-pTail+pValidTail)第二段待写数据;
将pValidTail配置为(pTail-pValidTail)第一段待写数据的写地址指针;
将pHead配置为(Len-pTail+pValidTail)第二段待写数据的写地址指针。
9.如权利要求8所述的EEPROM数据读写装置,其特征在于,还包括:
第一拆分单元,与判断单元、第一获取单元、第二控制单元通信连接,当获取到读操作指令时,并且环形缓冲队列读取待读数据后,超出环形缓冲队列时,将待读数据拆分成(pTail-pValid)第一段待读数据和(Len-pTail+pValid)第二段待读数据;
第二拆分单元,与判断单元、第一获取单元、第二控制单元通信连接,当获取到写操作指令,并且环形缓冲队列写入待写数据后,超出环形缓冲队列时,将待写数据拆分成(pTail-pValidTail)第一段待写数据和(Len-pTail+pValidTail)第二段待写数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010979984.8A CN112130765B (zh) | 2020-09-17 | 2020-09-17 | Eeprom数据读写方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010979984.8A CN112130765B (zh) | 2020-09-17 | 2020-09-17 | Eeprom数据读写方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112130765A CN112130765A (zh) | 2020-12-25 |
CN112130765B true CN112130765B (zh) | 2023-05-30 |
Family
ID=73846833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010979984.8A Active CN112130765B (zh) | 2020-09-17 | 2020-09-17 | Eeprom数据读写方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112130765B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113571106B (zh) * | 2021-07-21 | 2023-04-25 | 四川虹美智能科技有限公司 | 带电可擦可编程只读存储器的数据读取方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035884A (zh) * | 2014-06-30 | 2014-09-10 | 河南百旺金赋电脑有限公司 | 一种双环形队列数据存储方法和智能网关 |
CN104765575A (zh) * | 2015-04-23 | 2015-07-08 | 成都博元时代软件有限公司 | 信息存储处理方法 |
CN108733344A (zh) * | 2018-05-28 | 2018-11-02 | 深圳市道通智能航空技术有限公司 | 数据读写方法、装置以及环形队列 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169420B (zh) * | 2011-04-18 | 2013-10-30 | 杭州海康威视系统技术有限公司 | 缓冲区循环读写方法及装置 |
CN103257888A (zh) * | 2012-02-16 | 2013-08-21 | 阿里巴巴集团控股有限公司 | 一种对缓冲队列并发执行读、写访问的方法和设备 |
CN105183665B (zh) * | 2015-09-08 | 2018-02-13 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
WO2019061270A1 (zh) * | 2017-09-29 | 2019-04-04 | 深圳市大疆创新科技有限公司 | 数据缓存装置及控制方法、数据处理芯片、数据处理系统 |
CN110704335A (zh) * | 2019-09-03 | 2020-01-17 | 苏州浪潮智能科技有限公司 | 一种基于异步环形缓冲区的数据读取、写入方法及装置 |
-
2020
- 2020-09-17 CN CN202010979984.8A patent/CN112130765B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035884A (zh) * | 2014-06-30 | 2014-09-10 | 河南百旺金赋电脑有限公司 | 一种双环形队列数据存储方法和智能网关 |
CN104765575A (zh) * | 2015-04-23 | 2015-07-08 | 成都博元时代软件有限公司 | 信息存储处理方法 |
CN108733344A (zh) * | 2018-05-28 | 2018-11-02 | 深圳市道通智能航空技术有限公司 | 数据读写方法、装置以及环形队列 |
WO2019227724A1 (zh) * | 2018-05-28 | 2019-12-05 | 深圳市道通智能航空技术有限公司 | 数据读写方法、装置以及环形队列 |
Also Published As
Publication number | Publication date |
---|---|
CN112130765A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9026718B2 (en) | Method and apparatus for fault tolerant FOTA update with single backup block write | |
CN113220239A (zh) | 一种flash存储的擦写方法、装置、设备及可读存储介质 | |
US20090037646A1 (en) | Method of using a flash memory for a circular buffer | |
CN112182010B (zh) | 脏页刷新方法和装置、存储介质和电子设备 | |
CN108694052B (zh) | 一种固件升级方法、固件升级装置及固件升级系统 | |
CN112130765B (zh) | Eeprom数据读写方法及装置 | |
CN103455288A (zh) | 信息处理装置及控制方法 | |
CN111143092B (zh) | 故障录波数据处理方法、系统及终端设备 | |
CN112835564A (zh) | 代码生成方法和装置 | |
CN108628619B (zh) | 程序更新方法和装置 | |
CN115328851A (zh) | 一种数据保护方法、装置、设备及介质 | |
CN114443442A (zh) | 日志存储方法及电子设备 | |
CN113867823A (zh) | 车载终端配置参数的设置方法、装置及电子设备 | |
CN114356290A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN110543434B (zh) | Nand快闪器件、存储表管理方法、设备和存储介质 | |
CN108415814B (zh) | 自动记录字段变化方法、应用服务器及计算机可读存储介质 | |
CN113468105A (zh) | 数据快照的数据结构、相关数据处理方法及装置和系统 | |
CN114816833B (zh) | 一种flash数据的写入方法、装置以及系统 | |
US20130179406A1 (en) | File editing apparatus and file editing method | |
CN111078714B (zh) | 数据处理的方法及装置 | |
CN114626349B (zh) | 非侵入式的文件编辑方法、装置及介质 | |
CN116301607A (zh) | 一种存储区域的擦除方法、擦除装置及终端设备 | |
CN110795297B (zh) | 一种电子设备的测试方法及装置 | |
CN117687667A (zh) | 固件更新方法、装置、终端设备及存储介质 | |
CN112328327B (zh) | 配置分区整理方法、装置 |
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 |