本文章只是大概的给个GPIO的调试思路,具体的方法大家可以查下具体的资料。肯定是精华,如有错误请指出。
话不多说直接开搞
1.目前用的最多的应该都是这个,就是在/sys/class/gpio 里面用export导出相关的GPIO,这个方法也比较简单,算出相关的GPIO数,直接echo x > export就行。然后ls一下进入相关导出文件目录可以查看direction和value。优点是方便调试、简单粗暴,缺点是不持久,重启就没了,还有是如果已经给申请过的,是不可以再这调试的,会冲突。
2.第二种就是在第一种基础上,在应用层操作的可执行文件。就是说用文件IO方式,打开export文件,对其w\r操作。原理是一样的意思。
3.第三种是在内核层,通过直接写在内核写驱动,request gpio 设备,这时候可以用GPIO的相关接口去控制默认输出电平,也可以设置为输入模式。在驱动里面也可以添加opr结构体(r w)来让上层用文件IO的方式去读写gpio的状态,也可以用sysfs来让用户层控制GPIO(也有debugfs系统)。
4.还有一种是比如应用在上电尽快的去操作GPIO,操作完就不再使用的情况,大概的流程是在DTS上配置GPIO,使用"regulator-fixed"。具体可以查看资料。
/ {
foo_name: foo-name {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio_foo>;
regulator-name = "vcc-foo";
regulator-always-on;
};
};