移植u-boot学习笔记10-----支持烧写yaffs映象及制作补丁

1、先看u-boot能否支持烧写jffs文件系统

(1)先用tftp命令下载文件系统到SDRAM ,然后擦除nand flash 的rootfs分区,然后把文件系统烧写到0x00260000里面,0x00260000不能直接用rootfs替换。因为下载的文件肯定会小于rootfs分区,如果用rootfs写肯定会把不相干的内容都写进去

(2)先下载查看文件的大小


(2)擦除分区,并写把文件大小为5b89a8的文件写进nand flash


(3)设置启动参数

对于jffs文件系统来说,启动参数要修改一下


(4)成功挂载,jffs是一个压缩的文件系统

2、看u-boot能否支持烧写yaffs文件系统

(1)重启、下载、烧写


(2)擦除、烧写

出现未知的nand命令后缀.yaffs


(3)查看代码

nand命令对应common\cmd_nand.c

在此文件中搜索.yaffs,需要定义宏CONFIG_CMD_NAND_YAFFS


所以修改配置文include\configs\smdk2440.h

添加宏CONFIG_CMD_NAND_YAFFS的定义


(4)修改后进行编译、烧写

各命令间用分号隔开,下载u-boot.bin到nor flash


重启后下载文件系统


擦除然后烧写


启动后出现以下错误,虽然可以挂载上去,但说找不到init程序。


3、对比文件fs_mini_mdev.yaffs2

(1)用UE工具打开fs_mini_mdev.yaffs2文件


文件里面的OOB,因为每一页是2048,按下Ctrl+H转到2048处


但发现与在nand flash地址260000的地方读到的OOB内容不一样


(2)用nand dump命令查看烧写到nand flaah的260000的地方的文件内容

看页数据


看OOB 


(3)查看cmd_nand.c

如果是yaffs文件的话,调到函数nand_write_skip_bad烧写


函数nand_write_skip_bad中rval参数有问题,如果返回0是成功的,返回非零值是失败的。第二个问题是我们的OOB要用原始的。(在Nand_util.c里面)


因而更改如下


(4)重新编译, 下载烧写


(5)用reset命令重启u-boot,然后烧写文件系统

下载、擦除、烧写、启动



4、制作u-boot补丁

(1)先make distclean清除掉生成的目标文件


(2)把u-boot重新命名,以防重复


(3)解压未经修改的u-boot,用diff命令制作补丁,前面的是未经修改的u-boot,后面是修改后的u-boot,生成的是补丁文件。


(4)打补丁、配置、编译(make)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值