环境:MagicLinux1.2
=================================================================
1.安装skyeye
将skyeye-insight.0.8.7.bin拷贝的根目录,然后解压即可
解压后可执行文件在/usr/local/skyeye-insight/bin中
===================================================================
2.安装arm交叉编译器
将arm-elf-tools-20011219.tar.gz在本机的根目录下用tar命令解开,
然后运行文件arm-elf-tools-20030314.sh;
则相关软件安装在/usr/local/bin和/usr/local/arm-elf目录下。
================================================================
3.编译uclinux
(1)将uClinux-dist-20020927.tar.gz拷贝到根目录解开,比如解开在/uClinux-dist/下,
(2)然后在/uclinux-dist/目录下执行如下命令:
在图形方式下可用命令 make xconfig 或 在命令行方式下可用命令 make menuconfig
在vendor/product中选择GDB/ARMulator,kernel版本选择2.4,save and exit.
(3)运行如下命令:
make dep;make linux 这时在/uClinux-dist/linux-2.4.x目录下生成linux文件
(4)如果想一步生成带调试信息的linux kernel执行文件和linux kenel 执行文件映像和磁盘映像文件romfs.img
可简单是运行命令 make dep; make 就行了。可查看/uClinux-dist/images/下是否有文件 romfs.img等
(5)在目录/uClinux-dist下执行命令
ln images/romfs.img boot.rom
(6)将文件skyeye.conf拷贝到/uClinux-dist下
=================================================================
4.用skyeye来调试运行uclinux,在/uClinux-dist:
skyeye linux-2.4.x/linux (经测试此处必须写skyeye所在的完整路径,将skyeye所在路径加入path或者用bash脚本都不行)
(gdb)target sim
(gdb)load
(gdb)run
kernel start.....
===============================================================
5.在uclinux上运行自己写的程序:
(1)先写一个小程序hello.c
#i nclude <stdio.h>
int main(void)
{
int i;
for(i = 0; i < 6; i++)
{
printf("i = %d ",i);
printf("Hello, embedded linux!/n");
}
return 0;
}
然后执行:
arm-elf-gcc -Wl,-elf2flt -o hello hello.c
-elf2flt参数是将elf文件格式转为flat文件格式,这个工具是在你安装交叉编译器产生的。
如果编译通过,就会产生hello可执行文件。用下面的命令: file hello
你会发现,它是BFLT(binary FLAT),你目标平台所支持的文件格式。
------------------------------------------------------------------
(2)执行你的hello程序
这里,将借助genromfs这个小工具来完成测试,这个工具就是在安装交叉编译器时产生的,可以直接使用它。
把编译好的可执行程序hello拷贝到/linux-dist/romfs/bin目录里,
genromfs -f boot.rom -d romfs/(如果没有这一步运行uclinux后将不能在/bin下找到hello程序;并且要在/uClinux-dist目录下执行)
注:可以用genromf -h来获得帮助!
执行下面的命令:
skyeye linux
(skyeye)target sim
(skyeye)load
(skyeye)run
kernel start.....
cd /bin
hello
可以看到结果了吗?其实到了这一步,你就可以开发自己的程序了!