b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

文件系统转换 Bootloader之uBoot简介(转)(25)

电脑杂谈  发布时间:2018-02-07 22:32:44  来源:网络整理

要让U-Boot支持NAND Flash,首先在配置文件include/configs/100ask24x0.h的宏CONFIG_COMMANDS中增加CFG_CMD_NAND,如下:

#define CONFIG_COMMANDS \

(CONFIG_CMD_DFL | \

CFG_CMD_CACHE | \

CFG_CMD_PING | \

CFG_CMD_NAND| \

……

然后选择使用哪套代码:在配置文件中定义宏CFG_NAND_LEGACY则使用旧代码,否则使用新代码。

使用旧代码时,需要实现drivers/nand_legacy/nand_legacy.c中使用到的各种宏,比如:

文件系统转换_u盘fat32转ntfs_d盘转换fat系统

#define NAND_WAIT_READY(nand)/* 等待Nand Flash的状态为“就绪”,代码依赖于具体的开发板 */

#define WRITE_NAND_COMMAND(d, adr)/* 写NAND Flash命令,代码依赖于具体的开发板 */

本书使用新代码,下面讲述移植过程。

代码的移植没有现成的文档,可以在配置文件include/configs/100ask24x0.h的宏CONFIG_COMMANDS中增加CFG_CMD_NAND后,就编译代码,然后一个一个地解决出现的错误。编译结果中出现的错误和警告如下:

nand.h:412: error: `NAND_MAX_CHIPS' undeclared here (not in a function)

nand.c:35: error: `CFG_MAX_NAND_DEVICE' undeclared here (not in a function)

nand.c:38: error: `CFG_NAND_BASE' undeclared here (not in a function)

nand.c:35: error: storage size of `nand_info' isn't known

nand.c:37: error: storage size of `nand_chip' isn't known

nand.c:38: error: storage size of `base_address' isn't known

nand.c:37: warning: 'nand_chip' defined but not used

nand.c:38: warning: 'base_address' defined but not used

在配置文件include/configs/100ask24x0.h中增加如下3个宏就可

以解决上述错误。在Flash的驱动程序中,设备是逻辑上的概念,表示一组相同结构、访问函数相同的Flash芯片。在本书所用开发板中,只有一个

NAND Flash芯片,所以设备数为1,芯片数也为1。

#define CFG_NAND_BASE 0/* 无实际意义:基地址,这在board_nand_init中重新指定 */

#define CFG_MAX_NAND_DEVICE 1/* NAND Flash“设备”的数目为1 */

#define NAND_MAX_CHIPS 1/* 每个NAND Flash“设备”由1个NAND Flash“芯片”组成 */

修改配置文件后再次编译,现在只有一个错误了,“board_nand_init函数未定义”:

nand.c:50: undefined reference to `board_nand_init'


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66092-25.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...