您现在的位置: 主页 > 电子技术 > EDA > 在uboot里添加yaffs镜像的支持 -
本文所属标签:
为本文创立个标签吧:

在uboot里添加yaffs镜像的支持 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-09 

[导读]作者:孙晓明,华清远见嵌入式学院讲师。
uboot源码默认是不支持yaffs文件系统的,所以我们需要自己修改源码进行支持。
首先我们进入U-Boot源码目录添加对yaffs镜像烧写的支持.
在common/cmd_nand.c里仿照jffs2来写一

作者:孙晓明,华清远见嵌入式学院讲师。

uboot源码默认是不支持yaffs文件系统的,所以我们需要自己修改源码进行支持。

首先我们进入U-Boot源码目录添加对yaffs镜像烧写的支持.

在common/cmd_nand.c里仿照jffs2来写一些yaffs的内容:

在:

U_BOOT_CMD(nand, 5, 1, do_nand,

"nand - NAND sub-systemn",

"info - show available NAND devicesn"

"nand device [dev] - show or set current devicen"

"nand read[.jffs2] - addr off|partition sizen"

"nand write[.jffs2] - addr off|partition size - read/write `size' bytes startingn"

" at offset `off' to/from memory address `addr'n"

之后添加nand read.yaffs 的使用说明:

"nand read.yaffs - addr off|partition sizen"

"nand write.yaffs - addr off|partition size - read/write `size' bytes startingn"

然后在nand命令的处理函数里do_nand中增加对write.yaffs的支持,do_nand在common/cmd_nand.c中实现:

在:

if (s != NULL &&

(!strcmp(s, ".jffs2") || !strcmp(s, ".e") || !strcmp(s, ".i"))) {

…….

的判断后面加:

else if (s != NULL &&

(!strcmp(s, ".yaffs") || !strcmp(s, ".e") || !strcmp(s, ".i"))) {

if (read) {

/* read */

nand_read_options_t opts;

memset(&opts, 0, sizeof(opts));

opts.buffer = (u_char*) addr;

opts.length = size;

opts.offset = off;

opts.readoob = 1;

opts.quiet = quiet;

ret = nand_read_opts(nand, &opts);

} else {

/* write */

nand_write_options_t opts;

memset(&opts, 0, sizeof(opts));

opts.buffer = (u_char*) addr;

opts.length = size;

opts.offset = off;

/* opts.forcejffs2 = 1; */

//opts.pad = 1;

opts.noecc = 1;

opts.writeoob = 1;

opts.blockalign = 1;

opts.quiet = quiet;

ret = nand_write_opts(nand, &opts);

}

}

由于前面设置了opts.noecc = 1,不使用ecc校验码,烧写过程中会提示这个信息:

Writing data without ECC to NAND-FLASH is not recommended

Writing data without ECC to NAND-FLASH is not recommended

Writing data without ECC to NAND-FLASH is not recommended

Writing data without ECC to NAND-FLASH is not recommended

Writing data without ECC to NAND-FLASH is not recommended

可以修改driver/mtd/nand/nand_base.c文件的nand_write_page函数,将它去掉,修改如下:

case NAND_ECC_NONE:

//printk (KERN_WARNING "Writing data without ECC to NAND-FLASH is not ecommendedn");

this->write_buf(mtd, this->data_poi, mtd->oobblock);

break;

修改完这些,U-BOOT就可以支持yaffs文件镜像的烧写了。

“本文由华清远见http://www.embedu.org/index.htm提供”



来源:华清远见0次

本文引用地址: http://www.21ic.com/app/eda/201806/769149.htm



              查看评论 回复



嵌入式交流网主页 > 电子技术 > EDA > 在uboot里添加yaffs镜像的支持 -
 

"在uboot里添加yaffs镜像的支持 -"的相关文章

网站地图

围观()