<?xml version="1.0" encoding="gbk"?>
<rss version="2.0">
<channel>
 <title><![CDATA[l求助：linux系统下，nand断电无法保存数 ..]]></title>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842]]></link>
 <description><![CDATA[Latest 20 replies of l求助：linux系统下，nand断电无法保存数 ..]]></description>
 <copyright><![CDATA[Copyright(C) ]]></copyright>
 <generator><![CDATA[PHPWind Forums by PHPWind Studio]]></generator>
 <lastBuildDate><![CDATA[Mon, 27 Jul 2026 20:56:31 +0000]]></lastBuildDate>
  <image>
 <url><![CDATA[images/rss.gif]]></url>
 <title><![CDATA[PHPWind Board]]></title>
 <link><![CDATA[http://www.aiothome.net]]></link>
 <description><![CDATA[]]></description>
  </image>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[楼上的说的好，这才是这个问题的价值所在。]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9244]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Fri, 28 Aug 2009 04:46:14 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[这个问题涉及两个层面的问题, 1 flash硬件是如何读写数据的. 2. yaffs或者Jffs2是如何操作的.

如果你不使用文件操作来保存数据你就必须了解MTD或者flash是如何读写的. flash的读写时by sector的也就是说即使你只写一个byte 它也会把整个扇区重写. 这需要一定的时间, 所以如果你立刻断电数据不一定写进去了,因为他需要写整 ..]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9242]]></link>
 <author><![CDATA[skyold]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Fri, 28 Aug 2009 04:04:39 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[回 8楼(kasim) 的帖子]]></title>
 <description><![CDATA[谢谢多次回复。我再按你说的方法研究研究。
我的目的很简单，就是能够将系统参数保存到nand中，掉电不丢失。按照26672624提供的思路，已达到目的。
我会继续研究以前的问题，谢谢！]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9201]]></link>
 <author><![CDATA[wangguangcai]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 27 Aug 2009 05:32:24 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[回 7楼(26672624) 的帖子]]></title>
 <description><![CDATA[谢谢你的回复和解释。以文件的形式存储参数是可行的，刚才已做实验验证，掉电可以保存数据。]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9200]]></link>
 <author><![CDATA[wangguangcai]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 27 Aug 2009 05:27:55 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[[quote]但是我的/dev/目录下怎么没有你说的dev/mtdX设备呢？
另外我保存的数据是要放在nand的额外地址，不能影响kernel和bootloader。就算采用你说的dev/mtdX设备，如何把他定位到mtdblock3?[/quote]
1. 确保你的内核配置中enable了MTD CHAR的支持；
2. 这里的mtdX和mtdblockX是一一对应的(X=0,1,2,3...), 底下的NAND Fla ..]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9197]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 27 Aug 2009 04:39:37 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[Linux系统中，块设备都是挂在一个目录上使用的(就是通常所说的mount)，然后直接在里面创建读写文件就行了，如果你想独辟蹊径，创新使用，那这种非标准的用法，只能自己慢慢摸索了。个人认为从各方面来讲，这样做意义不大。而且，谁也搞不清你在做什么。这就好比，本来一颗好好的IC，管脚都是常用兼容的，但你却把它剖开， ..]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9196]]></link>
 <author><![CDATA[26672624]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 27 Aug 2009 04:16:25 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[但是我的/dev/目录下怎么没有你说的dev/mtdX设备呢？
另外我保存的数据是要放在nand的额外地址，不能影响kernel和bootloader。就算采用你说的dev/mtdX设备，如何把他定位到mtdblock3?
还有正如你说那样，我采用的这种用法很少见，但是不代表不能用啊，况且系统软件reboot后还是可以保存。若只针对我这种用法的话，问题的原 ..]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9194]]></link>
 <author><![CDATA[wangguangcai]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 27 Aug 2009 03:57:50 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[好好的MTD被LZ这样糟蹋使用了，好好理解一下Linux吧，别老拿单片机的思想解决问题。
保持参数佷容易，不就创建一个文件吧，如果打算编程实现就用标准的文件操作函数fopen，
懒惰一些可以touch一个，也可以拿优盘随便复制一个，拿Linux当什么了？]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9192]]></link>
 <author><![CDATA[26672624]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 27 Aug 2009 03:44:36 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[[quote]引用第2楼kasim于2009-08-26 17:52发表的&nbsp;&nbsp;:
另外，mtdblockX是block设备，也就是说，主要是通过它之上的文件系统工作的，很少有人直接读写它。事实上，MTD层专门为直接读写提供了一个字符设备接口(/dev/mtdX)。mtdutils里的nandread/nandwrite命令就是通过这个设备实现的
[/quote]
老大，看不懂中文吗？]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9190]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 27 Aug 2009 03:13:08 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[在open函数中加了O_SYNC属性，问题依旧！]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9188]]></link>
 <author><![CDATA[wangguangcai]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 27 Aug 2009 02:29:44 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[另外，mtdblockX是block设备，也就是说，主要是通过它之上的文件系统工作的，很少有人直接读写它。事实上，MTD层专门为直接读写提供了一个字符设备接口(/dev/mtdX)。mtdutils里的nandread/nandwrite命令就是通过这个设备实现的]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9148]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Wed, 26 Aug 2009 09:52:12 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[有意思，试试在open()上加上O_SYNC?

这是open的manpage中的描述：
O_SYNC The file is opened for synchronous I/O.&nbsp;&nbsp;Any write(2)s on the resulting file descriptor&nbsp;&nbsp;will&nbsp;&nbsp;block&nbsp;&nbsp;the&nbsp;&nbsp;calling
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb ..]]></description>
 <link><![CDATA[http://www.aiothome.net/read.php?tid=2842#9147]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Wed, 26 Aug 2009 09:46:37 +0000]]></pubdate>
</item>
</channel></rss>