嵌入式设备事件记录的方法技术

技术编号:19778245 阅读:19 留言:0更新日期:2018-12-15 11:17
本发明专利技术公开了一种嵌入式设备事件记录的方法,包括:在FLASH空间中划分出至少两个连续页,且至少两个连续页用作数据存储块;程序启动时计算出数据存储块的写指针位置及读指针位置;其中,首次写入的有效数据默认从数据存储块的第一页开始写入;其中,当非首次将所述有效数据写入至数据存储块之后,程序再次计算出数据存储块的写指针位置及读指针位置;其中,在写入有效数据的过程中,当数据存储块的第一页写满时,有效数据继续写入数据存储块的剩余页,当剩余页写满时,擦除第一页,且有效数据从第一页的首地址继续写入。借此,本发明专利技术的嵌入式设备事件记录的方法,减少了需要保存的事件占用的FLASH空间,提高了FLASH的空间利用率,延长了FLASH的使用寿命。

【技术实现步骤摘要】
嵌入式设备事件记录的方法
本专利技术是关于嵌入式领域,特别是关于一种嵌入式设备事件记录的方法。
技术介绍
在嵌入式设计中,许多应用都需要存储一定时间内发生的各种事件,因而这些设计都需要使用非易失性数据存储设备,由于成本原因,在许多嵌入式处理器中并没有集成EEPROM模块。通常我们可以采用在片内FLASH存储器中保存非易失性数据的应用方式来达到使用要求。对一些普通的应用场合,这种使用方式可以满足要求。比如,STM32系列处理器中并不具有EEPROM。为了存储非易失性数据,需要利用芯片内部FLASH空间中程序代码区域的未利用空间作为存储非易失性数据空间。但是由于FLASH与EEPROM在擦写寿命上存在一定差距,并且未利用空间有限,所以在实际应用中,这种应用方式并不能够满足所有应用需求。当前在单片机中保存大量事件记录时,均需要同时保存记录事件外的大量非必要的数据,如索引、消息头、长度等,导致FLASH利用率不高,读写算法复杂,不能令FLASH均匀循环的使用,往往存在对一块FLASH区域反复擦写的情况,降低了FLASH寿命。公开于该
技术介绍
部分的信息仅仅旨在增加对本专利技术的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
技术实现思路
本专利技术的目的在于提供一种嵌入式设备事件记录的方法,其能够减少需要保存的事件占用的FLASH空间,提高了FLASH的空间利用率,均匀循环的使用FLASH,延长了FLASH的使用寿命。为实现上述目的,本专利技术提供了一种嵌入式设备事件记录的方法,包括:在FLASH空间中划分出至少两个连续页,且至少两个连续页用作数据存储块;其中,程序启动时计算出数据存储块的写指针位置及读指针位置;其中,首次写入的有效数据默认从数据存储块的第一页开始写入;其中,当非首次将有效数据写入至数据存储块之后,程序再次计算出数据存储块的写指针位置及读指针位置;其中,在写入有效数据的过程中,当数据存储块的第一页写满时,有效数据继续写入数据存储块的剩余页,当剩余页写满时,擦除第一页,且有效数据从第一页的首地址继续写入。在一优选的实施方式中,当需要读取数据存储块中的有效数据时,程序首先计算出数据存储块的读指针位置。在一优选的实施方式中,有效数据不包括索引、消息头及数据长度等信息。在一优选的实施方式中,写入有效数据是采用FIFO机制实现。在一优选的实施方式中,每条有效数据的长度相等且不超过数据存储块的一页。在一优选的实施方式中,每条有效数据的长度为FLASH最小写入单位的整倍数。在一优选的实施方式中,每条有效数据不能全为0xFF。在一优选的实施方式中,在第一次启动程序时先完全擦除数据存储块。在一优选的实施方式中,在烧写程序之前先完全擦除数据存储块。与现有技术相比,根据本专利技术的嵌入式设备事件记录的方法,减少了需要保存的事件占用的FLASH空间,提高了FLASH的空间利用率,均匀循环的使用FLASH,延长了FLASH的使用寿命。附图说明图1是根据本专利技术一实施方式的嵌入式设备事件记录的方法的流程示意图。图2是根据本专利技术一实施方式的嵌入式设备事件记录的方法的写指针获取方法的流程示意图。图3是根据本专利技术一实施方式的嵌入式设备事件记录的方法的读指针获取方法的流程示意图。图4是根据本专利技术一实施方式的嵌入式设备事件记录的方法的写入有效数据的流程图。图5是根据本专利技术一实施方式的嵌入式设备事件记录的方法的读取有效数据的流程图。具体实施方式下面结合附图,对本专利技术的具体实施方式进行详细描述,但应当理解本专利技术的保护范围并不受具体实施方式的限制。除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。如图1所示,图1是根据本专利技术一实施方式的嵌入式设备事件记录的方法的流程示意图。根据本专利技术实施方式的一种嵌入式设备事件记录的方法,包括:在FLASH空间中划分出至少两个连续页,且至少两个连续页用作数据存储块;其中,在程序第一次启动时应当保证数据存储块已经完全擦除,可在烧写程序之前擦除全部FLASH或者在第一次启动程序时通过程序擦除;其中,程序启动时计算出数据存储块的写指针位置及读指针位置;其中,首次写入的有效数据默认从数据存储块的第一页开始写入;其中,当非首次将有效数据写入至数据存储块之后,程序再次计算出数据存储块的写指针位置及读指针位置,以便等待API调用(也即等待后续写入及读取调用);其中,在写入有效数据的过程中,当数据存储块的第一页写满时,有效数据继续写入数据存储块的剩余页,当剩余页写满时,擦除第一页,且有效数据从第一页的首地址继续写入(也即当第一页再次写满时擦除第二页,并从第二页首地址写入,如此循环)。。在一优选的实施方式中,当需要读取数据存储块中的有效数据时,程序首先计算出数据存储块的读指针位置(当前数据存储块中最早写入的一条数据的地址);有效数据不包括索引、消息头及数据长度等信息;写入有效数据是采用FIFO机制实现。在一优选的实施方式中,每条有效数据的长度相等且不超过数据存储块的一页;每条有效数据的长度为FLASH最小写入单位的整倍数(通常为字长或者半字);每条有效数据不能全为“0xFF”。如图2所示,图2是根据本专利技术一实施方式的嵌入式设备事件记录的方法的写指针获取方法的流程示意图,其中N代表总页数,Y代表当前页数,M代表每一页可写入数据的总条数,X代表当前数据所处的条数(即第几条数据)。写指针获取方法如下:假设数据存储块中一共有N页数据,首先读取数据存储块中第N页第一条数据,若数据全为“0xFF”,继续读取上一页(即第N-1页数据)第一条数据若数据全为“0xFF”,继续向上读取数据,直到第Y页数据第一条数据不全为“0xFF”,继续读取第Y页第二条数据若数据不全为“0xFF”,继续读取第三条数据,……若第X条数据全为“0xFF”则这条数据对应的位置即为写指针的值,若最后一条数据仍然不全为“0xFF”则下一页的第一条数据对应的位置即为写指针的值。若所有页的第一条数据全为“0xFF”,则第一页第一条数据的位置即为写指针的地址。如图3所示,图3是根据本专利技术一实施方式的嵌入式设备事件记录的方法的读指针获取方法的流程示意图。读指针获取方法如下:假设数据存储块中一共有N页数据,首先读取数据存储块中第一页第一条数据,若数据全为“0xFF”,继续读取下一页(即第二页数据)第一条数据若数据全为“0xFF”,继续向下读取数据,直到第Y页数据第一条数据不全为“0xFF”,则这条数据对应的位置即为读指针的值,若所有页的第一条数据全为“0xFF”,则第一页第一条数据的位置即为读指针的地址,即没有数据可读取;若读取数据存储块中第一页第一条数据,若数据不全为“0xFF”,继续读取上一页(即第N页数据)第一条数据若数据不全为“0xFF”,继续向上读取数据,直到第Y页数据第一条数据全为“0xFF”,则上一页的第一条数据对应的位置即为读指针的值。如图4所示,图4是根据本专利技术一实施方式的嵌入式设备事件记录的方法的写入有效数据的流程图。写入有效数据方法如下:假设每页可以存储M条数据,先在写指针位置写入一条需要写入的本文档来自技高网...

