写在前面
大家都知道,目前主要流利的日志文件系统有JFFS,YAFFS等,这些都是目前在Linux中应用较多的日志文件系统。前期在做嵌入式方面的开发工作时,发现原来同事使用FLASH存储数据时使用了非常多的全局变量来保存FLASH的状态,同时在数据写入、读取和删除代码中又引用了大量的代码,感觉很乱。当时想,难道在ARM7上就没有一个好用的FLASH文件系统吧,当时也有人研究FAT32,但基本上是应用于SD卡的。其实操作FLASH并写入想要写的数据,并不难,所以这方面的封装库不多见,也属正常。再者,由于转入到编写嵌入式代码工作时间也不长,因此对于此行业的状态也了解不多。作为监控领域的嵌入式行业,最重要的两点就是数据采集和数据历史存储。数据采集与监控的目标对象有关,数据历史存储,目前在低端的ARM7或者Cortex-M3系统的架构上,基本上使用外部FLASH来做存储。随着目前芯片集成技术的推进,目前在一片CPU上也有好几十上百K的FLASH空间,这样一来,实现廉价的监控方案就方便了。然后,在软件行业,面向对象、封装已经风行多年,由于单片系统资源有限,在此领域内封装的库不多,但随着芯片制造技术的飞跃,32位单片机已经非常常见,而且便宜。因此在单片机系统上,进行封装开发也会越来越多。像目前Cortex-M3提供的外围设备库已经属于标配,因此在单片系统开发已经不是懂硬件人的专利了。当我看到外围设备库,看到原来混乱的数据处理代码,我决定对这些代码进行良好封装,以提高自己的开发效率。
FLASH日志文件系统在应用中需要解决的问题主要有两个: