[发明专利]一种基于Flash的日志存储方法有效
申请号: | 201110442999.1 | 申请日: | 2011-12-27 |
公开(公告)号: | CN102567184A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 张淑岩 | 申请(专利权)人: | 青岛海信宽带多媒体技术有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F12/02 |
代理公司: | 青岛联智专利商标事务所有限公司 37101 | 代理人: | 李升娟 |
地址: | 266100 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 flash 日志 存储 方法 | ||
技术领域
本发明涉及Flash存储技术,具体地说,是涉及一种基于Flash的日志存储方法。
背景技术
日志可以记录操作发生的具体时间和相关的信息,以机顶盒为例,可以记录开机的全过程、用户的换台、按键、信号检测、搜台、设置、进入/退出某功能页面等操作。通过日志,可以为系统死机或者崩溃现场保留最后的有效记录,便于开发人员或者维护人员根据相关信息及时快速地分析、定位死机或崩溃的位置和原因,从而大大缩减开发和维护的时间,节省人力资源成本。
但是,在机顶盒、手机等嵌入式设备的操作系统中,其存储器为Flash,在这些系统的Flash中没有存储上述的各种日志,因而对系统运行情况无记录可查,当系统出现死机甚至崩溃时,无法快速定位或者确认死机或崩溃的原因,技术人员需要耗费较大的精力找到故障原因和位置,从而导致软件开发和维护的成本较高。
发明内容
本发明的目的在于提供一种基于Flash的日志存储方法,通过在Flash中存储程序运行中必要的日志信息,在需要时将日志信息从Flash中读出,可以解决现有技术中嵌入式系统在发生死机或崩溃时无法快速定位的问题。
为实现上述发明目的,本发明采用下述技术方案予以实现:
一种基于Flash的日志存储方法,该方法以Flash的块或扇区为存储管理单元构成日志存储空间,将需存储的日志以日志记录的形式写入Flash的日志存储空间内。
本发明通过将Flash的块或扇区作为存储管理单元构成连续的日志存储空间,将日志以记录的形式写入日志存储空间中,可充分利用Flash自身的特性,且日志记录信息连续存储,实现数据的紧缩存储,可以有效利用Flash的存储空间保存尽可能多的有效日志信息,为系统开发和维护提高更多、更可靠的现场保护,便于在系统死机或崩溃时为相关人员提供快速定位故障位置及原因的依据。
如上所述的存储方法,所述日志记录包括记录头字段和记录长度字段,将当前日志记录写入Flash的日志存储空间的过程包括下述步骤:
a、查找Flash的日志存储空间是否存在日志记录的记录头,并将查找到的第一条有效日志记录的记录头作为同步头;
b、在查找到同步头后,查找上一次日志记录存储时的写指针位置;
c、判断剩余日志存储空间能否存放当前日志记录;
d、在剩余日志存储空间能够存放当前日志记录时根据写指针位置写入当前日志记录。
如上所述的存储方法,为便于调整日志记录的写入速度、防止因大量无效或重复记录的写入而占用Flash存储空间及降低Flash读写速度,在所述步骤d中,将写入当前日志记录之前,判断日志记录的写入频率是否大于设定的采样频率,若写入频率大于采样频率,则丢弃部分日志记录,以调整写入频率。
如上所述的存储方法,日志记录可根据随机数来选择性丢弃、以保证尽可能多地保存有用记录,具体来说,若日志记录的写入频率大于设定的采样频率,首先设置溢出标志,然后在一定取值范围内获取随机数,根据随机数与随机数的取值范围及采样频率的大小关系判断与随机数相对应的日志记录是否需要丢弃。
如上所述的存储方法,为防止查找过程的误判,在所述步骤a中,采用下述过程查找同步头:首先找到第一条日志记录的记录头,然后根据第一条日志记录的记录长度将读指针向后移动至该第一条日志记录结束后的下一个地址,读取下一个地址的数据并判断是否为记录头,若为记录头,则判断第一条日志记录为第一条有效记录,其记录头即为同步头。
如上所述的存储方法,在所述步骤b中,若查找到同步头,则查找日志存储空间中已存储的最新日志记录,最新日志记录的下一个地址即为上一次日志记录存储时的写指针位置。
如上所述的存储方法,为便于判断日志记录的先后顺序,所述日志记录包括有版本号字段,且采用下述过程查找日志存储空间中已存储的最新日志记录:
从所述同步头对应的日志记录开始,依次比较前、后两条相邻的日志记录的版本号,若版本号不连续,则前面的日志记录即为最新的日志记录。
如上所述的存储方法,为充分利用Flash存储空间,在所述步骤b中,若未查找到同步头,则擦除整个日志存储空间,并将日志存储空间的首地址作为写指针位置。
如上所述的存储方法,为最大限度地保留有效的日志记录信息,在所述步骤d中,若剩余日志存储空间不能存放当前日志记录,擦除最早写入的日志记录所在的块或扇区,将写指针移至擦除的块或扇区的首地址,然后根据写指针位置写入当前日志记录。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信宽带多媒体技术有限公司,未经青岛海信宽带多媒体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110442999.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于最低谷充电的设备及方法
- 下一篇:压铆基座固定板