嵌入式系统搭建之一u-boot移植

1. 配置好交叉编译工具链
    假设 pwd 得到 /timkyle-dev/techer/arm11-resources/
    a.解压交叉编译工具链包    
    #tar xf arm-4.3.2.tar.bz2 得到文件夹 arm-4.3.2
    b.增加PATH路径
    #vim ~/.bash_profile 增加 PATH=$PATH:/timkyle-dev/techer/arm11-resources/arm-4.3.2/bin
    c.使新增加的PATH路径立即生效
    注销用户后重新登录
    d.验证新增PATH是否生效
    #arm-none-linux-gnueabi-gcc --version
    上述命令成功运行,并有结果输出,则交叉编译工具链已经配置正确。

2. 编译并烧写u-boot到sd卡
    假设 pwd 得到 /timkyle-dev/techer/arm11-resources/
    a.解压u-boot源码包
    #tar xf u-boot-1.1.6.tar.bz2 得到文件夹 u-boot-1.1.6_smdk6410
    b.配置并编译u-boot为sd卡启动
    #cd u-boot-1.1.6_smdk6410
    #make smdk6410_config
    #vim include/configs/smdk6410.h
        原内容如下:
        445 /* Boot configuration (define only one of next) */
        446 //#define CONFIG_BOOT_NOR
        447 #define CONFIG_BOOT_NAND
        448 //#define CONFIG_BOOT_MOVINAND
        449 //#define CONFIG_BOOT_ONENAND
        450 //#define CONFIG_BOOT_ONENAND_IROM
        修为后如下:
        445 /* Boot configuration (define only one of next) */
        446 //#define CONFIG_BOOT_NOR
        447 //#define CONFIG_BOOT_NAND
        448 #define CONFIG_BOOT_MOVINAND
        449 //#define CONFIG_BOOT_ONENAND
        450 //#define CONFIG_BOOT_ONENAND_IROM
        配置说明:
        CONFIG_BOOT_NAND 为 NAND flash启动
        CONFIG_BOOT_MOVINAND 为 sd卡启动
        这里先配置为sd卡启动
    #make clean
    #make
    #cp u-boot.bin u-boot-sd.bin
    c.烧写u-boot到sd卡
    插入sd卡到电脑
    #ls /dev/sd* 知道刚插入的sd卡设备是 /dev/sdb1
    #cd /timkyle-dev/techer/arm11-resources/
    #tar xf s3c6410_sd.tar.bz2 得到文件夹 s3c6410_sd
    #cd s3c6410_sd
    #./mksdboot /dev/sdb1 ../u-boot-1.1.6_smdk6410/u-boot-sd.bin
    d.最后把sd卡插入开发板卡槽, 拨码开关拨到sd处。
3. 配置并启动minicom
    a.从电脑usb口连接usb-232线到开发板串口
    #ls /dev/ttyUSB* 知道刚连接的usb-232线设备是 /dev/ttyUSB0
    #minicom -s
    首先选择Serial port setup选项,具体配置如下:
        A -    Serial Device      : /dev/ttyUSB0
        B - Lockfile Location     : /var/lock
        C -   Callin Program      :
        D -  Callout Program      :
        E -    Bps/Par/Bits       : 115200 8N1
        F - Hardware Flow Control : No
        G - Software Flow Control : No
    接着选择Save setup as dfl选项
    最后选择exit选项,推出配置并运行minicom处于等待数据状态
    b.开发板通电,minicom就收到数据,显示已经成功启动并进入u-boot。
4. 配通开发板与主机的网络
    a.连接网线
    b.查看开发板的IP地址
    在minicom(即开发板)上运行
    $printenv
    从得到输出中,找到ipaddr=192.168.1.20,即为开发板IP地址
    c.配置主机IP地址
    #ifconfig eth0 192.168.1.10
    d.验证开发板与主机网络是否畅通
    在minicom(即开发板)上运行
    $ping 192.168.1.10
    结果如下代表畅通
    dm9000 i/o: 0x18000300, id: 0x90000a46
    MAC: 00:40:5c:26:0a:5b
    operating at 100M full duplex mode
    host 192.168.1.10 is alive
5. 配置主机的tftp服务器
    a.安装tftp服务器
    #yum install xinetd
    #yum install tftp-server
    b.修改启动脚本,允许tftp服务启动。
    #vim /etc/xinetd.d/tftp
    把disable = yes改为disable = no,
    把server_args = -s /var/lib/tftpboot改为server_args = -s /tftpboot -c
    保存退出。
    c.重启xinetd服务,则tftp也就启动了
    #service xinetd restart
    d.设置xinetd开机就启动服务
    #chkconfig --level 2345 xinetd on
    e.验证xinet及tftp是否启动成功
    #chkconfig --list
    看到结果如下
    xinetd             0:off    1:off    2:on    3:on    4:on    5:on    6:off
    xinetd based services:
        tftp:              on
    f.关闭防火墙
    #system-config-firewall
    点击Disable按钮
    g.关闭SELinux
    #vim /etc/sysconfig/selinux
    改为SELINUX=disabled
    保存推出,并重启电脑
6. 编译u-boot为nand flash启动
    假设 pwd 得到 /timkyle-dev/techer/arm11-resources/
    a编译u-boot
    #cd u-boot-1.1.6_smdk6410
    #make smdk6410_config
    #vim include/configs/smdk6410.h
        修为后如下:
        445 /* Boot configuration (define only one of next) */
        446 //#define CONFIG_BOOT_NOR
        447 #define CONFIG_BOOT_NAND
        448 //#define CONFIG_BOOT_MOVINAND
        449 //#define CONFIG_BOOT_ONENAND
        450 //#define CONFIG_BOOT_ONENAND_IROM
        配置说明:
        CONFIG_BOOT_NAND 为 NAND flash启动
        CONFIG_BOOT_MOVINAND 为 sd卡启动
        这里要配置为nand flash启动
    #make
    #cp u-boot.bin u-boot-nand.bin
    b.复制到tftp服务目录/tftpboot
    #cp u-boot.bin /tftpboot/u-boot-nand.bin
7.  通过tftp服务把u-boot下载并烧写到开发板的nand flash上
    a.下载u-boot到开发板内存的0x5000800地址处
    在minicom(即开发板)上运行
    $tftp 0x50008000 u-boot-nand.bin
    b.从nandflash的0地址开始擦处0x100000大小
    $nand erase 0 0x100000
    c.把在从0x50008000内存地址开始的数据写到nand的零地址处,写0x100000大小
    $nand write 0x50008000 0 0x100000
    e.开发板关电,把拨码开关拨到nand,再开电启动开发板。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值