GPIO驱动相关笔记

GPIO驱动相关笔记

ID:22151781

大小:149.50 KB

页数:29页

时间:2018-10-27

GPIO驱动相关笔记_第1页
GPIO驱动相关笔记_第2页
GPIO驱动相关笔记_第3页
GPIO驱动相关笔记_第4页
GPIO驱动相关笔记_第5页
资源描述:

《GPIO驱动相关笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、GPIO驱动相关笔记2011-03-2722:54 529人阅读 评论(2) 收藏 举报 打算跟着友善之臂的《mini2440linux移植开发指南》来做个LED驱动,虽然LED的原理简单得不能再简单了,但是要把kernel中针对于s3c24**的GPIO的一些数据结构,还有函数搞清楚也不是那么轻松的事,所以本文主要简单地说明下LED驱动中的相关数据结构以及函数/宏的定义,并对驱动加以验证 *************************************************************************** 注意:在/arch/arm

2、/mach-s3c2410/include/mach/gpio-fns.h源代码中有如下说明: 16/*Thesefunctionsareintheto-be-removedcategoryanditisstrongly17*encouragednottousetheseinnewcode.Theywillbemarkeddeprecated18*verysoon.19*20*Mostofthefunctionalitycanbeeitherreplacedbythegpiocfgcalls21*forthes3cplatformorbythegenericGPIO

3、libAPI.22*23*Asof2.6.35-rc,thesewillberemoved,withthefewdriversusingthem24*eitherreplacedorgivenawrapperuntilthecallscanberemoved.25*/ 该头文件包括:staticinlinevoids3c2410_gpio_cfgpin(unsignedintpin,unsignedintcfg)该函数直接使用linux/arch/arm/plat-s3c/gpio-config.c中的ints3c_gpio_cfgpin(unsignedintpi

4、n,unsignedintconfig)即可  ***************************************************************************  首先看一下设备初始化程序:85/*86*设备初始化87*/88staticint__initdev_init(void)89{90intret;91inti;92for(i=0;i<4;i++){93 //设置LED对应的端口寄存器为输出(OUTPUT)94     if(s3c_gpio_cfgpin(led_table[i],led_cfg_table[i])<0

5、)             printk(KERN_INFO"configpin%dfailed",i);95printk(KERN_INFO"configpin%dfailed",i);95 //设置LED对应的端口寄存器为低电平输出,在模块加载>结束后,四个LED应该是全部都是发光96 状态 97     s3c2410_gpio_setpin(led_table[i],0);98} 99 ret=misc_register(&misc); //注册设备100printk(DEVICE_NAME"/tinitialized/n"); //打印初始化信息101re

6、turnret;102} 可以看到,这里涉及到两个函数,分别是s3c2410_gpio_cfgpin,s3c2410_gpio_setpin,这两个函数分别对四个LED进行配置,从函数名来看,cfgpin对引脚寄存器状态进行配置,而setpin应该是对寄存器数据值进行配置,我们在分析函数之前先弄清楚传入的参数到底是什么。led_table[i]28 //LED对应的GPIO端口列表29staticunsignedlongled_table[]={ 30  S3C2410_GPB(5), 31  S3C2410_GPB(6), 32  S3C2410_GPB(7), 

7、33  S3C2410_GPB(8),34};这里S3C2410_GPB宏定义在mach/gpio-nrs.h中 /*GPIObanksizes*/#defineS3C2410_GPIO_A_NR(32)#defineS3C2410_GPIO_B_NR(32)#defineS3C2410_GPIO_C_NR(32)#defineS3C2410_GPIO_D_NR(32)#defineS3C2410_GPIO_E_NR(32)#defineS3C2410_GPIO_F_NR(32)#defineS3C2410_GPIO_G_NR(32)#defineS3C2410

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

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

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