Linux设备驱动的Hello World(4)

大致过程如下:

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0b6001a8e47b047d2c74c52e0b6b7d24.html