gpioutil

列出、讀取、寫入及設定 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

write

gpioutil write <name> <value>

將值寫入已設為 IN 的 GPIO。

<name> 必須是 list 傳回的其中一個值。

<value> 應為 0 (LOW) 或 1 (HIGH)。

這項指令不會傳回值。

別名:w

in

gpioutil in <name> <value>

將 GPIO 設為 IN。

<name> 必須是 list 傳回的其中一個值。

<value> 是電阻器提升/下拉動作,接受的值為 0 (GPIO_PULL_DOWN)、1 (GPIO_PULL_UP) 或 2 (GPIO_NO_PULL)。

這項指令不會傳回值。

別名: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

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 0

將 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

附註

使用這項指令時的注意事項

這項指令僅適用於某些診斷和測試 Fuchsia 版本。

此為裝置端指令,而非 fxffx 等主機端指令。換句話說,您必須先存取 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/