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
文章评论(0条评论)
登录后参与讨论