红联Linux门户
Linux帮助

Linux kernel找到gpio被占用位置

发布时间:2017-04-22 11:25:54来源:linux网站作者:陈富林
一开始是通过断点 printk看哪里申请这个GPIO正常哪里不正常,发现这种方法太繁琐。
经过同事提醒,直接在 drivers/gpio/gpiolib.c 里面的 gpio_request 里面添加调试代码,可以直接得出该GPIO 是在哪调用的。
 
代码如下:
# drivers/gpio/gpiolib.c
int gpio_request(unsigned gpio, const char *label)
{
// ... ...
if(gpio == 29)
{
printk("-----here : %s ------\n", label);
}
// ... ...
}
 
这样加入kernel 后就很容易在 LOG中找到大概的位置,找到是在哪被占用,为后续的自己的驱动以及文件系统层的调用提供保障。
 
然后通过在用户层就可以直接控制该GPIO,可参考:http://www.linuxdiyf.com/linux/27774.html
 
本文永久更新地址:http://www.linuxdiyf.com/linux/30217.html