SkyEye 模拟 S3C44B0X 的设置及启动代码
在附件中,附简单的 bootloader 源码。boot_code.bin 为其 bootloader,其源码在 bootloader 目录下;
image.rom 需要你编译 uClinux 以 bzImage 方式形成,
CONFIG_ZBOOT_ROM_TEXT=0x00001000
CONFIG_ZBOOT_ROM_BSS=0x0C400000
CONFIG_ZBOOT_ROM=y
你需要 SVN head 中的 skyeye 来运行 uClinux on S3C44B0X。
####### skyeye.conf 内容 #############
cpu: arm7tdmi
# s3c44b0x 为最新的实现,旧的实现为 s3c44b0
mach: s3c44b0x
# 物理内存
# bootloader 写到 0x00000000
mem_bank: map=M, type=R,addr=0x00000000, size=0x00001000, file=./boot_code.bin
# image.rom 写到 0x00001000
mem_bank: map=M, type=R,addr=0x00001000, size=0x001ff000, file=./image.rom
# RAM Bank 0
mem_bank: map=M, type=RW, addr=0x0c000000, size=0x00800000
# 外设 IO 映射
mem_bank: map=I, type=RW, addr=0x01c00000, size=0x00400000
# uart 0
uart: mod=stdio
# uart 1
uart: mod=pipe, desc=/dev/ttyS1
# LCD
lcd: type=s3c44b0x, mod=gtk
#net: ethmod=tuntap, hostip=10.0.0.1
#dbct: state=on
两个细节问题
1.如何才能把uClinux内核编译为bzImage格式呢?我使用make bzImage进行编译报错。查了一下Makefile,里面的确没有bzImage的选项。2.您提供的drivers是for Linux-2.6.x的,但是我没有在网上找到版本号大于2.95.3的arm-elf-gcc的交叉编译器,大多都是20030314那个版本的。请问如何获得高版本的交叉编译器? Compiler for linux-2.6.x should be available at http://ftp.snapgear.org/pub/snapgear/tools/arm-linux/arm-linux-tools-20061213.tar.gz arm-linux-tools是支持带mmu的ARM芯片的,而S3C44B0X是不带MMU的,需要使用arm-elf-tools交叉编译器吧? Try it firstly. I can use it to build at91 successfully. I build at91 successfully, either. you can have a look at the procedure of what I did with the following URL:
http://blog.csdn.net/funeryoung/archive/2007/11/15/1887595.aspx
but when I changed the configuration file to S3C44B0X, and still used the old uclinux kernel file located in linux-2.4.x/linux, the uclinux boot failed, and the system display stopped at "start addris set to 0x01000000 by exec file".
when I build the uclinux kernel, I choosed the options of GDB/SkyEye, Linux-2.4.x, and uClib.
the at91 configuration file is:
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=images_at91/romfs.img
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000
#lcd: state=on
lcd: type=ep7312, mod=gtk
if i just change mach and lcd to "s3c44b0x", it didn't work, and stopped at the prompt of "start addr ...". I tried the method descripted in this article, but it did the same thing. :(
maybe I have to compile the uClinux kernel again with the option of Samsung/S3C44B0X. Make sure if s3c44b0x in uClinux is corrent or s3c44b0x is supported by uClinux s3c44b0x 应该是uclinux支持的
页:
[1]