写在前面:

我的博客已迁移至自建服务器:博客传送门,CSDN博客暂时停止,如有机器学习方面的兴趣,欢迎来看一看。

此外目前我在gitHub上准备一些李航的《统计学习方法》的实现算法,目标将书内算法全部手打实现,欢迎参观并打星。GitHib传送门

正文

uboot启动以后,先烧写jffss看看能不能用

tftp 30000000 fs_mini_mdev.jffs2
nand erase.part rootfs
nand write.jffs2 30000000 0x00260000 5b89a8

“5b89a8”是实际文件的大小,下载以后会显示的,直接copy过来就可以了。这个时候还不能直接启动,uboot传给内核的参数需要修改

bootargs=console=ttySAC0 root=/dev/mtdblock3

修改为

bootargs=console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2

说明根文件系统的格式是jffs2的。
命令:boot 启动。
结果:成功启动jffs格式的根文件系统

再来试试yaffs格式的根文件
uboot的参数修改为

bootargs=console=ttySAC0 root=/dev/mtdblock3 rootfstype=yaffs2

烧写YAFFS

tftp 30000000 fs_mini_mdev.yaffs2
nand erase.part rootfs
nand write.yaffs 30000000 260000  889bc0

出现错误,说没有yaffs,进入文件查找

#ifdef CONFIG_CMD_NAND_YAFFS} else if (!strcmp(s, ".yaffs")) {if (read) {printf("Unknown nand command suffix '%s'.\n", s);return 1;}ret = nand_write_skip_bad(nand, off, &rwsize,(u_char *)addr, WITH_YAFFS_OOB);
#endif

CONFIG_CMD_NAND_YAFFS没有宏定义,将其在s3c2440.h文件中宏定义。
此外还需要一些修改,我直接跟着韦东山改的,是uboot里面逻辑之类的错误,不好好查代码根本查不出来。
在刚才的函数中找到nand_write_skip_bad函数,进入
a.找到下面这段代码

for (page = 0; page < pages; page++) {WATCHDOG_RESET();ops.datbuf = p_buffer;ops.oobbuf = ops.datbuf + pagesize;rval = nand->write_oob(nand, offset, &ops);if (!rval)        break;offset += pagesize;p_buffer += pagesize_oob;}

修改为

for (page = 0; page < pages; page++) {WATCHDOG_RESET();ops.datbuf = p_buffer;ops.oobbuf = ops.datbuf + pagesize;rval = nand->write_oob(nand, offset, &ops);if (rval)        /* 原先是非,这样是错的,把非去掉 */break;offset += pagesize;p_buffer += pagesize_oob;}

b.在上面代码的上方的

ops.mode = MTD_OOB_AUTO;

修改为

ops.mode = MTD_OOB_RAW;

编译,烧写。成功启动根文件系统

移植uboot第九步:支持yaffs映像烧写相关推荐

  1. linux rootfs编译进内核,九鼎x6818开发板笔记:uboot、kernel、rootfs编译和烧写

    下面记录了如何搭建嵌入开发环境,如何编译uboot.kernel.和文件系统,如何烧写镜像以及如何配置uboot环境变量. 阅读注意:记录中(Base框中的内容)一些操作故意被添加,为了展示文件内容, ...

  2. 移植uboot第一步:下载,编译,烧到板子上试验

    写在前面: 我的博客已迁移至自建服务器:博客传送门,CSDN博客暂时停止,如有机器学习方面的兴趣,欢迎来看一看. 此外目前我在gitHub上准备一些李航的<统计学习方法>的实现算法,目标将 ...

  3. 移植U-BOOT之支持烧写YAFFS文件系统以及制作U-BOOT补丁

    今天,我们来移植U-BOOT让其支持YAFFS文件系统映像的烧写,以及最后的终极目标,制作Uboot补丁,因为我们信心苦苦移植好了Uboot,如果换一个地方的或者换一台电脑之类的,我们也不想再浪费时间 ...

  4. 移植u-boot.2012.04.01

    /*************************************************** *u-boot版本:u-boot2012.04.01 *gcc版本:arm-linux-gcc ...

  5. 移植u-boot v2018

    本篇文章阐述移植 u-boot v2018.01 至 S5PV210 开发板上的主要流程和细节.市场上的S5PV210开发板,均是基于三星smdkv210公版平台山寨出来的.我使用的GEC210开发板 ...

  6. uboot的移植——移植uboot官方的uboot到x210开发板

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 参考内容 uboot--官网下载直接移植(一) - biaohc - 博客园 uboot--官网下载直接移植(二) - biaohc - ...

  7. NXP的uboot编译\烧写体验

    配置:IMX6ULL+eMMC(8G)+sd卡(16G) 平台:ubantu20/22 第一步:恩智浦官方原版的uboot,放到ubantu文件夹里 第二步:输入下面代码解压它, 解压完成有一个新的文 ...

  8. 【Linux】制作U-Boot烧写镜像到SD卡的过程(中篇:LDS文件)

    上一篇文章,讲述了制作U-Boot烧写镜像到SD卡的过程,其中运用make的方式来进行将.s文件编译成.bin文件,那make是什么意思?它主要实现了什么? 先讲一下,如果不采用make的方式该怎样实 ...

  9. appro dm368ipnc nandwriter的ubl和u-boot烧写问题以及diagnostic for dm368的诊断程序

    新板调试总是挫折不断,问题解决一个就又出来一个,连绵不绝... 这次是使用ccs3.3通过nandwriter烧写ubl和u-boot的问题,按照appro的UsersGuide烧写步骤,一直比较顺利 ...

最新文章

  1. 从“琐事优先”到“要事优先”,找对方法就对了
  2. 如何查看阵列卡的队列深度
  3. leetcode算法题--最长公共子数组
  4. synchronized锁升级
  5. CentOS下开启配置端口转发
  6. 程序一启动检查网络,如果没有网络就退出程序
  7. Java LinkedList公共布尔boolean offerLast(Object o)方法(带示例)
  8. CQOI 2016 不同的最小割
  9. 活动丨想和大咖云风来场1对1的亲面交流吗?!快来分享你的《程序员修炼之道》学习心得!
  10. mdf转sql mysql_如何将SQL数据库.MDF格式的导入到mysql数据库里面啊
  11. 聊聊Netflix的技术创新
  12. 数据库——实体联系模型
  13. C#实现图书管理系统(课程设计)——第五步、查询界面及操作
  14. 玩转iOS开发:iOS 10 新特性《Siri Kit》
  15. ZUI易入门Android之Git的使用(一)本地仓库
  16. C语言:srand函数与rand函数的使用(纯干货)【易懂】
  17. partial overwrite
  18. UOJ147 斗地主
  19. Python基础(五)---python3中的内置函数
  20. 如何用matlab画紫罗兰,[转载]基于MATLAB的快速傅立叶分析程序设计

热门文章

  1. react显示隐藏动画
  2. 什么是公网IP、内网IP和NAT转换?
  3. Zookeeper 安装
  4. 如何查看Oracle的用户权限
  5. Java 输入 输出
  6. CentOS开机自动运行程序的脚本
  7. leetcode算法题--剪绳子 II
  8. C语言编译、链接过程探究
  9. linux虚拟网络设备之tun/tap驱动程序设计原理(五)
  10. 计算机软件出版,[计算机软件及应用]出版信息管理系统.doc