我正在使用at91rm9200处理器和at45db642D dataflash升级运行修改后的2.6.12.1的传统电路板上的固件,使用at45db641E数据闪存。 641E的特点是:
我相信内核内存管理器页面大小是标准的4096字节。
我想在设备上放置一个合适的jffs2图像。我想知道的mkfs.jffs2选项是(来自手册页):
该男子称pagesize与内核内存管理页面大小有关(在我的情况下为4096,与默认值相同),而不是设备的264字节页面。所以我需要指定--pagesize = 4096而不是--pagesize = 264,这是正确的吗?
该男子还说--eraseblock的大小必须与MTD设备的擦除块大小相同。我对几件事情感到困惑。
device->erasesize=pagesize
内。因此,似乎有一些类似命名但不同的概念:驱动程序擦除,设备擦除块大小和jffs2擦除块大小。这些之间的关系和差异是什么? jffs2指定的eraseblock大小最终如何影响驱动程序执行的操作?感谢您的帮助。
答案 0 :(得分:0)
我已经设法检查内核中的各种源文件,以确定发生了什么,至少足以使其正常工作。请注意,这适用于2.6.12.1,不一定适用于更晚的内核版本。
有四个术语具有相似的名称,相关但不一定相同。从最高层到最低层......
以下是我理解的约束条件。
所以在我的例子中,内核将虚拟块大小从264字节调整为4224字节。因此,我的jffs2文件系统使用mkfs.jffs2的-e 4224
选项。驱动程序一次擦除每个4224字节长的虚拟块。
其他考虑因素:
-s pagesize
选项与内核页面大小相关。我使用-s 4096
使用了我的内核页面大小。-e
参数是不太可能的,这使我的单位问题无法解决