Chinaunix首页 | 论坛 | 博客
  • 博客访问: 81229
  • 博文数量: 17
  • 博客积分: 1511
  • 博客等级: 上尉
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-12 14:28
文章分类

全部博文(17)

文章存档

2012年(2)

2011年(4)

2010年(1)

2009年(10)

我的朋友

分类: LINUX

2009-05-19 11:49:08

这是学习之路上的一个突破。
对于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
阅读(2064) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~