为 0x300000
在没有分区的情况下,对这块区间的操作如下:
nand erase 20000 300000 nand write 20000000 20000 300000 nand read 20000000 20000 300000 |
擦除操作 写操作 读操作 |
而有了分区的情况下,操作将变得非常简单,如下(其中 kernel 为分区名) | |
nand erase.part kernel nand write 20000000 kerne nand read 20000000 kernel |
擦除操作 写操作 l 读操作 |
256K 给 u-boot
128K 给 params,即环境变量
3M 给内核
剩余的全部给根文件系统
这里指定了环境变量在 NAND 的分区所在的地址空间,在 smdkv210.h 中定义了其所在的地址和大小
两者需一致。
效果如下:
执行 mtdparts 查看分区信息,提示非法的 mtd 设备,这是由于之前将 u-boot 中默认的分区信息写入
了 NAND 的环境变量, 所以读取失败,我们执行 mtdparts default ,重新初始化分析信息,然后再次
执行 mtdparts 就可以正常读取了。
注意:这里执行了 mtdparts default 初始化分析信息,还必须执行 saveenv 将其保持到 NAND,然后
重启再次查看分区信息,一切正常
现在可以使用分区操作 nand 了