一种终端设备存储器件过度编程快速定位方法技术

技术编号:23399573 阅读:20 留言:0更新日期:2020-02-22 11:53
本发明专利技术涉及一种终端设备存储器件过度编程快速定位方法,基于Linux文件操作监控机制,交叉编译inotify监控工具;将交叉编译后生成的可执行程序及库文件,上传到嵌入式Linux终端设备中;对监控目录下的所有文件操作申请modify|delete|create|attrib四种会对Nandflash进行写操作的inotify事件,借助‑‑exclude选项剔除不需要监控的文件;执行对文件操作的监控,定位过度编程的代码。本发明专利技术借助inotify工具监控下,可以对文件的写操作是不是过于频繁进行实时监测;该方法为开发人员跟踪、排查文件系统崩溃问题时提供一种技术手段,提高应用程序编写的规范性及文件系统的可靠性;本发明专利技术设计合理、使用方便、可操作性强。

A method of over programming and fast location of terminal device memory

【技术实现步骤摘要】
一种终端设备存储器件过度编程快速定位方法
本专利技术属于嵌入式Linux系统
,具体涉及一种基于Linux文件操作监控机制的存储器件过度编程快速定位方法。
技术介绍
终端设备的嵌入式Linux系统在运行时,除了小概率的因突然断电等非正常关机造成的文件系统损坏之外,更大概率的是因为应用程序编程不当,造成对Nandflash的频繁擦写,行业术语称之为过度编程(OverProgram)。一旦过度编程造成逼近Nandflash约十万次的擦写寿命,表现为Nandflash的某些块/页陆续出现位反转(bitflip,所谓位反转,指的是原先Nandflash中存储的某个数据位变化了,即要么从1变成了0,要么从0变成了1)的现象。少量的位反转是可以靠硬件/软件ECC(ErrorCheckingandCorrection,错误检查和纠正)算法自纠过来的;但大量的位反转超出ECC的纠正能力之后,会导致文件系统数据损坏,严重时会导致系统崩溃,终端运行不起来。对于大规模量产的终端设备而言,这种问题一旦发生,往往不是升级下应用程序就能解决的,因为底层存储器件的寿命已到,必需要更换硬件才行,这会给公司带来大量的人力、物力及财力消耗,公司产品口碑也会受到影响,后果是非常严重的。然而现实中,采用嵌入式Linux系统的终端设备应用程序,其代码规模一般都不会很小,少则几万十几万行,多则几十上百万行,想要快速找到应用程序中对文件写操作比较频繁的地方,犹如大海捞针。这种情况下,寻找一种快速有效的方法,协助研发人员快速定位问题所在,将有问题的应用程序在终端设备生产投产之前暴露出来,不要流到现场等着问题去爆发,就显得尤为重要。
技术实现思路
为解决上述技术问题,本专利技术一种终端设备存储器件过度编程快速定位方法,编写终端设备嵌入式Linux应用程序时,在不确定应用程序会不会导致对底层存储器件的过度擦写时,可以借助Linux内核的文件操作监控机制inotify协助定位。Linux内核从2.6.13版本起,加入了inotify特性,这是一种文件系统的变化通知机制,通过inotify可以监控文件系统中添加、删除、修改、移动等各种文件操作,当事件发生时可及时发出相关的事件警告。利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况。本专利技术所采用的技术方案如下:一种终端设备存储器件过度编程快速定位方法,基于Linux文件操作监控机制,主要借助inotify工具监控应用程序对文件系统的各种文件操作,其包括以下步骤:步骤1、交叉编译inotify监控工具。所谓交叉编译(cross-compiling),就是在一种平台上编译,编译出来的程序,放到别的平台上运行,即编译环境和运行环境不一样,这个概念主要和嵌入式开发有关,一般是在x86平台上编译、在ARM平台上运行。步骤2、将交叉编译后生成的可执行程序及库文件,上传到嵌入式Linux终端设备中。步骤3、对监控目录下的所有文件操作申请modify|delete|create|attrib四种会对Nandflash进行写操作的inotify事件,这样监控目录下的文件若发生这几种变更,则会给出提示。步骤4、启动对文件操作的监控,监控着应用程序长时间运行一段时间,观察对文件的写操作是不是过于频繁。一旦发现异常的情况,再到代码里面去搜索对应的文件操作,便可以很容易地定位过度编程的代码。优选的,在监控过程中也可以借助--exclude选项剔除不需要监控的文件,进一步缩小排查的范围,以便更快速地定位过度编程的代码。本专利技术的有益技术效果:1)本专利技术借助inotify工具监控下,可以对文件的写操作是不是过于频繁进行实时监测。2)该方法为开发人员跟踪、排查文件系统崩溃问题时提供一种技术手段,提高应用程序编写的规范性及文件系统的可靠性。3)本专利技术具有设计合理、使用方便、可操作性强等优点。附图说明为了更清楚地说明本专利技术的具体实施方式、或者现有技术中的技术方案,下面将对具体实施方式或现有技术的描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图是本专利技术的一些具体实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的属于本申请保护范围之内的附图。图1是本专利技术实施例的使用inotify工具执行监控操作的流程图;图2是在用电信息采集终端上监控到的频繁文件写操作画面示意图。具体实施方式下面结合附图,具体说明本专利技术的实施方式。实施例一如图1所示,是本专利技术实施例一的使用inotify工具执行监控操作的流程图。一种终端设备存储器件过度编程快速定位方法,基于Linux文件操作监控机制,包括以下步骤:步骤1、交叉编译inotify监控工具。步骤2、将交叉编译后生成的可执行程序及库文件,上传到嵌入式Linux终端设备中。步骤3、对监控目录下的所有文件操作申请modify|delete|create|attrib四种会对Nandflash进行写操作的inotify事件,借助--exclude选项剔除不需要监控的文件。步骤4、执行对文件操作的监控,定位过度编程的代码。实施例二本专利技术实施例二,以监控嵌入式Linux系统常用的ubi文件系统为例进行说明。一种基于Linux文件操作监控机制的存储器件过度编程快速定位方法,具体步骤如下:步骤1、观察内核启动时挂载ubi文件系统时的打印信息,或者在系统正常运行过程中随时输入ubinfo命令,查看目前文件系统对Nandflash闪存的最大擦写次数。具体操作代码如下:步骤2、正常情况下,如果应用程序没有过度编程的话,上面显示的最大擦写次数(Currentmaximumerasecountervalue)一般不会很大,如果看到这种几万次的擦写次数,或者短时间内这个最大擦写次数增长比较快,说明应用程序中应该有过度编程的情况,这时我们可以借助Linux系统中的文件操作监控工具inotify协助定位。步骤3、在inotify的站点下载inotify-tools监控工具源代码,这里以版本inotify-tools-3.13.tar.gz为例。步骤4、由于嵌入式Linux系统一般运行在ARM平台上,需要将上面下载的源代码进行交叉编译,生成inotifywait、inotifywatch可执行程序及运行时需要的库文件。具体操作代码如下:#makeCC=arm-none-linux-gnueabi-gcc步骤5、将inotifywait、inotifywatch可执行程序上传到嵌入式Linux终端设备的/sbin目录下,并修改可执行权限。具体操作代码如下:#chmod755inotifywait#chmod755inotifywatch步骤6、将生成的库文件libinotifytools本文档来自技高网
...

