在SkyEye上调试uClinux内核及与主机进行网络通讯

在SkyEye上调试uClinux内核及与主机进行网络通讯
在SkyEye上调试uClinux内核 (blackfin.kang@gmail.com) 1.1 安装skyeye 从服务器下载skyeye-2003-10-06.tar.bz2,然后解压: $ tar  jxvf  skyeye-2003-10-06.tar.bz2 进入skyeye目录,按照readme文件中的要求,运行: $ ./configure  --target=arm-elf  --prefix=/usr/local  --without-gtk-prefix  --without-gtk-exec-prefix  --disable-gtktest $ make $ make install 1.2 编译uclinux 先安装交叉编译器,将arm-elf-tools-20011219.tar.gz在本机的“根目录”下解开,解到/usr/local/arm-elf目录下。请注意一定要在根目录下解压。 将uClinux-dist-20030522.tar.gz解开,比如解开在/usr/src/uclinux-dist/下,然后进入/usr/src/uClinux-dist/目录,执行如下命令: $ make menuconfig 在vendor/product中选择GDB/ARMulator,kernel版本选择2.4,然后exit and save。 $ make dep $ make $ ln -s images/romfs.img boot.rom 这时在/usr/src/uClinux-dist/linux-2.4.x目录下生成linux文件,在/usr/src/uClinux-dist/image目录下生成文件系统。 解压uclinux4skyeye.tgz,这个包中应该有相应的skyeye.conf和8019网卡驱动程序,下面我们把网卡驱动程序加到上面的uclinux源码中。 在/usr/src/uclinux-dist目录下,拷贝相应的skyeye.conf到此目录下。注意skyeye.conf中应该是AT91的定义。就可以用skyeye来调试运行kernel了,在/usr/src/linux-dist目录下运行: $ skyeye linux-2.4.x/linux (gdb) target sim (gdb) load (gdb) run kernel start. .... 这时应该可以看到uClinux的启动画面。如果需要进一步调试,需要学习gdb的命令使用。注意要在 skyeye.conf 和boot.rom所在目录下执行skyeye。 1.3 加载tuntap.o内核模块 tuntap.o是linux系统自带的模块,一般自己就加载了。如果没有就使用insmod命令。         步骤2 生成支持skyeye_ne2k网卡的内核 在完成第一部分内容后,在内核中添加skyeye_ne2k网络程序,添加显示网络包类型和数目的信息。 2.1 修改config文件 uClinux-dist/vendors/GDB/ARMulator/config.linux-2.4.x应该有如下项(没有就添加): CONFIG_NET=y CONFIG_NET_ETHERNET=y CONFIG_SKYEYENE2k=y 2.2 修改Makefile文件 uClinux-dist/linux-2.4.x/drivers/net/Makefile应该有如下项(没有就添加): obj-$(CONFIG_NET) += Space.o setup.o net_init.o loopback.o obj-$(CONFIG_SKYEYENE2k) += skyeyene2k.o 2.3 修改Config.in文件 uClinux-dist/linux-2.4.x/drivers/net/Config.in应该有如下项(没有就添加): if [ "$CONFIG_NET_ETHERNET" = "y" ]; then #add for skyeye    if  [  "$CONFIG_ARCH_ATMEL" = "y"  ]; then         tristate  ' SkyEye ne2k ethernet (for ARMUlator) '  CONFIG_SKYEYENE2k    fi 注意:if,方括号,单引号前后有空的地方,空格不能省略。 关于Config.in文件的语法,可以查阅linux-2.4.x目录下的Documentation/kbuild/config-language.txt文件。 2.4 增加驱动文件 把skyeyene2k.[ch]文件拷贝到uClinux-dist/linux-2.4.x/drivers/net/目录下。 2.5 运行make menuconfig 选择GDB/Armulator开发板,选择Custom Kernel Settings,然后exit and save。 在内核的配置菜单中,在Network Device Support项中,进入“Ethernet (10M and 100M)”,然后选择 ' SkyEye ne2k ethernet support (for ARMUlator)' 选项。然后编译uClinux内核: $ make dep $ make 2.7 用skyeye调试uClinux 用root帐号,通过SkyEye运行有skyeyene2k驱动支持的uClinux内核。 $ skyeye linux-2.4.x/linux (gdb) target sim (gdb) load (gdb) run ..... $ ifconfig eth0 10.0.0.2 在另一个linux终端执行如下目录: $ /sbin/ifconfig 可以看到一个 net device tap0 10.0.0.1 $ping 10.0.0.2 可以ping通10.0.0.2,这证明skyeyene2k驱动程序运行了。 然后试着在uclinux上增加更多的应用,如ftp client/server,nfs server,telnet client/server,并运行调试一下。用skyeye在skyeyene2k驱动中设置断点,调试skyeyene2k驱动程序,观察它在 init/send/recv上的实际操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值