Linux通過核心檢視晶元gpio配置使用情況

2021-08-19 16:45:14 字數 3306 閱讀 7239

使用者空間使用gpio輸出試,出錯;

使用pb08輸出1-----對應40:  32*(b-a) + 08 = 40

# echo 40 > export

sh: write error: device or resource busy

# echo 41 > export

sh: write error: device or resource busy

# echo 42 > export

# cd gpio42/

# ls

active_low  direction   edge        power       subsystem   uevent      value

# echo out > direction

# echo 0 > value

pb08和pb09出錯了,pb10正確;

應該pb08,pb09io口被占用了,資源已經分配;

下面進行驗證;可以檢視板級配置檔案,也可以在核心中直接檢視;

板級檔案:

/* ****************************gpio key start******************************** */

#define gpio_home_key        gpio_pc(6)

#define active_low_home        0

#define gpio_volumeup_key    gpio_pb(8)

#define active_low_volumeup    0

#define gpio_volumedown_key     gpio_pb(9)

#define active_low_volumedown 0

//#define gpio_endcall_key    gpio_pc(8)

//#define active_low_endcall      0

#define gpio_menu_key    gpio_pc(8)

#define active_low_menu    0

/* ****************************gpio key end********************************** */

確實配置了按鍵

在核心中檢視輸入下面兩個命令

#mount -t debugfs debugfs /tmp

#cat /tmp/gpio

gpios 0-31, gpio a:

gpios 32-63, gpio b:

gpio-32  (nc_pin              ) in  hi

gpio-33  (nc_pin              ) in  hi

gpio-34  (nc_pin              ) in  hi

gpio-35  (nc_pin              ) in  hi

gpio-36  (nc_pin              ) in  hi

gpio-38  (0bb뢆            ) out lo

gpio-40  (volum up key        ) in  lo

gpio-41  (volum down key      ) in  hi

gpio-45  (yellow              ) out lo

gpio-46  (green               ) out lo

gpio-47  (red                 ) out lo

gpio-48  (lcd rd              ) out hi

gpio-50  (lcd cs              ) out lo

gpio-59  (nc_pin              ) in  hi

gpio-60  (nc_pin              ) in  hi

gpio-61  (nc_pin              ) in  hi

gpio-62  (nc_pin              ) in  lo

gpios 64-95, gpio c:

gpio-70  (home key            ) in  lo

gpio-72  (menu key            ) in  lo

gpio-88  (nc_pin              ) in  hi

gpio-89  (pwm0                ) in  lo

gpios 96-101, gpio d:

gpio-96  (lcd rst             ) out hi

gpio-97  (bl pwr              ) out hi

gpio-100 (0bb뢆            ) out hi

gpio-101 (0bb뢆            ) out hi

發現pb08 pb09已經被設定成了按鍵,pb10沒有占用;

和板級配置檔案一致;

關掉即可pb08 pb09  且將pb10配置成menu按鍵

/* ****************************gpio key start******************************** */

#define gpio_home_key        gpio_pc(6)

#define active_low_home        0

//#define gpio_volumeup_key    gpio_pb(8)

//#define active_low_volumeup    0

////#define gpio_volumedown_key     gpio_pb(9)

//#define active_low_volumedown 0

//#define gpio_endcall_key    gpio_pc(8)

//#define active_low_endcall      0

#define gpio_menu_key    gpio_pb(10)

#define active_low_menu    0

/* ****************************gpio key end********************************** */

當#mount -t debugfs debugfs /tmp執行失敗時,請再核心新增

config_debug_fs=y

kernel hancking 下。

檢視 linux核心版本

1.檢視核心版本命令 1 root q1test01 cat proc version linux version 2.6.9 22.elsmp bhcompile crowe.devel.redhat.com gcc version 3.4.4 20050721 red hat 3.4.4 2 1...

檢視Linux核心版本 lsb release

lsb release命令 lsb是linux standard base的縮寫,lsb release命令用來顯示lsb和特定版本的相關資訊,可通過yum y install redhat lsb命令安裝。如果使用該命令時不帶引數,則預設加上 v引數。v,version 顯示版本資訊 i,id 顯...

通過Linux終端檢視公司IP

公有位址由 internic 分配並由基於類的網路 id 或基於 cidr 的位址塊構成 被稱為 cidr 塊 並保證了在全球網際網路中的唯一性。當公有位址被分配時,其路由將會被記錄到網際網路中的路由器中,這樣訪問公有位址的流量就能順利到達。訪問目標公有位址的流量可經由網際網路抵達。比如,當乙個 c...