• «
  • 1
  • 2
  • »
  • Pages: 2/2     Go
主题 : l求助:linux系统下,nand断电无法保存数据! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 3507
精华: 0
发帖: 27
金钱: 170 两
威望: 57 点
综合积分: 54 分
注册时间: 2009-01-14
最后登录: 2017-09-13
10楼  发表于: 2009-08-27 13:32

 回 8楼(kasim) 的帖子

谢谢多次回复。我再按你说的方法研究研究。
我的目的很简单,就是能够将系统参数保存到nand中,掉电不丢失。按照26672624提供的思路,已达到目的。
我会继续研究以前的问题,谢谢!
级别: 新手上路
UID: 7812
精华: 0
发帖: 1
金钱: 10 两
威望: 15 点
综合积分: 2 分
注册时间: 2009-07-29
最后登录: 2010-05-31
11楼  发表于: 2009-08-28 12:04
这个问题涉及两个层面的问题, 1 flash硬件是如何读写数据的. 2. yaffs或者Jffs2是如何操作的.

如果你不使用文件操作来保存数据你就必须了解MTD或者flash是如何读写的. flash的读写时by sector的也就是说即使你只写一个byte 它也会把整个扇区重写. 这需要一定的时间, 所以如果你立刻断电数据不一定写进去了,因为他需要写整整一个扇区的数据.

为了克服这些问题,就有了yaffs和jffs2. 他们的基本原理是利用所谓的日志系统,不断的循环写数个扇区,保证数据的完整和准确性,比如jffs2最小需要8个扇区才能正常工作. 简单的说文件系统的价值就体现在这里了.

所以如果你直接操作MTD你就必须自己考虑备份和掉电的问题, 如果你使用适当的文件系统则不用. 但是必须明白,在硬件上,总线上的数据通讯并没有消失,相反使用文件系统在总线上的通讯反而更多,所以即使使用文件系统也并不等于你可以不受约束的写flash, 谨慎的选择什么时候写仍然是有些系统需要考虑的问题,特别当flash和别的设备共用总线的时候.

如果有兴趣做深入了解可以看看JFFS2等文件系统的文档
本帖最近评分记录:
  • 威望:+10(kasim) 非常透彻的理解,期待你 ..
  • *無鈳取玳
    级别: 论坛版主
    UID: 27
    精华: 12
    发帖: 5398
    金钱: 40120 两
    威望: 17929 点
    综合积分: 11036 分
    注册时间: 2008-01-16
    最后登录: 2014-11-22
    12楼  发表于: 2009-08-28 12:46
    楼上的说的好,这才是这个问题的价值所在。
    "If you have an apple and I have an apple and we exchange apples, then you and I will
    still each have one apple. But if you have an idea and I have an idea and we exchange
    these ideas, then each of us will have two ideas."
    • «
    • 1
    • 2
    • »
    • Pages: 2/2     Go