Jetson Orin Nano GPIO 实战,用 devmem 玩转 Pinmux 引脚复用配置
视频讲解:
Jetson Orin Nano GPIO 实战,用 devmem 玩转 Pinmux 引脚复用配置
测试的板子为 Jetson Orin Nano devkit,Jetpack6.2,内核版本 5.15.148-tegra
devmem 是一个直接读写寄存器的工具,通过 mmap 将 /dev/mem 中的物理地址区域映射到用户空间进程地址空间,从而实现直接读写,正常情况下在 /dev 下可以看到 mem
需要 TRM 手册查看相关寄存器,以及安装 busybox,busybox 内置了 devmem
sudo apt install busybox
读指令
sudo busybox devmem 0x11111111
写指令
sudo busybox devmem 0x11111111 w 0x123
我们测试一个 gpio,比如开发板的 J12 的 pin3
根据 TRM 手册,找到 I2C_SDA 的 pinmux 地址偏移是 0x18
寄存器地址如下为 0x0c302000
所以读取寄存器值为如下指令
sudo busybox devmem 0x0c302018
使用 gpioinfo 查看这个 pdd.02 是 input 状态
我们来对比 pinmux 寄存器来看下是否是 input
可以看到对应 bit5 bit6 分别为 1,对应配置为 E_IO_HV 为 ENABLE 以及 E_INPUT 为 ENABLE