驱动模块编写步骤:
- 查找并调用所需的内核函数,同时为所需的结构体命名
- 补全所需的结构体,使用vim -t查找结构体声明
- 通过结构体声明所在的文件补全头文件
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/miscdevice.h>
#include <linux/gpio.h> //gpio_request
#include <plat/gpio-cfg.h> //s3c_gpio_cfgpin
#include <mach/gpio.h> //GPIO 宏
#include <linux/fs.h>
#define DRIVER_NAME "led_test"
#define DEVICE_NAME "led_dev"
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("colorfulshark@hotmail.com");
//避免出现struct declared inside parameter list
struct platform_deivce;
struct miscdevice;
static int led_plat_probe(