列出、讀取、寫入及設定 GPIO。
用途
gpioutil <command> [<name>] [<value>]
指令
list
gpioutil list
列出已知的 GPIO。
list 會傳回的值如下:
[gpio-0] GPIO_HW_ID_3
括號內的值 (gpio-0) 是固定索引參照。
括號後面的值 (GPIO_HW_ID_3) 是要提供給其他 gpioutil 指令的 <name> 值。詳情請參閱「GPIO 名稱」一節。
別名:l
read
gpioutil read <name>
讀取已設為 OUT 的 GPIO 目前值。
<name> 必須是 list 傳回的其中一個值。
可能的回傳值為 0 (LOW) 或 1 (HIGH)。
別名:r
in
gpioutil in <name>
將 GPIO 設為 IN。
<name> 必須是 list 傳回的其中一個值。
這項指令不會傳回值。
別名:i
out
gpioutil out <name> <value>
將 GPIO 設為 OUT。
<name> 必須是 list 傳回的其中一個值。
<value> 是初始的 OUT 值,可接受的值為 0 (LOW) 或 1 (HIGH)。
這項指令不會傳回值。
別名:o
drive
gpioutil drive <name> [<value>]
取得或設定 GPIO 的驅動強度 (以微安培為單位)。
<name> 必須是 list 傳回的其中一個值。
如果省略 <value>,drive 會傳回 GPIO 目前的驅動強度 (以微安培為單位)。
如果提供 <value>,drive 會更新 GPIO 的驅動強度。<value> 的單位必須是微安培。
別名:d
中斷
gpioutil interrupt <name> <value>
取得 GPIO 中斷,並等待中斷觸發一次。
<name> 必須是 list 傳回的其中一個值。
<value> 是所需的中斷模式。可接受的值為 default、edge-high、edge-low、edge-both、level-low 或 level-high。
別名:q
函式
gpioutil function <name> <value>
設定 PIN 碼的功能。
<name> 必須是 list 傳回的其中一個值。
<value> 是特定於所用 GPIO 控制器的函式編號。
別名:f
提取
gpioutil pull <name> <value>
設定引腳的拉升或拉低電阻器。
<name> 必須是 list 傳回的其中一個值。
<value> 是電阻器提升/下拉動作,可接受的值為 down、up 或 none。
別名:p
help
gpioutil help
列印說明文字。
別名:h
範例
列出所有已知的 GPIO
$ gpioutil list
[gpio-0] GPIO_HW_ID_3
[gpio-1] GPIO_SOC_TH_BOOT_MODE_L
...
讀取 GPIO 目前的值
$ gpioutil read GPIO_HW_ID_3
GPIO Value: 1
將 LOW 值寫入 GPIO
$ gpioutil write GPIO_HW_ID_3 0
使用下拉電阻器將 GPIO 設為 IN
$ gpioutil in GPIO_HW_ID_3 down
將 GPIO 設為 OUT,初始值為 HIGH
$ gpioutil out GPIO_HW_ID_3 1
取得 GPIO 目前的驅動強度 (以微安培為單位)
$ gpioutil drive GPIO_HW_ID_3
Drive Strength: 500 ua
將 GPIO 的驅動強度設為 500 微安培
$ gpioutil drive GPIO_HW_ID_3 500
Set drive strength to 500
等待 GPIO 的下降邊緣
$ gpioutil interrupt GPIO_HW_ID_3 edge-low
Received interrupt at time 12345
將 PIN 碼設為功能 6
$ gpioutil function GPIO_HW_ID_3 6
附註
使用這項指令時的注意事項
這項指令僅適用於某些診斷和測試 Fuchsia 版本。
此為裝置端指令,而非 fx 或 ffx 等主機端指令。換句話說,您必須先存取 Fuchsia 裝置的殼層,才能呼叫這項指令。
如何以互動方式存取 Fuchsia 裝置的殼層:
ffx component explore <component>
將 <component> 替換為可存取本頁所述指令的元件名稱。
如何呼叫單一指令,並將輸出內容傳回主機:
ffx component explore <component> -c "<command>"
將 <command> 替換為本頁列出的其中一項指令。
GPIO 名稱
GPIO 名稱是在驅動程式原始碼中定義,且通常會與 GPIO 的規格書名稱相符。如需範例,請參閱 vim3-gpio.cc 中的 DECL_GPIO_PIN 陳述式。
原始碼
gpioutil 的原始碼://src/devices/gpio/bin/gpioutil/