驱动程序:
/********************************
* GPIO驱动程序控制GPIO接口高低电平
* 基于gpio库,四个GPIO识别为一个设备
* 使用miscdevice结构体动态分配设备号,自动创建/dev/文件
* 使用ioctl函数实现用户态命令
* 更多内容见于笔记05
* 开发板:Tiny 4412
* 主控芯片:Exynos 4412
* author: zhangn
* date: 2016-1-12
********************************/
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
#include <linux/miscdevice.h>
//包含gpio库头文件
#include <linux/gpio.h>//所有处理器通用
#include <plat/gpio-cfg.h>//三棒子芯片公用
#include <mach/gpio.h>//只针对4412芯片
#define GPIO_NUM 4
//0.定义ioctl命令,本例我们定义两个带一个参数的命令
/****************************************************************
关于_IOW,这是内核中定义的一个用于向内核写数据的一个宏
其参数是_IOW(幻数, 命令序号, 命令所占内存大小)
对于第三个字段,这里要使用参数的数据类型,内核里会使用sizeof获得
这里具体说明详见ldd3的第六章关于ioctl的说明
最后要注意的是这的宏定义要和用户态程序完全相同
******************************************