大致过程如下:
1.生成led.ko
A.编写led.c
1)驱动描述:MODULE_DESCRIPTION,MODULE_LICENSE等。
2)系统操作函数:open、read、write、close等。
3)file_operation结构体的封装,2.6内核的。
4)注册设备:__init中register_chrdev。
5) 注销:__exit中unregister。
6) 模块的导入导出内核:module_init(led_init); module_exit(led_exit);
B.编写Makefile(这个Makefile还是有一点点复杂的哦),与led.c同一目录
C.make生成led.ko
还有一种生成*.ko的方法是编译内核模块,Makeconfigure:Y/N/M选择(呵呵,在此之前还要对Makefile、Kconfig等进行配置)M是将该功能编译成可以在需要时动态插入到内核中的模块,而Y是直接编译进内核,可以省略后面的几步,直接运行app。
2.生成应用程序APP
1)编写main.c,应用程序
2)/usr/local/hybus-arm-linux-R1.1/bin/arm-linux-gcc main.c -o app
3.将led.ko和app通过NFS挂在到开发板上。
4.创建led结点
mknod /dev/led c 2500
5.装载led模块并查看led.ko
insmod led.ko lsmod led.ko
6.运行应用程序./app
7.卸载led模块
rmmod led.ko