【技术保护点】
1.一种终端设备存储器件过度编程快速定位方法,基于Linux文件操作监控机制,其特征在于,包括以下步骤:/n步骤1、交叉编译inotify监控工具;/n步骤2、将交叉编译后生成的可执行程序及库文件,上传到嵌入式Linux终端设备中;/n步骤3、对监控目录下的所有文件操作申请modify|delete|create|attrib四种inotify事件;/n步骤4、启动对文件操作的监控,观察对文件的写操作是不是过于频繁,一旦发现异常的情况,再到代码里面去搜索对应的文件操作,定位过度编程的代码。/n

【技术特征摘要】
1.一种终端设备存储器件过度编程快速定位方法,基于Linux文件操作监控机制,其特征在于,包括以下步骤:
步骤1、交叉编译inotify监控工具;
步骤2、将交叉编译后生成的可执行程序及库文件,上传到嵌入式Linux终端设备中;
步骤3、对监控目录下的所有文件操作申请modify|delete|create|attrib四种inotify事件;
步骤4、启动对文件操作的监控,观察对文件的写操作是不是过于频繁,一旦发现异常的情况,再到代码里面去搜索对应的文件操作,定位过度编程的代码。


2.根据权利要求1所述的一种终端设备存储器件过度编程快速定位方法,其特征在于,在监控过程中借助--exclude选项剔除不需要监控的文件。


3.根据权利要求1或2所述的一种终端设备存储器件过度编程快速定位方法,其特征在于,以嵌入式Linux系统常用的ubi文件系统为监控对象,具体步骤如下:
步骤1、观察内核启动时挂载ubi文件系统时的打印信息,或者在系统正常运行过程中随时输入ubinfo命令,查看目前文件系统对Nandflash闪存的最大擦写次数;
步骤2、如果发现对Nandflash闪存的最大擦写次数达到几万次,或者短时间内最大...

【专利技术属性】
技术研发人员:赵静尹贻国魏峰史国现徐法格刘亮吴凯孙少秋
申请(专利权)人:积成电子股份有限公司
类型:发明
国别省市:山东;37

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

1