博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 驱动学习 GPIO驱动相关函数详解
阅读量:4965 次
发布时间:2019-06-12

本文共 919 字,大约阅读时间需要 3 分钟。

s3c2410_gpio_setpin()-向某个引脚进行输出

void s3c2410_gpio_setpin(unsigned int pin, unsigned int to) { void __iomem *base = S3C2410_GPIO_BASE(pin);//算出端口所在组虚拟基址如://GPA=0xF0E00000                                                                                                                                  //GPB=0XF0E00010 unsigned long offs = S3C2410_GPIO_OFFSET(pin);        //算出端口所在组的偏移量(0~31)unsigned long flags; unsigned long dat;local_irq_save(flags);//关闭当前处理器上的所有中断处理dat = __raw_readl(base + 0x04);    //虚拟基址加0x04为 GP*DAT寄存器,加0x00为GP*ON等                                                       //读出当前GP*DAT寄存器的值                dat &= ~(1 << offs);     //根据offs偏移量对该寄存器中选中的 位 清零,其他位保持不变dat |= to << offs;         //根据形参对要求的位进行位操作,来实现对具体某个IO口的配置__raw_writel(dat, base + 0x04);     //将配置写入到寄存器(这里是虚拟地址)local_irq_restore(flags);//在使能中断的同时还恢复了由 local_irq_save() 所保存的中断状态。 }

 

转载于:https://www.cnblogs.com/starsKing/p/6142031.html

你可能感兴趣的文章
中间件测试工具
查看>>
咏南跨平台中间件简介
查看>>
DELPHI开发LINUX包
查看>>
CENTOS7安装OPENSSL
查看>>
LITEIDE配置
查看>>
DELPHI开发LINUX的动态库
查看>>
TThread.Queue和TThread.Synchronize的区别
查看>>
NGINX配置SSL
查看>>
咏南跨平台中间件支持LINUX和WINDOWS插件架构
查看>>
DELPHI给整个项目加编译开关
查看>>
JWT Claims
查看>>
cross socket tcp客户端开发
查看>>
http json token
查看>>
JWT签名算法
查看>>
CENTOS安装REDIS
查看>>
CENTOS7安装NGINX
查看>>
基于洗牌算法的负载均衡
查看>>
NGINX实现咏南跨平台中间件集群
查看>>
vi编辑器使用
查看>>
DELPHI LINUX中间件隆重发布
查看>>