1 得到uCLinux,GDB,arm-elftools-20030314.sh(或其他版本)。
2 GDB:
① bunzip2 < gdb-5.0.tar.bz2 | tar xvf -
gunzip < gdb-5.0-uclinux-armulator-20021127.patch.gz | patch -p0
② cd gdb-5.0
./configure –target=arm-elf
③ make && make install
注:安装过程中出现:"gdb/62: gdb/rdi-share/devsw.c:39: storage size of `lt' isn't known."
>:/gdb-5.0/gdb/rdi-share/devsw.c中加入"#include<time.h>"
> Fix:
missing include file in gdb-5.0/gdb/rdi-share/devsw.c:
#include <time.h>
3 安装uCLinux。生成uClinux-dist文件夹;安装arm-elftools-20030314.sh
4 编译内核:
① make menuconfig/make xconfig
make menuconfig.
配置内核以后文章会陆续提到.
② make dep
dependence 依赖。
make dep的意思就是说:如果你使用程序A(比如支持特殊设备),而A需用到B(比如B是A的一 个模块/子程序)。
而你在做make config的时候将一个设备的驱动 由内核支持改为module,或取消支持,这将可能影响到B的一个参数 的设置,需重新编译B,重新编译或连接A....如果程序数量非常多, 你是很难手工完全做好此工作的。
所以,你要make dep。如果你make menu或make config或make xconfig后,直接reboot,会更快。
只是你的内核根本没有任何改变。^=^
③ make clean
将清除所有要被清除的文件
④ make lib_only
编译用户程序
⑤ make romfs
生成romfs文件系统
⑥ make image
生成 romfs.o文件,第一次执行时会提示错误,不必理会,以后编译就不会再报错了。
⑦ make
编译成功后,在uClinux-dist/目录下产生images目录,其中的3个文件:image.ram,image.rom和romfs.img就是我们需要使用的二进制文件.
内核下面:比如/Linux-2.4.x生成一个名为linux的文件.
5 编译生成的内核的配置:
copy /image目录下的romfs.img文件到所编译内核版本的目录下面,比如:/Linux-2.4.x,然后更名为boot.rom;或者使用ln –s来关联
改名linux ――> linux.2.4.x
6 GDB模拟:
#arm-elf-gdb linux.2.4.x
(gdb)#ttarget sim
(gdb)#load
(gdb)run