原创 uclinux

2011-1-3 22:47 1672 5 5 分类: MCU/ 嵌入式

uclinux添加字符设备驱动过程
                                      
下面为向linux-2.4.x内核添加一个字符设备驱动的过程:

0.把原文件放在 linux-2.4.x/driver/char/
  如: iof.c  iof.h

1.设备驱动原文件必须包括这样的一个函数:
  void  iof_init(void){
                       register(254, 'xyz', &xyz_fops);
                       //驱动程序里必须包含这句注册语句
                      }
  *在linux-2.4.x/driver/mem.c 将会调用这个函数完成注册.参见步骤4.
   或把函数声明为:void  __init  iof_init(void){register(254, 'xyz', &xyz_fops);}
   这样就不必在 linux-2.4.x/driver/mem.c 调用它;

2.修改 linux-2.4.x/driver/char/Makefile 在适当位置添加一行:

   obj_$(CONFIG_IOF) += iof.o

3.修改linux-2.4.x/driver/char/Config.in, 添加一行:

  bool   'iof-driever by xxx' CONFIG_IOF

  这句增加了一个菜单项(bool 变量 y/n)
  执行 make menuconfig 时,可以输入 y/n 进行选择

4.修改linux-2.4.x/driver/char/mem.c

  在文件头部的声明部分,添加:

  #ifdef CONFIG_IOF
    extern int iof_init(void);      
  #endif

  显然这里是根据菜单项的选择结果,选择声明驱动初始化函数

  然后,在chr_dev_init()函数里添加:
  {
   ........

  #ifdef CONFIG_IOF
    iof_init();
  #endif
   .........
  }
  这是驱动初始化函数的执行处.

  
5. 修改目标板文件夹里相应的Makefile
   如: vendor/GDB/Skyeye/Makefile ,添加设备节点;
   在DEVICE 部分添加 如下内容
   
    \
    iof,c,254,0
    \

6.make menuconfig 提示:iof-driver by xxx 时输入 x ,回车;
  make dep
  make

 启动后会发现 /proc/devices 中字符设备多了一项 iof 254
 /dev 里也多了一项  iof

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /4 下一条