这是学习之路上的一个突破。
对于uclinux来说,调试驱动和应用程序是一个复杂的过程,如果每做一次修改,就要编译一次内核,其工作量是相当巨大的,所以找到一种简单方便的调试方法非常重要,而静态加载驱动和应用程序是工程的最终形式。
记下建立步骤用来备忘和以飨像我这样的小菜虫们,呵呵 (uclinux源码版本为20060311)
1、配置内核:
功能包括 nfs客户服务端 + 可加载模块功能
在内核配置界面 :
Loadble module support ---> [*] Enable loadable moudule support
[*] Kernel moudule loader(NEW)
Flie systems ---> Network File Systems ---> <*> NFS file system support
[*] Provide NFSv3 client support
Networking options ---> [*] IP: fast network address translation
用户配置界面:
Network Applications ---> [*] portmap
BusyBox ---> [*] insmod
[*] lsmod
[*] rmmod
2、make dep
make clean
make lib_only
make user_only
make romfs
make linux
make
下载uclinux_rom.bin到开发板
3、建立开发板与VMlinux的NFS连接 (见 随笔 《uclinux 驱动开发配置》)
4、编写驱动程序
5、编写应用程序
6、在vmware_linux(fedora 10)打开minicom终端 (见 随笔 《uclinux 驱动开发配置》)
7、启动开发板 输入命令:
>/cd var
>var/ mkdir mnt
>var/portmap & (打开NFS客户端)
>var/ifconfig eth0 192.168.1.155 (vmware_linux IP 为 192.168.1.107)
>var/mount -t nfs -o nolock 192.168.1.107:/home/armwork/mnt /var/mnt
8、将编译好的驱动程序.o文件(例 gpio.o) 和 驱动应用程序(例 led beep) 传到 /var/mnt中
9、输入命令:
>var/mnt/ insmod gpio.o
>var/mnt/ lsmod (查看有没有加载进)
>var/mnt/ ./led
>var/mnt/ ./beep
10、执行不成功,只需修改.c 源码,再编译后,传到/var/mnt中执行调试,很方便。
11、调试成功后,将驱动程序和驱动应用程序加载到内核,编译内核载入就OK了。(见 随笔 《内核添加应用程序》 、 《内核添加驱动程序》)
12、over