U-boot-2009.03移植之八:第一阶段之nand_read.c的理解和修改

本文介绍了如何在board/samsung/mini2440中移植并修改NAND Flash读取函数nand_read.c,用于将U-boot从NAND拷贝到RAM。内容包括代码实现、nand_read_ll函数的解析,以及Makefile的更新。移植过程中,利用s3c2440芯片内置的NAND Flash支持简化了操作。
摘要由CSDN通过智能技术生成

在board/samsung/mini2440加入NAND Flash读函数文件,这个文件主要支持uboot从nand中拷贝自身到ram中。uboot中代码搬移部分,所使用的语句
  @ copy U-Boot to RAM
    ldr    r0, =TEXT_BASE
    mov    r1, #0x0
    mov    r2, #LENGTH_UBOOT
    bl    nand_read_ll
    tst    r0, #0x0
    beq    ok_nand_read
实现代码从nand到ram的拷贝,使用到了nand读函数。拷贝vivi中的nand_read.c文件board/samsung/mini2440即可,基本上大陆上移植的都是这样做的,在此把该文件的内容贴出来,目的是对一些难理解的代码进行解析:参考

http://home.eeworld.com.cn/my/space.php?uid=135723&do=blog&id=25347
对于这部分代码的理解:s3c2440里面已经集成了对nand flash操作的相关寄存器,只要你的nand flash接线符合s3c2440 datasheet的接法,就可以随便使用s3c2440 对于nandflash的相关寄存器,例如如果你想像nand flash写一个命令,那么只要对命令寄存器写入你的命令就可以了,s3c2440 可以自动帮你完成所有的时序动作,写地址也是一样。反过来说如果没有了对nand flash的支持,那么我们对nand falsh的操作就会增加好多对I/O口的控制,例如对CLE,ALE的控制。s3c2440已经帮我们完成了这部分工作了

/*下面nand_read_ll 的三个参数来自start.S里面调用nand_read_ll 前的r0、r1、r2*/

 

注意一点就是,修改了nand_read.c 文件之后,应该相应修改board/samsung/mini2440下的Makefile,在里面加入nand_read.o目标,如下:

COBJS := mini2440.o nand_read.o flash.o

SOBJS := lowlevel_init.o<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值