欢迎来到天天文库
浏览记录
ID:32366632
大小:66.30 KB
页数:5页
时间:2019-02-03
《linux内核gpio操作函数解析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、·详解内核驱动操作GPIO引脚API函数函数原型:voids3c2410_gpio_cfgpin(unsignedintpin,unsignedintfunction);unsignedints3c2410_gpio_getcfg(unsignedintpin);voids3c2410_gpio_pullup(unsignedintpin,unsignedintto);voids3c2410_gpio_setpin(unsignedintpin,unsignedintto);unsignedints3c24
2、10_gpio_getpin(unsignedintpin);unsignedints3c2410_modify_misccr(unsignedintclear,unsignedintchange);ints3c2410_gpio_getirq(unsignedintpin);关于函数中用到的虚拟地址到物理地址转换的变量及算法可以参考http://blog.163.com/hefeng330467115@126/blog/static/782058422010620511659/或http://blog.c
3、hinaunix.net/u3/102836/showart_2065945.html看简单led驱动程序是用到的文件及头文件可能有:linux/include/asm-arm/arch-s3c2410/map.hlinux/include/asm-arm/arch-s3c2410/regs-gpio.hlinux/arch/arm/plat-s3c24xx/gpio.clinux/include/asm-arm/io.h用SourceInsight打开这些文件,然后再看驱动程序,可以随意跳转到定义处,很是
4、方便pin参数:gpio引脚及特殊功能寄存器助记符都在linux/include/asm-arm/arch-s3c2410/regs-gpio.h中定义:eg:S3C2410_GPACONS3C2410_GPADATS3C2410_GPA0-S3C2410_GPA22//引脚S3C2410_GPA0_OUT-S3C2410_GPA22_OUT//设置引脚为输出用到哪个不清楚的可以直接到这个文件去查找还有中断和GSTATUS:S3C2410_EXTINT0->irqsensecontrolforEINT0..
5、EINT7S3C2410_EXTINT1->irqsensecontrolforEINT8..EINT15S3C2410_EXTINT2->irqsensecontrolforEINT16..EINT23……function参数:指定引脚功能:输出、输入还是特殊功能,也在linux/include/asm-arm/arch-s3c2410/regs-gpio.h中定义。函数功能:1原型:voids3c2410_gpio_cfgpin(unsignedintpin,unsignedintfunction);作
6、用:配置GPIO引脚功能,即是配置相应的CON位eg:s3c2410_gpio_cfgpin(S3C2410_GPB0,S3C2410_GPB0_OUTP);//设置B5脚为输出功能函数原代码及注释:(这个函数注释的比较详细,后面类似的不再重复注释)voids3c2410_gpio_cfgpin(unsignedintpin,unsignedintfunction){void__iomem*base=S3C24XX_GPIO_BASE(pin);//取引脚基地址即是:GPA0、GPB0……的虚拟基地址uns
7、ignedlongmask;unsignedlongcon;unsignedlongflags;if(pin8、PIO_LEAVE:mask=0;function=0;break;caseS3C2410_GPIO_INPUT:caseS3C2410_GPIO_OUTPUT:caseS3C2410_GPIO_SFN2:caseS3C2410_GPIO_SFN3:if(pin
8、PIO_LEAVE:mask=0;function=0;break;caseS3C2410_GPIO_INPUT:caseS3C2410_GPIO_OUTPUT:caseS3C2410_GPIO_SFN2:caseS3C2410_GPIO_SFN3:if(pin
此文档下载收益归作者所有