tcc编译linux内核,tcc893x基于Linux内核的普普通通GPIO操作总结

tcc893x基于Linux内核的普通GPIO操作总结

采用非平台方式进行配置GPIO引脚

采用非平台方式进行配置gpio引脚,是直接对其gpio组寄存器进行读写。由于不能直接对寄存器物理地址进行操作,所有需要利用ioremap将gpio寄存器的物理地址映射成虚拟地址

写寄存器:writel(value,对应寄存器的虚拟地址);

读寄存器:value = readl(对应寄存器的虚拟地址);

采用tcc893x平台方式进行配置GPIO引脚

tcc已经帮我们实现一些函数来配置gpio对应引脚功能,常用的4个函数:

定义于:arch/arm/mach-tcc893x/include/mach/gpio.h

gpio绑定到外部中断或叫gpio配置外部中断

int tcc_gpio_config_ext_int(unsigned intr, unsigned source);//intr:irq num, source: external interrupt source

如:tcc_gpio_config_ext_int(INT_EINT0, EXINT_GPIOE_26);//将GPIO_E26引脚绑定到外部中断0上面,即可调用request_irq申请中断,并设置中断方式

配置gpio

int tcc_gpio_config(unsigned gpio, unsigned flags);

如:tcc_gpio_config(TCC_GPE(29), GPIO_FN(0) | GPIO_PULL_DISABEL | GPIO_HIGH);//将GPIO_E29引脚设置为功能0(功能0表示GPIO_E29作为普通GPIO口)、关闭上拉下拉使能以及设置为高电平

tcc对gpio引脚功能的宏定义在arch/arm/mach-tcc893x/include/mach/include/gpio.h

123701376.png

读写gpio引脚的值

123701377.png

如:gpio_get_value(TCC_GPD(21));//读出GPIO_D21引脚的值

如:gpio_set_value(TCC_GPD(21), 1);//设置GPIO_D21引脚为高电平

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值