部分管脚存在复用关系,在使用时需确保当前管脚已经被复用为GPIO。
示例:第7组第2个管脚存在复用关系,配置寄存器IOMUX(基地址为0x400140000,偏移地址为0x30)为3,将此管脚复用为GPIO。
若当前管脚已为GPIO,可通过如下方法进行调测。通过DTB设备树方式配置GPIO为永久生效,其余方式配置GPIO为临时生效。
通过在dts文件中配置第7组第2个GPIO管脚,生成DTB文件,具体操作步骤如下,此处以Atlas 200I DK A2 开发者套件为例进行文件配置。
su - root
cd /opt
tar -xzvf Ascend310B-source.tar.gz
cd Ascend310B-source/dtb/dts/hi1910b/hi1910BL
cd product
vim hi1910B-pinctrl-M100-B51.dtsi
将基地址为0x400140000,偏移地址为0x30的寄存器配置值修改为0x3,如图2所示。
修改完成后保存并退出。
cd /opt/Ascend310B-source
bash build.sh dtb
出现如下回显,且生成“dt.img”文件表示编译内核userBaseConfig文件成功。
generate /opt/Ascend310B-source/output/dt.img success! sign /opt/Ascend310B-source/output/dt.img success!
编译后的“dt.img”文件会自动存放于“Ascend310B-source/output”目录下。
通过gpio_operate工具进行操作,详细使用方法请参考GPIO工具介绍。
通过devmem工具进行操作。配置第7组第2个GPIO管脚说明如下。
通过Sysfs方式控制GPIO。配置第7组第2个GPIO管脚说明如下。
GPIO_ID = START_ID+M = 224 + 2 = 226
echo GPIO_ID > /sys/class/gpio/export
cat /sys/class/gpio/gpioGPIO_ID/direction
echo out > /sys/class/gpio/gpioGPIO_ID/direction
cat /sys/class/gpio/gpioGPIO_ID/value
echo 1 > /sys/class/gpio/gpioGPIO_ID/value