你好!这里是风筝的博客,
欢迎和我一起交流。
a. mtd分区只是代码的一种手段,方便我们使用,用名字代替一些数字,不会对内核产生任何影响.
b. 在smdk2440.h文件中,添加宏定义:
#define CONFIG_CMD_MTDPARTS
#define CONFIG_MTD_DEVICE
#define MTDIDS_DEFAULT "nand0=jz2440-0"/*哪个分区*/
#define MTDPARTS_DEFAULT "mtdparts=jz2440-0:512k(u-boot),"\
"128k(params),"\
"2m(kernel)," \
"-(rootfs)"
这里,设置mtd分区为:
uboot:512k;params:128k;kernel:2m;rootfs:余下大小;
注意,我们现在的uboot为271k,所以分区里uboot的大小应该设为271k以上.而且nand flash是以块为单位操作的,所以各个分区的偏移地址、大小、结束地址必须遵循以128k为单位的规则,即都是0x20000的倍数
c. 这样,在我们uboot界面上,执行mtdparts命令,就可以看到我们分区了.