在全志T507開發板上新增兩個GPIO按鍵
本文將為大家介紹如何在飛凌
OKT507-C開發板上新增兩個GPIO按鍵,希望能夠對各位工程師有所幫助,本文章以PE5、PE6兩個引腳為例。話不多說,下面我們進入主題。
一、GPIO按鍵新增方法
1. 新增核心配置
Linux核心原始碼中整合了很多功能,一般的使用者只會用到其中的部分功能。使用者從中挑選自己需要的功能,這就叫核心配置。下面我們開始進行配置。
注意:
(1)在進行配置前,需要對
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/configs/sun50iw9p1smp_longan_dcfconfig檔案提前做好備份;
(2)以下所有圖中的紅框為修改後的內容。
vi OKT507-linux-sdk/kernel/linux-4.9/.config
2. 新增key節點
新增結點需要我們到裝置樹中進行新增,裝置樹是一個描述硬體的資料結構,甚至你可以將其看成一個大結構體(這個結構體就是平臺,成員就是具體的裝置),將硬體的配置從linux核心的原始碼中提取出來。
下面開啟我們的T507裝置樹檔案,如下:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
其中按鍵鍵值設定如下。
相關鍵值可透過檢視input-event-codes.h的檔案確定。
vi OKT507-linux-sdk/kernel/linux-4.9/include/uapi/linux/input-event-codes.h
3. 新增引腳定義
新增引腳定義需要用到pinctrl,下面給大家簡單介紹下pinctrl。pinctrl就是系統中pin引腳的控制。
假如在使用到GPIO、I2C等功能時,若按引腳逐一地去找對應的暫存器進行配置非常浪費時間和精力,所以核心引入了pinctrl子系統,把引腳的複用和配置抽象出來,只需要晶片廠商把自家晶片的支援進去,就可以很方便的配置引腳。
下面開啟我們的pinctrl檔案,如下:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
4. 關閉衝突功能
因為有些功能結點使用的引腳與我們這次複用的引腳發生衝突,會發生引腳不生效的錯誤,所以我們一定要檢查好,然後將其關閉。
如下開啟裝置樹檔案:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
注意:
因攝像頭csi複用的引腳與我們這裡的衝突,雖然前面將狀態disabled了,pinctrl這裡也有可能會造成衝突,為了避免不必要的麻煩,我們也將這裡註釋掉。
5. 驅動修改
gpio-keys是基於input子系統實現的一個通用按鍵驅動,該驅動基於platform_driver架構,實現了驅動和裝置分離,符合Linux裝置驅動模型的思想,也符合linux驅動實現模型,即driver和device分離模型。
一般按鍵驅動,都是基於gpio-keys進行開發的。驅動檔案如下:
vi OKT507-linux-sdk/kernel/linux-4.9/drivers/input/keyboard/gpio_keys.c
二、測試方法
終端視窗輸入evtest,選擇 7。
從上圖紅框可以看出,透過evtest測試工具將核心裝置讀取並列印裝置描述的事件,到這裡,GPIO按鍵就做完了,可以用它來實現很多的功能,比如說按一下切換燈的狀態,蜂鳴器響等。
當然不只是這些啦,我們還可以利用它去實現很多其他功能,歡迎各位聰明的工程師小夥伴自行發揮!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2918348/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何在全志T507開發板上架設Samba服務Samba
- 國產核心板全志T507助力消防系統升級
- 解決方案 | 基於全志T507核心板設計智慧加油機應用
- 全志 A64開發板設定qt程式自啟動QT
- 全志A40i開發板編譯環境的搭建編譯
- 全志T113s3工業開發板文章彙總S3
- 開發教程 | 全志T507去掉IO擴充套件晶片後,如何保留擴充套件引腳功能套件晶片
- 基於全志A40i開發板——Linux-RT核心應用開發教程(1)Linux
- 【iCore4 雙核心板_FPGA】例程二:GPIO輸入實驗——識別按鍵輸入FPGA
- 【iCore3 雙核心板_FPGA】例程三:GPIO輸入實驗——識別按鍵輸入FPGA
- 【iCore1S 雙核心板_FPGA】例程二:GPIO輸入實驗——識別按鍵輸入FPGA
- 飛凌工程師分享全志A40i系列開發板常用小知識工程師
- STM32使用定時器在普通gpio上模擬pwm-紅牛開發板LED1的亮度調節定時器
- 國產平臺之T507 開發板Android 安全策略漫談Android
- 技嘉主機板進入bios按哪個鍵 技嘉主機板u盤啟動按f幾iOS
- 利用鍵盤鉤子開發按鍵發音程式
- 全端開發之“兩端開發策略”
- 全志T3核心板在輸電線路影像檢測中的應用
- iOS上開發的一個安全鍵盤iOS
- 利用鍵盤鉤子開發按鍵發音程式 (轉)
- 為主頁新增一個漂亮的按鈕(上)(轉)
- 全志A40I sys_config.fex使用配置說明,全志A40I軟體開發
- 【AI應用開發全流程】使用AscendCL開發板完成模型推理AI模型
- 創龍TMS320C6748開發板———PSC配置及GPIO介紹S3
- VB “秒錶”窗體中有兩個按鈕“開始/停止”按鈕
- 在4核心8執行緒開發板上顯示德國國旗執行緒
- AndroidTV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽Android
- mac git命令按tab鍵自動補全MacGit
- 長按tableViewCell彈出選單欄貼上板View
- 建立工程,編寫一個介面有兩個按鈕的程式,通過定時器控制這兩個按鈕上的文字變化。定時器
- J2ME開發中的按鍵事件事件
- 14_一鍵燒寫QT程式到開發板QT
- Delphi元件開發-在窗體標題欄新增按鈕元件
- win10系統下不能連續按兩下鍵盤按鍵如何解決Win10
- 全志處理器,全志A40i晶片引數分享晶片
- 在Mac上,按Command-X鍵無法剪下怎麼辦?Mac
- Qt 模擬滑鼠事件-在兩個按鈕之間切換QT事件
- 在DataGrid頁首上新增全選的CheckBox控制元件控制元件