[转]在skyeye中运行u-boot
原地址:http://blog.csdn.net/hdm125/archive/2009/03/13/3988271.aspx
一、安装交叉编译器
1、下载的交叉编译器arm-linux-gcc-
2、安装:mkdir –p /usr/local/arm
cd /usr/local/arm
tar -jxvf arm-linux-gcc-
3、设置环境变量:vi .bashrc,添加
export PATH=$PATH:/usr/local/arm/
4、查看是否安装成功
退出并重新进入控制台(终端)对“arm-linux-”使用tab键,可以看到所有“arm-linux-”打头的工具。再使用命令“arm-linux-gcc -v”查看编译器信息:
二、安装skyeye
1、下载 skyeye-
并解压缩
2、进入/skyeye-
l ./configure (与skyeye相匹配的编译器之一是gcc-3.4或4.2,若本机默认的不
是此版本,则可以写成:CC = /usr/bin/gcc-3.4 ./configure)
l make
l sudo make install
3、下载测试集
最新的skyeye-testsuits,版本为skyeye-testsuite-
解压缩
4、使用skyeye模拟某个板子运行某个Linux
如:进入linux/skyeye-testsuite-
命令: 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-
使用命令: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-
命令: skyeye -c skyeye.conf -e vmlinux 进入skyeye然后查找并执行hello
命令:cd bin ;ls出hello;
然后再 ./hello, 即可出现"hello world!"
命令:skyeye -c skyeye.conf -e vmlinux
三、编译u-boot
1、下载u-boot-
• 并解压缩
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-
CC = /usr/local/
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运行起来了。