列出、讀取、寫入及設定 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>
設定圖釘的函式。
<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 碼設為功能六
$ 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/