2440超详细uboot移植笔记(十五)------支持YAFFFS文件系统
来源:互联网 发布:国家电影专项资金算法 编辑:程序博客网 时间:2024/05/21 04:38
你好!这里是风筝的博客,欢迎和我一起交流。
如果本篇博客对您有帮助,或许可以在下方评论给我留个言。
a.u-boot本身支持对jffs2格式文件系统的nand指令操作,但是没有支持yaffs2的格式,所以我们要修改使其支持yaffs2格式文件系统指令操作。
在u-boot中搜索.yaffs
,并找不到相关代码,所以我们转而搜索.jffs2
,可以在u-boot-2016.05\cmd\nand.c:do_nand函数中发现相关代码。
观察可发现u-boot关于nand的操作指令就是在u-boot-2016.05\cmd\nand.c:do_nand函数中。
b.在nand.c文件(路径:cmd\nand.c)的do_nand函数中,
找到CONFIG_CMD_NAND_TRIMFFS的#ifdef语句,
在其#endif之下,添加如下代码:
#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(mtd, off, &rwsize, NULL,
maxsize, (u_char *)addr,
WITH_YAFFS_OOB);
#endif
c.在nand.h(路径:include\nand.h)文件中,添加一个宏定义:
#define WITH_YAFFS_OOB (1 << 0)
d.在nand_util.c(路径:drivers\mtd\nand\nand_util.c)文件中的nand_write_skip_bad函数中,添加如下代码:
接下来if (!need_skip && !(flags & WITH_DROP_FFS){修改为:
if (!need_skip && !(flags & WITH_DROP_FFS) && !(flags & WITH_YAFFS_OOB)) {
e.在mtd.h(路径:include\linux\mtd\mtd.h)文件中,添加:
typedef enum {
MTD_OOB_PLACE,
MTD_OOB_AUTO,
MTD_OOB_RAW,
} mtd_oob_mode_t;
f.在smdk2440.h添加宏定义:
#define CONFIG_CMD_NAND_YAFFS
g.make编译之后,会发现报错:
./scripts/check-config.sh u-boot.cfg \
./scripts/config_whitelist.txt . 1>&2
comm: file 2 is not in sorted order
Error: You must add new CONFIG options using Kconfig
The following new ad-hoc CONFIG options were detected:
h.我们可以把顶层Makefile的这两句话用#注释掉:
$(srctree)/scripts/check-config.sh u-boot.cfg \
$(srctree)/scripts/config_whitelist.txt ${srctree} 1>&2
i.据说把scripts/config_whitelist.txt文件中所有2410字样改成2440可以完美解决出现的报错,而不需要像h那样做,有待考证.
j.如果烧写的是jffs2文件,记得设置bootargs=console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2
-----------------------------------------------(完)-----------------------------------------------
小记:
uboot现在是271k左右,感觉还是有点大,应该还可以继续剪裁下
- 2440超详细uboot移植笔记(十五)------支持YAFFFS文件系统
- 2440超详细uboot移植笔记(八)------支持NAND启动
- 2440超详细uboot移植笔记(十)------支持NOR FLASH
- 2440超详细uboot移植笔记(十一)------支持NAND FLASH
- 2440超详细uboot移植笔记(四)------剪裁uboot
- 2440超详细uboot移植笔记(十二)------移植网卡驱动
- 2440超详细uboot移植笔记(一)------分析源码
- 2440超详细uboot移植笔记(二)------新建单板
- 2440超详细uboot移植笔记(五)------设置时钟
- 2440超详细uboot移植笔记(六)------修改内存控制器
- 2440超详细uboot移植笔记(七)------去掉 "-pie"选项
- 2440超详细uboot移植笔记(九)------修改错误
- 2440超详细uboot移植笔记(十四)------设置MTD分区
- 2440超详细uboot移植笔记(三)------指定交叉编译链
- 2440超详细uboot移植笔记(十三)------设置环境变量保存地址
- 超详细uboot的移植(GEC210开发板)
- UBOOT-2010.06 移植 支持 下载yaffs2文件系统 (九)
- Uboot到Kernel到文件系统(Cortex_A9)移植详细文档
- 机器学习 基本总结
- Redis持久化学习
- 加密产品合集大推荐,总有一款适合你!
- 3.3D数学三角函数正弦与余弦
- CentOS7.2下unison+inotify的Web目录同步方案
- 2440超详细uboot移植笔记(十五)------支持YAFFFS文件系统
- cnn
- Java之多态
- caffe深度学习(二)finetune
- 一些看过的博客汇总
- [Laravel 5.3 新功能] 12. Mail 操作类 Laravel Mailable
- 操作系统原理读书笔记之进程间通信IPC
- 【精】这可能是最好的认识嵌入式linux的文章
- OpenCV参考手册之CvCapture结构体