在全志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擴充套件晶片後,如何保留擴充套件引腳功能套件晶片
- 技嘉主機板進入bios按哪個鍵 技嘉主機板u盤啟動按f幾iOS
- 基於全志A40i開發板——Linux-RT核心應用開發教程(1)Linux
- 國產平臺之T507 開發板Android 安全策略漫談Android
- 全志T113-i開發板適配LVDS螢幕的過程
- STM32使用定時器在普通gpio上模擬pwm-紅牛開發板LED1的亮度調節定時器
- 飛凌工程師分享全志A40i系列開發板常用小知識工程師
- 基於米爾全志T527開發板的FacenetPytorch人臉識別方案PyTorch
- AndroidTV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽Android
- iOS上開發的一個安全鍵盤iOS
- 在Mac上,按Command-X鍵無法剪下怎麼辦?Mac
- 全志T3核心板在輸電線路影像檢測中的應用
- 【AI應用開發全流程】使用AscendCL開發板完成模型推理AI模型
- win10系統下不能連續按兩下鍵盤按鍵如何解決Win10
- 建立工程,編寫一個介面有兩個按鈕的程式,通過定時器控制這兩個按鈕上的文字變化。定時器
- Qt 模擬滑鼠事件-在兩個按鈕之間切換QT事件
- mac git命令按tab鍵自動補全MacGit
- 在某些主機板上,如技嘉(Gigabyte)和華碩(ASUS)微星(MSI)主機板,可以透過 BIOS 設定定時開機。以下是如何在這兩個品牌的主機板上設定定時開機的示例步驟。iOS
- 在4核心8執行緒開發板上顯示德國國旗執行緒
- 在RK3399開發板香橙派Orange Pi 4B上使用dockerDocker
- 14_一鍵燒寫QT程式到開發板QT
- Windows 配置新增右鍵選單 —— 在VSCode中開啟WindowsVSCode
- 線上教育平臺開發的幾個關鍵點
- 冒號電腦鍵盤怎麼打 冒號符號:在鍵盤上怎麼按符號
- cocos2d-x中新增TV按鍵響應
- 七彩虹主機板按f幾進入u盤啟動 七彩虹主機板按哪個鍵進入bios啟動刷機iOS
- android 7.1 遮蔽按壓兩次電源鍵(KEYCODE_POWER)開啟相機Android
- 全志A40I sys_config.fex使用配置說明,全志A40I軟體開發
- 一個按鈕,一鍵傳功!
- 在一臺電腦上執行兩個或多個tomcatTomcat
- SYD8821藍芽遙控器設計方案【在開發板上功能演示】藍芽
- 在米爾FPGA開發板上實現Tiny YOLO V4,助力AIoT應用FPGAYOLOAI