网站公告列表

  没有公告

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

修改后的《详解第二版》的驱动


作者:violetwave


应网有要求把修改后的驱动和调试的过程、方式贴上来


附件中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看到驱动的效果了

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