2015-05-17 36 views
1

我們正在基於Android的微控制器上進行編程,我們希望能夠訪問開發板上的gpio引腳。通過文檔查看,我們想要使用的12個gpio引腳是#0-100之間的各種引腳,但是,沒有可用的gpiochips。例如,gpiochip576可用,但我們不需要gpios 576及更高版本。我們想獲得0-100的訪問權限。有沒有一種簡單的方法可以訪問它們?我們發現這篇文章:http://www.pieter-jan.com/node/15,如果我們是對的,似乎可以訪問gpiochip,但需要大量的c代碼,在我們的情況下,因爲它的android,我們需要重新編譯內核和系統映像並將其閃存到董事會。有沒有更簡單的方法,也許通過sysfs(類似echo「14」>/sys/class/gpio/export)或其他東西,所以我們獲得訪問?或者是我們修改內核和重新編譯的唯一選項。謝謝!如何進入gpiochipX

+0

你說有GPIO引腳可用,但不是你要找的數字。你有沒有看過你的控制器的Linux文檔的引腳號映射?不幸的是,LInux驅動程序使用的數字和控制器數據表中的數字可能不完全相同。 –

+0

什麼是您的主板(或至少是什麼SoC)?你使用的內核版本是什麼(以及你從哪裏獲得的)?它使用設備樹還是電路板文件?無論哪種方式,您是否可以在設備樹/電路板文件中看到gpio芯片設備定義?你能否看到你的gpio芯片驅動程序被正確加載?如果一切正常 - 查看[Documentation/gpio/sysfs.txt](https://www.kernel.org/doc/Documentation/gpio/sysfs.txt):您應該能夠通過sysfs導出您的GPIO引腳然後使用它(通過將出現在相應目錄下的文件)。 –

+0

@AndreasBombe是的,例如板上的物理gpio 21對應於gpio 86或通過sysfs接口。問題是,在我們實際使用gpio 86之前,我們需要一個gpiochip,它可以讓我們訪問(例如gpiochip72,gpion = 36。這些都是我使用的隨機數)。我們有物理的gpio映射到虛擬映射,但是我們沒有辦法通過sysfs訪問虛擬映射。有沒有辦法讓我們打開它? – user3855005

回答

0

只是想更新有這個同樣的問題,問題的任何未來的用戶:

我們一直在尋找的GPIO 0-120和假設,我們需要GPIO0與gpion = 120,但在現實中,有一個偏移應用,這意味着gpios被發現在576+範圍內。只需要爲每個引腳添加一個常數。

就像SamProtsenko在帶有問題的評論中所描述的那樣,所有需要的修改都需要在設備樹文件中完成,然後重新編譯並上傳到您的設備。 SamProtsenko在解釋需要完成的工作方面做得很好,所以請查看上面的評論。否則,您需要了解有關設備樹如何工作的更多信息。