• u-boot修改出错的问题


    一、u-boot找不到nandflash

      我用的开发板是fl2440的,里面没有norflash只有nandflash。我用了s3c2410的u-boot改的,所以要把内核从norflash启动改成适合我fl2440的从nandflash启动。我开始做u-boot的,make不会出错但烧录的时候总是报错说u-boot不能找到nandflash。这个问题只是我在fl2440.h的头文件中没有去掉s3c2410头文件的支持。

    在这里我虽然定义了S3C2440与FL2440的头文件,可是同时在没有去掉S3C2410与SMDK2410的头文件定义,因此在nand_read.c的文件中如下地方:

      make时系统就会将norflash支持的代码编译进u-boot而不会编译nandflash支持的代码。

      这时我们只需要把S3C2440与FL2440的头文件从fl2440.h中去掉就可以了。不过要注意的是,改动fl2440.h之后要先make distclean再make fl2440_config,然后才能make编译。

    二、添加u-boot的环境变量:

      我做出来的u-boot烧录进去之后并没有开机启动倒数,也就是说u-boot并不能找到内核启动的地址,也就是u-boot中并没有设置bootcmd来告诉u-boot内核所在的地址:

      如图是我做出来的u-boot环境变量:

    如图是有bootcmd的u-boot环境变量:

    首先我们要在common/env_common.c文件中添加环境变量支持:

    然后在include/configs/fl2440.h的头文件中添加宏定义支持:

    改了头文件按上面的步骤:make distclean --> make fl2440_config --> make

    烧录之后就有内核的倒数3秒启动内核了。

    总结一下我们要改环境变量就先在common/env_common.c文件中添加环境变量的支持,然后再去include/configs/fl2440.h下添加宏定义。

  • 相关阅读:
    sql server 2008 R2突然用windows和sa都无法登录。昨天都还能登陆,今天突然不行。
    JSON
    String类型判断是否一致
    5-4利用选取事件实时修改订单
    5-3以复选框创建餐点选项
    mysql创建存储过程
    margin标记可以带一个、二个、三个、四个参数,各有不同的含义。
    CSS字间距
    Html合并单元格
    MySQL Innodb存储引擎 事务隔离级别 锁 理解
  • 原文地址:https://www.cnblogs.com/xiaohexiansheng/p/5401409.html
Copyright © 2020-2023  润新知