1.驱动编程注意事项

首先要编写驱动文件,在编写Makefile文件 ,通过make生成 .ko文件,最后加载到系统中去,加载命令为insmod hello.ko  ,查看命令 lsmode ,卸载命令 rmmod hello

编写驱动文件时注意:

1. 必须遵循gpl协议,否则内核会不识别,MODULE_LICENSE("Dual BSD/GPL");具体可以去百度,这个是必须要有的,一般写在末尾。MODULE_AUTHOR("iTOPEET_dz");声明作者,可写可不写。当然还有其他,按你自己需要去加

2. module_init(hello_init);

module_exit(hello_exit);声明开始和结束函数。

编写Makefile文件时需要注意:

第一个红框,必须和你的驱动模块名字相同。

第二个红框表明你要用的内核和路径。

3.简单示例

#!/bin/bash

#通知编译器我们要编译模块的哪些源码

#这里是编译itop4412_hello.c这个文件编译成中间文件mini_linux_module.o

obj-m += mini_linux_module.o

#源码目录变量,这里用户需要根据实际情况选择路径

#作者是将Linux的源码拷贝到目录/home/topeet/android4.0下并解压的

KDIR := /home/topeet/android/iTop4412_Kernel_3.0

#当前目录变量

PWD ?= $(shell pwd)

#make命名默认寻找第一个目标

#make -C就是指调用执行的路径

#$(KDIR)Linux源码目录,作者这里指的是/home/topeet/android4.0/iTop4412_Kernel_3.0

#$(PWD)当前目录变量

#modules要执行的操作

all:

        make -C $(KDIR) M=$(PWD) modules

#make clean执行的操作是删除后缀为o的文件

clean:

        rm -rf *.o

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容