|
|
|
| |
FLASH上数据保存 |
| |
|
| |
鉴于目前发行的套件中的uClinux均采用ROMFS作为其根文件系统,因此其目录大多是不可写的。只有/var,/tmp是RAM盘可写,但板子一掉电里面的内容就丢失了,因此只能作临时文件保存,无法永久的保存数据,例如配置文件等。下面大概介绍一下几种FLASH上保存配置的方法:
- 对于简单的数据,小的配置文件等,而且不是非常频繁的(例如一分钟写10次)写入的,可以直接自己在FLASH的空余处(例如第二片FLASH上)划出一块区域,以自己定义的方式写入,并在板子启动时自动读出。这样作最大的好处是用户的控制程度最大,形式最灵活,保存的可以是自定义的数据,可以不是文件的形式。而下面的几种方式都是要求文件的形式保存,无法处理自定义的数据保存。
- 对于比较多的配置文件,一般的都先写在RAM盘中,然后选择保存,一次性写入FLASH的某几个扇区。这时就可使用flatfsd软件,它的使用需要内核的配合支持,即要在blkmem.c中为其指定保存数据的几个扇区的起始/结束地址。这种方式也不能适应非常频繁的写入。
- 对于比较频繁的数据保存,就要在板子上建立额外的日志型文件系统JFFS/JFFS2,或者干脆就用JFFS/JFFS2取代ROMFS作根文件系统。这样板子的目录就是可写的,就像硬盘一样,不需要额外的工具来负责将数据写入FLASH。JFFS为2.0.38内核所支持,它不支持JFFS2,JFFS2到2.4内核才被支持,它采用了成熟稳定的MTD技术,因此要比JFFS稳定。这两种文件系统要在uClinux上实现支持并不复杂,但它的实用还需要一些额外的工作,例如烧写工具的配合,新型image.bin编译生成,因为真正产品化的软件是不能允许每次启动后都还要进行许多的手工操作,例如加载文件系统等,板子出厂烧写也要一次完成,而不能还要分多次烧写等等,这些工作都是比较繁杂的,而且没有烧写工具的源代码是无法完成的。
|
|