【技术保护点】
1.一种嵌入式设备事件记录的方法,其特征在于,包括:在FLASH空间中划分出至少两个连续页,且所述至少两个连续页用作数据存储块;其中,程序启动时计算出所述数据存储块的写指针位置及读指针位置;其中,首次写入的有效数据默认从所述数据存储块的第一页开始写入;其中,当非首次将所述有效数据写入至所述数据存储块之后,程序再次计算出所述数据存储块的写指针位置及读指针位置;其中,在写入所述有效数据的过程中,当所述数据存储块的所述第一页写满时,所述有效数据继续写入所述数据存储块的剩余页,当所述剩余页写满时,擦除所述第一页,且所述有效数据从所述第一页的首地址继续写入。

【技术特征摘要】
1.一种嵌入式设备事件记录的方法,其特征在于,包括:在FLASH空间中划分出至少两个连续页,且所述至少两个连续页用作数据存储块;其中,程序启动时计算出所述数据存储块的写指针位置及读指针位置;其中,首次写入的有效数据默认从所述数据存储块的第一页开始写入;其中,当非首次将所述有效数据写入至所述数据存储块之后,程序再次计算出所述数据存储块的写指针位置及读指针位置;其中,在写入所述有效数据的过程中,当所述数据存储块的所述第一页写满时,所述有效数据继续写入所述数据存储块的剩余页,当所述剩余页写满时,擦除所述第一页,且所述有效数据从所述第一页的首地址继续写入。2.如权利要求1所述的嵌入式设备事件记录的方法,其特征在于,还包括:当需要读取所述数据存储块中的所述有效数据时,程序首先计算出所述数据存储块的读指针位置。3.如权利要求1所...

【专利技术属性】
技术研发人员:唐玉建陈河高金鹏李涛刘瑞
申请(专利权)人:北京智芯微电子科技有限公司国网信息通信产业集团有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1