linux简单的gpio驱动实例

linux简单的gpio驱动实例

ID:6127612

大小:73.50 KB

页数:8页

时间:2018-01-04

linux简单的gpio驱动实例_第1页
linux简单的gpio驱动实例_第2页
linux简单的gpio驱动实例_第3页
linux简单的gpio驱动实例_第4页
linux简单的gpio驱动实例_第5页
资源描述:

《linux简单的gpio驱动实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、今天完成了嵌入式linux的第一个驱动的编写和测试,虽然是个简单的程序,但是麻雀虽小,五脏俱全,希望可以给刚开始接触驱动编写的人一些提示,共同进步。源代码:分析如下:     下面是我的驱动程序:#include//配置头文件#include/*内核头文件,作为系统核心的一部分,设备驱动程序在申请和释放内存时,不是调用malloc和free,而是调用kmalloc和kfree*/#include//调度,进程睡眠,唤醒,中断申请,中断释放#include//时钟头文件#i

2、nclude//用户定义模块初始函数名需引用的头文件#include//模块加载的头文件#include#include//这个是2440的寄存器头文件,asm/srch只是个链接//实际根据自己的情况查找,一般是../../linux2.*.*/include/asm/arch-s3c2440里编译器//自己会查询链接,以前不知道,找了半天//GPIO_LEDDEVICEMAJOR#defineGPIO_LED_MAJOR 97   //定义主设备号//defi

3、neLEDSTATUS 我的板子LED在GPB0与GPB1 处大家根据自己情况改 #defineLED_ON 0//定义LED灯的状态开#defineLED_OFF1// //-------------------READ------------------------ 这个前面要加static否则警告staticssize_tGPIO_LED_read(structfile*file,char*buf,size_tcount,loff_t*f_ops){returncount;} //-------------------WRITE-----------------------statics

4、size_tGPIO_LED_write(structfile*file,constchar*buf,size_tcount,loff_t*f_ops){returncount;} //-------------------IOCTL-----------------------staticssize_tGPIO_LED_ioctl(structinode*inode,structfile*file,unsignedintcmd,longdata)        //这个函数实现了led灯亮灭的接口{switch(cmd){caseLED_ON:{GPBDAT=0x01;break;} //根

5、据自己情况修改一个亮一个灭  caseLED_OFF:{GPBDAT=0x02;break;} //交替闪烁default:{printk("lcdcontrol:nocmdrun [--kernel--]");return(-EINVAL);}}return0;}//-------------------OPEN------------------------staticssize_tGPIO_LED_open(structinode*inode,structfile*file){MOD_INC_USE_COUNT;return0;} //-------------------RELEA

6、SE/CLOSE---------------staticssize_tGPIO_LED_release(structinode *inode,structfile*file){MOD_DEC_USE_COUNT; return0;}//-------------------------------------------------structfile_operationsGPIO_LED_ctl_ops={ open:  GPIO_LED_open,           //这段赋值代码必须放在接口函数申明之后read:  GPIO_LED_read,            //否则编译不

7、过去 write:  GPIO_LED_write,ioctl:  GPIO_LED_ioctl,release: GPIO_LED_release,}; //-------------------INIT------------------------staticintGPIO_LED_CTL_init(void){intret=-ENODEV; printk("----------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。