[转]在skyeye中运行u-boot

原地址: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运行起来了。

 

posted @ 2011-02-17 10:37  网络小虫  阅读(779)  评论(0编辑  收藏  举报