这是skyeye运行s3c45b一个简单的文档,你看看
1.toolchainsarm-elf-tools-20030314.sh
2.uclinux for s3c4510b的编译
uClinux-dist-20020927.tar.gz可以不用修改,直接编译成功。
修改文件linux-2.4.x/drivers/char/serial_samsung.c
找到uart_config数组,把如下项:
{ "S3C4510B", 1, 0},/* Samsung S3C4510B uart support */
修改为:
{ "S3C4510B", 128, 0},/* Samsung S3C4510B uart support */
uClinux-dist-20030522.tar.gz编译步骤:
1.linux-2.4.x/include/asm/memory.h
#if 0
变为
#if 1
2。linux-2.4.x/include/asm-armnommu/pgalloc.h
增加:#include <asm/memory.h>
3。linux-2.4.x/mmnommu/slab.c
增加:#include <asm/pgalloc.h>
4。linux-2.4.x/arch/armnommu/vmlinux-armv.lds.in
在
*(got) /* Global Offset table */
之后添加如下语句:
romfs_data = .;
romfs.o
romfs_data_end = .;
5.vendors/Samsung/4510B/Makefile
在image目标的第三行,增加一条语句:arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)
如下为增加之后:
image:
[ -d $(IMAGEDIR) ] || mkdir -p $(IMAGEDIR)
genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)
arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)
6.修改linux-2.4.x/drivers/char/serial_samsung.c
找到uart_config数组,把如下项:
{ "S3C4510B", 1, 0},/* Samsung S3C4510B uart support */
修改为:
{ "S3C4510B", 128, 0},/* Samsung S3C4510B uart support */
7.按照如下步骤配置和编译内核,步骤不能乱,中间出现的错误信息可以忽略。(最好不要编译boa,login等程序。)
make menuconfig
make dep
make lib_only
make user_only
make romfs
make image
make
构造示例的skyeye.conf配置文件:
cpu: arm7tdmi
mach: s3c4510b
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00800000
mem_bank: map=M, type=R,addr=0x01000000, size=0x00200000, file=./images/romfs.bin
mem_bank: map=I, type=RW, addr=0x03ff0000, size=0x00100000
页:
[1]