zoukankan      html  css  js  c++  java
  • 烧写uboot、kernel、fs到开发板

    一、前期准备配置

    DNW配置:

    设置波特率(115200)和端口号
    设置设置USB下载地址(0xd0020010、0x23e00000)

    安装USB驱动:

    1)首先将J2开关拨至SD-BOOT处,打开串口工具,设置好参数,然后开发板上电,提示安装USB下载驱动,这里注意不要选择自动安装软件,而是要选择选择从列表或指定位置安装,然后点击下一步;

    2)选择搜索位置包括这个位置,然后点击浏览;

    3)找到光盘里工具软件文件夹的“USB driver”,然后点击确定,然后下一步;直至USB驱动安装完成。

    交叉编译工具的安装:很简单,先解压后添加到PATH

    NFS和TFTP服务器的安装和配置:http://www.cnblogs.com/klcf0220/articles/3099040.html

    然后启动TFTP、NFS

    注意: ubuntu 的 network manager, 如果开发板和开发环境的PC直连的话, 每次开发板哪掉电,开发环境PC会检测为网络未链接,nm 就会将已经设置好的网卡 down 掉。这在开发板reset的时候特别讨厌,你得每次都重新去设置PC的IP地址。因此我将桌面右上角的network manager的 Enable Networking 设置为 不选中,禁止 network manager 去管理网络。然后在终端里通过下面的命令,将网卡设置为 192.168.0.22(当然要跟你开发板的ip地址在同一个网段),输入命令:ifconfig eth0 192.168.0.22 ,这样每次开发板reset就不用再设置开发环境PC的IP了(此方法我试了不行,不过可以试试)。当然,如果你的开发板和开发环境PC都是链接到路由器或者HUB,就没有这个烦恼。

    二、用TFTP网络

    1、通过setenv 命令设置相关参数
    # setenv baudrate 115200
    # setenv bootdelay 3
    # setenv ethact dm9000
    # setenv ipaddr 192.168.1.11
    # setenv serverip 192.168.1.22
    # setenv gatewayip 192.168.1.1
    # saveenv

    2、 烧写u-boot
    # tftp 0x40000000 u-boot-7-ok.bin
    # nand erase 0x0 0x600000
    # nand write 0x40000000 0x0 0x600000
    nand boot启动方式启动,重启开发板;

    3、烧写kernel
    # tftp 0x40000000 uImage-7-ok
    # nand erase 0x600000 0x500000
    # nand write 0x40000000 0x600000 0x500000
    # setenv bootcmd nand read 0x30008000 0x600000 0x500000 \;bootm 0x30008000
    # saveenv
    重新启动开发板。

    4、 烧写fs
    # tftp 0x40000000 gec-qt4-rootfs-7.img
    # nand erase 0xe00000 0xf200000 //擦除可以擦大点
    # nand write.yaffs 0x40000000 0xe00000 0xxxxx(根据下载大小确定)

    重新启动开发板即可。

    三、用超级终端

    loadb 0x4000000
    然后发送文件
    nand erase ... ...
    nand write ... ... ...
    步骤跟TFTP下载相同。

    四、用Fastboot (推荐)

      1. 前期准备先完成,即先安装好USB驱动,这里选择从列表或指定位置安装,浏览选择到gec_android_driver文件夹,点击确定。“USB:OK”,表示驱动OK,USB线已经正常跟板子连接。然后打开DNW,设置好相关参数,download adress设置为:0xd0020010,选择“connect”;
      2. 选择Transmit”,先下载gec210_usb.bin,文件下载后,DNW标题栏的USB状态会有“USB:0K”变为“USB:X”,然后再迅速变回“USB:OK”,即表示gec210_usb.bin下载成功,这时210的相关寄存器初始化完毕。然后设置DNW参数,Download adress修改为0x23e00000。
      3. 接下来我们就可以下载u-boot文件,点击USB Port > Transmit;选择images中Linux_image文件下的u-boot-7-ok.bin文件,此时只是下载到内存中,接下来就用fastboot固化;
      4. 格式化nand flash,输入nand scrub ,输入y,然后Enter。NADN FLASH格式化完毕。

    说明:在固化程序到flash之前,我们需要先将flash格式化,否则在进入文件系统的时候会进行ECC校验,等待时间较长。

    • 在串口终端输入“fastboot”,然后按下回车键“Enter”;
    • 在windows点击开始,选择“运行”,然后输入“cmd”,按回车;
    • 进入到fastboot文件夹,然后输入“fastboot devices”,查询当前设备;然后输入下列执行如下烧写指令,烧写系统的uboot和内核及文件系统;
    fastboot flash uboot f:\GEC_IOT_SYS\linux_image\u-boot-7-ok.bin
    fastboot flash kernel f:\GEC_IOT_SYS\linux_image\uImage-7-ok
    fastboot flash root f:\GEC_IOT_SYS\linux_image\gec-qt4-rootfs.img

    系统更新之后,关掉电源,将启动方式选择为nand(S4),重新上电开发板,设置系统启动的参数:

    • 串口终端输入:# setenv bootcmd nand read 0x30008000 0x600000 0x500000 \;bootm 0x30008000
    • 串口终端输入:#setenv bootargs root=/dev/mtdblock4 init=/linuxrc console=ttySAC0,115200 rootfstype=yaffs rw
    • 串口终端输入saveenv ,保存环境变量。至此,Linux系统镜像固化或者更新完毕。
    • 重启开发板,进入Linux系统。


    五、搭建交叉编译开发平台

    PC端:
    vim hello.c

    void (*printf)(char *,...)=0xc3e1520c;
    int main()
    {
            printf("############## gec210!###############\n");
            return 0;
    }

    vim Makefile

    all:hello.bin clean
    hello.bin:hello.o
            arm-linux-ld -Ttext=0x40000000 hello.o -o hello.elf
            arm-linux-objcopy -O binary -S hello.elf hello.bin
    hello.o:hello.c
            arm-linux-gcc -c -nostdlib hello.c -o hello.o
    clean:
            cp ./*.bin /tftpboot
            rm -rf ./*.elf ./*.bin ./*.o

    vim start.S

    .text
    .global _start
    _start:
        b ResetHandler
    ResetHandler:
        ldr r0,=fmt
        mov lr,pc
        ldr pc,printf
    printf:
        .word 0xc3e1520c
    fmt:
        .asciz "############ welcome to gec210 ############\n"
    .end

    开发板端:
    1、烧写新的u-boot.bin
    2、重启开发板后,执行如下配置
    # setenv bootcmd tftp 40000000 xx.bin \;go 40000000
    # saveenv
    3、重启开发板,可以看到实验结果。

    参考链接:http://www.arm9home.net/read.php?tid-27737.html

    资料下载:http://download.csdn.net/detail/klcf0220/5813123

    http://www.kuaipan.cn/file/id_43409466388906195.htm

    作者:快乐出发0220 ;Android群:151319601 ; Linux群:96394158 ;转载请注明出处 http://klcf0220.cnblogs.com/ !!!
  • 相关阅读:
    微软外服 AlI In One
    js 循环多次和循环一次的时间的性能对比 All In One
    vue inject All In One
    Excel 表格数据倒置 All In One
    SVG tickets All In One
    OH MY ZSH All In One
    js array for loop performance compare All In One
    mac terminal show You have new mail All In one
    新闻视频 26 制作母版页
    转自牛腩 母版页和相对路径
  • 原文地址:https://www.cnblogs.com/klcf0220/p/3101735.html
Copyright © 2011-2022 走看看