首先使用的是uClinux-dist-20070130.tar.bz2
在make menuconfig以后
选择Vendor为GDB
Product为ARMulator
内核版本要选Linux-2.6.x
接着make dep
再make
出下下面错误
make[1]: “include/asm-arm/mach-types.h”是最新的。
scripts/mod/sumversion.c: 在函数‘get_src_version’中:
scripts/mod/sumversion.c:384: 错误:‘PATH_MAX’未声明(在此函数内第一次使用)
scripts/mod/sumversion.c:384: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
scripts/mod/sumversion.c:384: 错误:所在的函数内也只报告一次。)
scripts/mod/sumversion.c:384: 警告:未使用的变量‘filelist’
make[2]: *** [scripts/mod/sumversion.o] 错误 1
make[2]: *** 正在等待未完成的任务....
make[1]: *** [scripts/mod] 错误 2
make: *** [scripts] 错误 2
CHK include/linux/version.h
make[1]: “include/asm-arm/mach-types.h”是最新的。
HOSTCC scripts/mod/sumversion.o
scripts/mod/sumversion.c: 在函数‘get_src_version’中:
scripts/mod/sumversion.c:384: 错误:‘PATH_MAX’未声明(在此函数内第一次使用)
scripts/mod/sumversion.c:384: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
scripts/mod/sumversion.c:384: 错误:所在的函数内也只报告一次。)
scripts/mod/sumversion.c:384: 警告:未使用的变量‘filelist’
make[2]: *** [scripts/mod/sumversion.o] 错误 1
make[1]: *** [scripts/mod] 错误 2
make: *** [scripts] 错误 2
解决办法,在uClinux-dist下 对linux2.6.x/scripts/mod/sumversion.c中添加#include <limits.h>即可。
然后在image目录下生成linux和boot.rom两个文件,一个是内核文件,一个是文件系统
在uClinux-dist下建立skyeye.conf文件
内容如下:
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/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
保存,并在当前目录下执行
$/home/tylor/embedded/skyeye-1.2.5_REL/skyeye -e linux-2.6.x/linux