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

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> 是要使用的中斷模式。可接受的值為 defaultedge-highedge-lowedge-bothlevel-lowlevel-high

別名:q

函式

gpioutil function <name> <value>

設定圖釘的函式。

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

<value> 是 GPIO 控制器的專屬函式編號

別名:f

提取

gpioutil pull <name> <value>

設定引腳的拉升或拉低電阻器。

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

<value> 是電阻器提升/下拉動作,可接受的值為 downupnone

別名: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 版本。

此為裝置端指令,而非 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/