网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 会员区 >> 嵌入式 >> 单片机 >> 技术文档 >> 资源信息
专 题 栏 目
热 门 软 件
推 荐 软 件
uClinux下驱动开发入门精华—修改后的《详解第二版》的驱动
运行环境: Win9x/NT/2000/XP/2003 文件大小: 1 K
软件等级: ★★★ 软件类别: 国产软件
开 发 商: 61IC 软件语言: 英文
相关链接: 资源演示地址  资源注册地址 软件属性:       
下载次数: 本日:   本周:  
       本月:   总计:
授权方式: 免费版
解压密码: 
软件添加: 审核:admin 录入:admin 添加时间: 2005-11-12 17:10:39
::下载地址::  会员区只对商业会员/VIP会员开放下载   点击连接:开通商业会员/VIP会员帐号
下载地址1  
::软件简介::

uClinux下驱动开发入门精华——修改后的《详解第二版》的驱动

附件中leddrv.c是驱动源程序,writeled.c 是应用程序


 

板子:4510b 2M flsah 16Msdram gpio4~7接发光二极管


 

一、nfs的建立,风之子有详细的过程,我的过程稍有不同,总结如下:


 

主机:(NFS服务器及其设置)


 


  查看/etc/rc.d/init.d 目录下有没有nfs ,有则说明主机已安装nfs服务,继续向下做,
(1)修改配置文件etc/exports,加一行


 


      /nfs/rootfs  172.22.3.130(rw,sync,no_root_squash)


 


   /nfs/rootfs为创建的根文件系统在主机上的目录,172.22.3.130是目标机的IP,rw表示允许下位机读写该目录,no_root_squash允许下位机以主机root用户身份挂载根文件系统,sync表示资料同步写入存储器中


 

(2)配置其为所有用户可读,chmod 644 /etc/exports


 


(3)用exportfs命令使改动立即生效,在/etc目录下执行 exportfs  -rv 此命令要求全部重新输出一次,修改了exports文件后应执行此命令一次,


 

   (4)启动NFS服务  输入/etc/rc.d/init.d/nfs  start


 

   (5)用/usr/sbin/rpcinfo –p检查是否启动了正常NFS服务器,若启动了则至少应该看到nfs, mountd 和 portmapper


 


(6)在linux终端下运行setup,进入system services去掉下面的服务


 


     [ ]ip6tables   [ ]ipchains    [ ]iptables  [ ]dhcpd


 


目标板:


 


(1)内核需要支持NFS


 


   make menuconfig 选中[*]customize kernel settings


 

                                     [*]customize vendor/user settings   退出保存


 


进入linux kernel v2.4.20-uc0 configuration 界面
       File Systems -->


 


              Network File Systems -->


 


                  [*]   NFS file system support


 


                   [*]Provide NFSv3 client support  退出保存


 

进入uClinux-v1.3.4 configuration界面


 

           Network Application--------------->


 

                     [*]portmap   退出


 

       busybox-------------------->


 

                      [*]mount


 

                      [*]mount :support NFS mounts


 


配置完后,重新编译内核 烧写flash


 


       (2)目标板启动后,要能ping通主机


 


                     根目录下:/>portmap&             后台运行


 

              /> mount –t nfs 172.22.3.131:/nfs/rootfs   /var/tmp


 

等到/>出现,说明mount 成功了,若主机/nfs/rootfs下有文件,目标板/var/tmp中应能看到


 


              172.22.3.131为主机IP,/nfs/rootfs为主机服务器开放给目标板的目录


 

二、配置内核为可动态加载模式的


 

make menuconfig 选中[*]customize kernel settings


 

                                     [*]customize vendor/user settings   退出保存


 

进入linux kernel v2.4.20-uc0 configuration 界面
      
     Loadable module support --->


 

    [*] Enable loadable module support


 

    [] Set version information on all module symbols (NEW)


 

    [*] Kernel module loader (NEW)   退出保存
进入uClinux-v1.3.4 configuration界面


 

    busybox---------------->


 

                         [*]insmod


 

                         [*]rmmod


 

                         [*]lsmod
               ----------other feathers


 

                     [*] Post 2.1 kernel modules


 

                          [*]model version checks 退出保存


 

重新编译内核 即可


 

leddrv.c编译方式:


 

arm-elf-gcc -D__KERNEL__ -I你的uClinux目录/linux-2.4.x/include-Wall -Wstrict-prototypes -Wno-trigraphs -O2  -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -DNO_MM -mapcs-32 -march=armv4 -mtune=arm7tdmi -mshort-load-bytes -msoft-float -DMODULE   -c -o leddrv.o leddrv.c


 

writeled.c编译方式;arm-elf-gcc -Wall -O2 -Wl,-elf2flt -o writeled writeled.c


 

编译完后将leddrv.o和writeled拷贝到主机/nfs/rootfs下 就可调试了


 

由于uClinux是用romfs,所以/dev目录是只读,所以设备节点必须在制作romfs时制作进去,修改vendors/Samsung/4510B/Makefile


 

在DEVICES = \


 

    最后加上leddrv,c,254,0 重新编译内核,在目标板上/dev下应该出现leddrv设备了


 

目标板上nfs连接成功后就可用/var/tmp>insmod leddrv.o  和  /var/tmp>./writeled看到驱动的效果了

::相关软件::
ucLinux下USB驱动程序源代码
uClinux下对电机控制实验
Uclinux常用命令
::下载说明::
为了达到最快的下载速度,推荐使用网际快车下载本站软件。
如果您发现该软件不能下载,请通知管理员或点击【此处报错】,谢谢!
未经本站明确许可,任何网站不得非法盗链及抄袭本站资源;如引用页面,请注明来自本站,谢谢您的支持!
      网友评论:(评论内容只代表网友观点,与本站立场无关!) 发表评论
站长:61IC 湘ICP备05002478号