使用ti am437x-gp-evm的内核和设备树文件,可以在ricoboard上正常启动,但是测试/sys/class/gpio/出现问题???

如题所示,我通过ti的sdk包,编译生成了am437x-gp-evm的内核文件zImage和设备树文件,但是我通无法控制ricoboard引脚高低电平。测试如下:
echo 13 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio13/direction
echo 1 > /sys/class/gpio/gpio13/value
echo 0 > /sys/class/gpio/gpio13/value
该引脚的电平既没有变高也没有变低,这是什么问题呢?

是内核的问题或者是设备树的问题呢?

并且在/dev/目录下也没有串口ttyO0这个节点,

是不是设备树的问题啊?

通过google,发现了解决这个问题的方法(主要感谢ti e2e社区):原帖链接AM437x-gp-evm gpio numbering



我的解决办法:(我想控制gpio5_6,也就是米尔ricoboard的J10-11

要想执行如下命令,
 
需要先挂载debug内容,命令如下:
  1. mount -t debugfs debugfs /sys/kernel/debug
复制代码
然后执行如下命令,查看gpio映射的地址信息,在米尔开发版上,ti-sdk中的显示如下:
 

由于gpio5的寄存器地址是:
 
综合以上的debug信息可以知道gpio5-0~gpio5-31映射到了编号128~159这个范围,所以进行
echo的时候,应该echo 128+6=134
  1. echo 134 > /sys/class/gpio/export
复制代码
接下来就可以正常的控制输出方向和输出值,
顺便再次看下debug信息
 
多出来了134号引脚。
我写了一个脚本gpio.sh
  1. #!/bin/ash
  2.   
  3. PIN=$1
  4.   
  5. echo $PIN > /sys/class/gpio/export
  6. echo out > /sys/class/gpio/gpio$PIN/direction
  7. echo 1 > /sys/class/gpio/gpio$PIN/value
复制代码
执行如下命令可以直接控制gpio5-6输出高电平:
  1. sh gpio.sh 134
复制代码

猜你喜欢

转载自blog.csdn.net/wlf_go/article/details/80600681