zoukankan      html  css  js  c++  java
  • [转]在skyeye中运行uboot

    原地址:http://blog.csdn.net/hdm125/archive/2009/03/13/3988271.aspx

    一、安装交叉编译器

    1、下载的交叉编译器arm-linux-gcc-3.4.1.tar.bz2

    2、安装:mkdir –p /usr/local/arm

       cd /usr/local/arm

       tar -jxvf arm-linux-gcc-3.4.1.tar.bz2

    3、设置环境变量:vi .bashrc,添加

    export PATH=$PATH:/usr/local/arm/3.4.1/bin

    4、查看是否安装成功

    退出并重新进入控制台(终端)“arm-linux-”使用tab键,可以看到所有“arm-linux-”打头的工具。再使用命令“arm-linux-gcc -v”查看编译器信息:

    二、安装skyeye

    1、下载 skyeye-1.2.5_REL.tar.gz

      并解压缩

    2、进入/skyeye-1.2.5_REL编译1.2.5并安装

    l        ./configure (skyeye相匹配的编译器之一是gcc-3.44.2,若本机默认的不  

    是此版本,则可以写成:CC  /usr/bin/gcc-3.4 ./configure)

    l        make

    l        sudo make install

    3、下载测试集

    最新的skyeye-testsuits,版本为skyeye-testsuite-1.2.5.tar.bz2

    解压缩

    4、使用skyeye模拟某个板子运行某个Linux

    如:进入linux/skyeye-testsuite-1.2.5/linux/s3c2410/s3c2410x-2.6.14

    命令: skyeye -c skyeye.conf -e vmlinux

    出现“Welcome to ARMLINUX”的欢迎界面

    5、编写应用程序,如hello.c再交叉编译,

    如:arm-linux-gcc -static -o hello hello.c

    6、将所选择的测试linux的根文件系统映像initrd.img加载到某个目录下:

    /home/hdm  mkdir root

    然后进入:~/linux/skyeye-testsuite-1.2.5/linux/s3c2410/s3c2410x-2.6.14

    使用命令:sudo mount -o loop initrd.img /home/hdm/root/

    7、将hello拷贝到根文件系统中

    sudo cp hello root/bin

    sudo umount root 卸载刚刚加载过的root

    8、进入skyeye模拟该个板子运行应用程序,如:hello

    /linux/skyeye-testsuite-1.2.5/linux/s3c2410/s3c2410x-2.6.14

    命令: skyeye -c skyeye.conf -e vmlinux 进入skyeye然后查找并执行hello

    命令:cd bin ;lshello;

    然后再 ./hello 即可出现"hello world!"

    命令:skyeye c skyeye.conf e vmlinux

    三、编译u-boot

    1、下载u-boot-1.2.0.tar.bz2

     并解压缩

    2、因为我们要模拟EP7312的芯片,而uboot已经支持一个基于EP7312的板子了,所以我们 只要对uboot里面有关EP7312的板子的配置略作修改就可以了。uboot里面有关主板的配置文件都在"include/configs/*.h" 下,

    l        所以我们找到include/configs/ep7312.h,对它进行修改。
    找到 #define CONFIG_DRIVER_CS8900 1
    改为 #define CONFIG_DRIVER_CS8900 0

    l        找到
    #define CONFIG_COMMANDS (CONFIG_CMD_DFL | CFG_CMD_JFFS2)
    改为
    #define CONFIG_COMMANDS (CONFIG_CMD_DFL) /*Skyeye doesn't have jffs2*/

    l        修改
    include/configs/ep7312.h
    #define CONFIG_BOOTDELAY 3 /* autoboot disabled */

    3、为编译通过,还需要修改

    l        cpu/arm720t/config.mk

    =============================================================

    # Supply options according to compiler version

    =============================================================

    PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu),)

    l        include/asm-arm/processor.h

    union debug_insn {

      u32 Arm;

      u16 thumb;

    };

     

    l        example/Makefile

    $(LIB): $(obj).depend $(LIBOBJS)

    $(AR) $(ARFLAGS) $@ $(LIBOBJS)

     

    $(SREC):

    $(obj)%.srec: $(obj)%.o

    $(OBJCOPY) -O srec $< $@ 2>/dev/null

     

      $(BIN):

    $(obj)%.bin: $(obj)%.o

    $(OBJCOPY) -O binary $< $@ 2>/dev/null

    4、然后在uboot的根目录下,配置,编译:

    l $make ep7312_config

               (uboot相匹配的编译器之一是arm-linux-gcc-3.3.2,指定编译时要在Makefile文件中加入:

             CC  /usr/local/3.3.2/arm-linux-即可;另外再加一句ARCH = arm更好。)

    l $sudo make all

    四、在skyeye中运行u-boot

    1、另创建一个目录,比如/home/hdm/linux/uboot

    并把u-boot u-boot.bin u-boot.map u-boot.srec拷贝到这个目录,

    并在这个目录创建一个skyeye.conf文件,内容如下(可到skyeye test中拷贝相对应的skyeye.conf)

    cpu: arm720t

    mach: ep7312

    mem_bank: map=M, type=RW, addr=0x00000000, size=0x00400000

    mem_bank: map=I, type=RW, addr=0x80000000, size=0x00010000

    mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00200000

    mem_bank: map=M, type=RW, addr=0xc0200000, size=0x00600000

    mem_bank: map=M, type=RW, addr=0xc0800000, size=0x00800000

    #lcd:type=ep7312,mod=gtk

    dbct:state=on

    2、然后键入skyeye -c  skyeye.conf -e  u-boot,就能看到uboot运行起来了。

     

  • 相关阅读:
    相对嵌套布局
    转:Android控件属性
    layout_weight属性分析
    Node.js 中文乱码解决
    转:正则表达式30分钟入门
    转: 再谈select, iocp, epoll,kqueue及各种I/O复用机制
    多线程调试
    GDB调试增强篇
    GDB调试
    笔趣阁
  • 原文地址:https://www.cnblogs.com/foxhengxing/p/1956699.html
Copyright © 2011-2022 走看看