微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 使用ti am437x-gp-evm的内核和设备树文件,可以在ricoboard上正常启动,但是测试/sys/class/gpio/出现问题?

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

时间:10-02 整理:3721RD 点击:
如题所示,我通过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

复制代码


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top