jz2440 uboot移植(norflash部分)

  在uboot启动过程中,norflash的初始化在启动的第二阶段中,start_armboot()中调用了flash_init()函数,该函数(猜测)在[arm_lib/cfi_flash.c中(可能是在board/myjz2440/flash.c中),其中在cfi_flash.c中的flash_init函数在韦东山教程中使用了flash_detect_legacy (BANK_BASE(i), i)函数,该函数在/board/myjz2440/myjz2440.c中定义!!
流程如下:
   start_armboot()
->flash_init()
->flash_detect_legacy (BANK_BASE(i), i)    //返回值改为0即采用CFI方式
  //return 1就是legacy方式
                ->flash_get_size (BANK_BASE(i), i);        //普通情况使用后者!!!!




start_armboot()中nor和nandflash初始化相关函数:
NorFlash的初始化
   #ifndef CFG_NO_FLASH
     size = flash_init ();
     display_flash_config (size);


NandFlash的初始化
     #if defined(CONFIG_NAND)
     puts ("NAND:    ");
     nand_init();
     #endif




纠正:在start_armboot中使用的flash_init函数在/board/myjz2440/flash.c中,而不是/arm_lib/cfi_flash.c中,因为如果要在该函数的最前面有:


#ifdef CFG_FLASH_CFI_DRIVER
......
flash_init()
{ ... }
......


而要使用前面的flash_init()函数,对于韦东山教程中在/include/configs/100ask24x0.h中定义了:
#define CFG_FLASH_CFI 1
#define CFG_FLASH_CFI_DRIVER 1
#define CFG_FLASH_USE_BUFFER_WRITE 1
#define CONFIG_FLASH_CFI_LEGACY 1
一般情况下是不用的,只使用了一般的方法!!!!!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值