Linux應用層直接操作GPIO

2021-09-19 10:27:19 字數 1963 閱讀 4063

在乙個老手的指導下,應用層可以直接操作gpio,具體指設定gpio的輸入輸出以及輸出電平高或者低。這個大大地提高了靈活性,官方的文件有gpio sysfs inte***ce for userspace,gpio sysfs。

這裡我記錄一下使用過例子:

# rk30_pin0_pd4

# a0-7 -> 0-7 / b0-7 -> 8-15 / c0-7 -> 16-23 / d0-7 -> 24-31

echo

28 > /sys/class/gpio/export

echo

"out" > /sys/class/gpio/gpio28/directionecho

1 > /sys/class/gpio/gpio28/value

以上**作用是:將rk30_pin0_pd4設定為輸出,將輸出電平設定為高電平。

otg的pin腳為rk30_pin3_pd5

能有老手指點真好,以前想像過有沒有辦法直接在使用者層控制gpio的輸入/輸出並設定輸出電平,不過最終沒有了結果。

這個問題的背景是出在了對主機板上的usb host口供電控制,在移植最新的核心版本到該主機板上時,usb口沒有供電輸出,進行手動使能供電解決了問題所在。這個是手動控制,以後要新增到dts檔案中。

a20主機板簡化了一些操作,沒有按照標準的api進行設計。操作方式是這樣的:

# 設定gpio輸入輸出模組(0:輸入 1:輸出)

echo

1 /sys/class/gpio_sw/ph12/mul_sel# 檢視ph12這個pin腳電平

cat /sys/class/gpio_sw/ph12/data

# 設定ph12這個pin腳電平

echo

"1" /sys/class/gpio_sw/ph12/data

參考a20 gpio 對映關係。

在乙個老手的指導下,應用層可以直接操作gpio,具體指設定gpio的輸入輸出以及輸出電平高或者低。這個大大地提高了靈活性,官方的文件有gpio sysfs inte***ce for userspace,gpio sysfs。

這裡我記錄一下使用過例子:

# rk30_pin0_pd4

# a0-7 -> 0-7 / b0-7 -> 8-15 / c0-7 -> 16-23 / d0-7 -> 24-31

echo

28 > /sys/class/gpio/export

echo

"out" > /sys/class/gpio/gpio28/directionecho

1 > /sys/class/gpio/gpio28/value

以上**作用是:將rk30_pin0_pd4設定為輸出,將輸出電平設定為高電平。

otg的pin腳為rk30_pin3_pd5

能有老手指點真好,以前想像過有沒有辦法直接在使用者層控制gpio的輸入/輸出並設定輸出電平,不過最終沒有了結果。

這個問題的背景是出在了對主機板上的usb host口供電控制,在移植最新的核心版本到該主機板上時,usb口沒有供電輸出,進行手動使能供電解決了問題所在。這個是手動控制,以後要新增到dts檔案中。

a20主機板簡化了一些操作,沒有按照標準的api進行設計。操作方式是這樣的:

# 設定gpio輸入輸出模組(0:輸入 1:輸出)

echo

1 /sys/class/gpio_sw/ph12/mul_sel# 檢視ph12這個pin腳電平

cat /sys/class/gpio_sw/ph12/data

# 設定ph12這個pin腳電平

echo

"1" /sys/class/gpio_sw/ph12/data

參考a20 gpio 對映關係。

Linux應用層直接操作GPIO

在乙個老手的指導下,應用層可以直接操作gpio,具體指設定gpio的輸入輸出以及輸出電平高或者低。這個大大地提高了靈活性,官方的文件有gpio sysfs inte ce for userspace,gpio sysfs。這裡我記錄一下使用過例子 rk30 pin0 pd4 a0 7 0 7 b0 ...

Linux應用層時間函式

include time t time time t ptr 這個函式返回從unix新紀元 1970年1月1日00 00 00 utc 開始到現在經過的秒數,並且是按照utc協調時間進行計算,統稱為日曆時間。它的精度是秒。include int clock gettime clockid t clo...

表示層 應用層

表示層 功能 為異種機通訊提供一種公共語言,以便能進行互操作。這種型別的服務之所以需要,是因為不同的計算機體系結構使用的資料表示法不同。例如,ibm主機使用ebcdic編碼,而大部分pc機使用的是ascii碼。在這種情況下,便需要表示層來完成這種轉換。應用層 包含了通常要使用的協議 http協議 超...