uclinux添加設備驅動的完整過程
下面以添加一個字符設備爲例,說明添加設備驅動的過程.塊設備與網絡設備可以比照處理.
0.原文件放在 linux-2.4.x/driver/char/ ;本例中,名爲xyz.c
1.設備驅動原文件必須包括這樣的一個函數:
void xyz_init(void){register(254, 'xyz', &xyz_fops)} 這個函數完成註冊.在linux-2.4.x/driver/mem.c 將會調用它.
這個函數也可以寫成:
void __init xyz_init(void){register(254, 'xyz', &xyz_fops)} 這樣不必須在 linux-2.4.x/driver/mem.c 調用它
2.修改 linux-2.4.x/driver/char/Makefile 在適當位置添加一行:
obj_$(CONFIG_XYZ) += xyz.o
3.修改linux-2.4.x/driver/char/Config.in, 添加一行:
bool 'xyz hahahaha' CONFIG_XYZ
便於在 make menuconfig 時選擇
4.修改linux-2.4.x/driver/char/mem.c
在適當位置(你去找就會發現,在文件頭部)添加:
#ifdef CONFIG_XYZ
extern void xyz_init(void);
#endif
在chr_dev_init()函數添加:
#ifdef CONFIG_XYZ
xyz_init();
#endif
5. 修改vendor/Samsung/4510b/Makefile ,建立設備節點;
在12---35行間,DEVICE 部分添加 如下內容
xzy,c,254,0
6.make menuconfig 選中 xyz hahahaha,
編譯,下載;啓動後你會看到 /proc/devices 中字符設備多了一項 xyz 254
0.原文件放在 linux-2.4.x/driver/char/ ;本例中,名爲xyz.c
1.設備驅動原文件必須包括這樣的一個函數:
void xyz_init(void){register(254, 'xyz', &xyz_fops)} 這個函數完成註冊.在linux-2.4.x/driver/mem.c 將會調用它.
這個函數也可以寫成:
void __init xyz_init(void){register(254, 'xyz', &xyz_fops)} 這樣不必須在 linux-2.4.x/driver/mem.c 調用它
2.修改 linux-2.4.x/driver/char/Makefile 在適當位置添加一行:
obj_$(CONFIG_XYZ) += xyz.o
3.修改linux-2.4.x/driver/char/Config.in, 添加一行:
bool 'xyz hahahaha' CONFIG_XYZ
便於在 make menuconfig 時選擇
4.修改linux-2.4.x/driver/char/mem.c
在適當位置(你去找就會發現,在文件頭部)添加:
#ifdef CONFIG_XYZ
extern void xyz_init(void);
#endif
在chr_dev_init()函數添加:
#ifdef CONFIG_XYZ
xyz_init();
#endif
5. 修改vendor/Samsung/4510b/Makefile ,建立設備節點;
在12---35行間,DEVICE 部分添加 如下內容
xzy,c,254,0
6.make menuconfig 選中 xyz hahahaha,
編譯,下載;啓動後你會看到 /proc/devices 中字符設備多了一項 xyz 254
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.