精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ElfBoard技術貼|在NXP源碼基礎上適配ELF 1開發板的按鍵功能

ElfBoard ? 2024-07-10 09:54 ? 次閱讀

本次源碼適配工作是在NXP i.MX6ULL EVK評估板的Linux內核源碼(特定版本:Linux-imx_4.1.15)基礎上進行的。主要目標是調整功能接口引腳配置,以適應ELF 1開發板。接下來,將以按鍵功能的適配作為具體示例,深入解析整個適配的流程。

一、準備工作

NXP源碼路徑:ELF 1開發板資料包\07-NXP 原廠資料\07-1 NXP官方源碼\linux-imx-imx_4.1.15_2.0.0_ga.tar.bz2

1、將NXP源碼拷貝到開發環境home/root/work目錄下解壓

elf@ubuntu:~/work$ tar jvxf linux-imx-imx_4.1.15_2.0.0_ga.tar.bz2 elf@ubuntu:~/work$ cd linux-imx-imx_4.1.15_2.0.0_ga/ elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ ls

2、添加默認配置文件

將arch/arm/configs路徑下的imx_v7_mfg_defconfig復制一份,命名為imx6ull_elf1_defconfig:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ cp arch/arm/configs/imx_v7_mfg_defconfig arch/arm/configs/imx6ull_elf1_defconfig

3、添加ELF 1設備樹將arch/arm/boot/dts路徑下的imx6ull-14x14-evk.dts復制一份,命名為imx6ull-elf1-emmc.dts:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ cp arch/arm/boot/dts/imx6ull-14x14-evk.dts arch/arm/boot/dts/imx6ull-elf1-emmc.dts

打開arch/arm/boot/dts/Makefile,找到CONFIG_SOC_IMX6ULL,將imx6ull-elf1-emmc.dts添加到Makefile中:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vi arch/arm/boot/dts/Makefile

wKgZomaN5z-AGSyRAAf8Vzjsc0Y763.png

4、建立交叉編譯腳本

建立一個編譯腳本build.sh:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vim build.sh

添加以下內容,保存退出:

#!/bin/bash export CPUS=`grep -c processor /proc/cpuinfo` source /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi make distclean make imx6ull_elf1_defconfig make -j${CPUS} rm -rf ./.tmp make modules_install INSTALL_MOD_PATH=./.tmp/rootfs/ cd .tmp/rootfs/ tar -jcvf modules.tar.bz2 *

給予腳本權限:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ chmod 777 build.sh

二、適配按鍵

1、硬件原理

wKgaomaN55KAL2hCAASNGSaEL7U300.pngwKgaomaN58eAeVYeAAPx6h_fvm8762.png

2、IOMUX配置

從上圖可以看出GPIO5_4連接到了連接器的22腳,GPIO5_2連到了34腳,GPIO5_9連接到了43腳。接下來需要找到這幾個引腳在軟件上的信號名稱。

打開ELF 1開發板資料包\05-硬件資料\05-4 管腳分配表\ELF 1引腳復用對照表找到22、34、43引腳的信號名稱。

wKgZomaN5_-AHrOWAAJU9cOAKFQ104.png

34引腳信號名稱為SNVS_TAMPER2;

22引腳的信號名稱為SNVS_TAMPER4;

43引腳的信號名稱為SNVS_TAMPER9。

因為需要使用這幾個引腳控制按鍵,所以需要把它們復用成GPIO功能,在arch/arm/boot/dts/imx6ull-pinfunc-snvs.h中找到它們的宏定義,分別如下:

wKgaomaN6DWAEsuCAA1UORyLZp0520.png

打開設備樹文件arch/arm/boot/dts/imx6ull-elf1-emmc.dts,在&iomux_snvs節點下添加子節點pinctrl_keys:

pinctrl_keys: keysgrp { fsl,pins = < MX6ULL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x80000000 MX6ULL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x80000000 MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x80000000 >; };

效果如下:

wKgZomaN6F2AHbh4AARG-pjHYQc365.png

(注意:在IOMUX配置環節,一定要確保一個引腳只被復用為一個功能,如果同一個引腳在其它地方被復用成另一個功能,很可能影響到我們期望的功能。)

3、設備節點配置

在根節點下添加子節點gpio-keys:

gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_keys>; #address-cells = <1>; #size-cells = <0>; autorepeat; key1 { label = "KEY1"; linux,code = ; gpios = <&gpio5 4 GPIO_ACTIVE_LOW>; }; key2 { label = "KEY2"; linux,code = ; gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; }; key3 { label = "KEY3"; linux,code = ; gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; }; };

wKgZomaN6I-AP2C7AAZvzZoSJlw513.png

4、配置按鍵驅動編譯進內核

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ make imx6ull_elf1_defconfig elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ make menuconfig

找到以下位置,Keyboards驅動默認已經編譯進內核。

-> Device Drivers ->Input device support ->Keyboards

wKgaomaN6NeAREFdAAnK5IMWB0E125.png

5、編譯

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ ./build.sh

將編譯生成的zImage和imx6ull-elf-emmc.dtb拷貝到ELF 1開發板的/run/media/mmcblk1p1 路徑下:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/zImage root@172.16.0.175:/run/media/mmcblk1p1/ elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/dts/imx6ull-elf1-emmc.dtb root@172.16.0.175:/run/media/mmcblk1p1/

保存并重啟開發板:

root@ELF1~# sync root@ELF1~# reboot

三、按鍵測試

查看key設備對應的event事件:

root@ELF1:~# cat /proc/bus/input/devices

wKgZomaN6USAfmQ6AAbElvspIjU467.png

可以看到其對應的是event2,如果連接了其他設備,比如觸摸屏,event事件可能會有變化,請以實際為準。

終端輸入evtest命令,選擇event number為2,然后分別按下按鍵K1,K2,K3,會看到上報數據。

root@ELF1:~# evtest

wKgaomaN6XCAcRF6AAtK9168RtA118.png

可以看到KEY1上報的鍵值是28,KEY2上報的鍵值是103,KEY3上報的鍵值是108,與在設備樹中配置的鍵值一致。

至此,就完成了在NXP源碼基礎上適配ELF 1開發板的按鍵功能,期望這份詳實的指南能為正在閱讀的小伙伴帶來實質性的助益與啟發。在開發之旅上,愿我們攜手共進,探索無限可能。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6023

    文章

    44376

    瀏覽量

    628407
  • 嵌入式
    +關注

    關注

    5046

    文章

    18817

    瀏覽量

    298568
  • 開發板
    +關注

    關注

    25

    文章

    4771

    瀏覽量

    96178
  • 嵌入式開發板

    關注

    5

    文章

    78

    瀏覽量

    18672
收藏 人收藏

    評論

    相關推薦

    ELF 1技術|NXP源碼基礎上適配開發板按鍵功能

    ELF1開發板。接下來,我們將詳細闡述適配過程中關于按鍵功能實現的完整步驟。值得一提的是,ELF1
    的頭像 發表于 03-08 16:58 ?821次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|<b class='flag-5'>在</b><b class='flag-5'>NXP</b><b class='flag-5'>源碼</b><b class='flag-5'>基礎上</b><b class='flag-5'>適配</b><b class='flag-5'>開發板</b>的<b class='flag-5'>按鍵</b><b class='flag-5'>功能</b>

    如何在NXP源碼基礎上適配ELF 1開發板的PWM功能

    本次源碼適配項目是NXP i.MX6ULL EVK評估所搭載的Linux內核源碼(版本為Li
    的頭像 發表于 09-10 10:00 ?701次閱讀
    如何在<b class='flag-5'>NXP</b><b class='flag-5'>源碼</b><b class='flag-5'>基礎上</b><b class='flag-5'>適配</b><b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發板</b>的PWM<b class='flag-5'>功能</b>

    嵌入式學習-ElfBoard ELF 1板卡-nxp源碼基礎上適配ELF 1開發板的LED功能

    源碼適配即在NXP i.MX6ULL EVK評估對應的Linux內核源碼(linux-imx_4.1.15 版本)
    發表于 01-05 14:35

    飛凌嵌入式-ElfBoard-項目分享|基于ELF 1S開發板完成的物聯網開源項目

    方提供的移植文檔。 涂鴉云服務器建立好產品,完成功能定義,完成設備交互面板設計,移植完Tuya Link SDK,等一系列操作后,就可以讓ELF
    發表于 05-16 09:12

    飛凌嵌入式ElfBoard ELF 1板卡-NXP源碼基礎上適配ELF 1開發板按鍵功能

    的鍵值是103,KEY3上報的鍵值是108,與設備樹中配置的鍵值一致。 至此,就完成了NXP源碼基礎上
    發表于 07-03 09:07

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-NXP源碼基礎上適配ELF 1開發板按鍵功能

    的鍵值是103,KEY3上報的鍵值是108,與設備樹中配置的鍵值一致。 至此,就完成了NXP源碼基礎上
    發表于 07-04 09:11

    ELF 1開發板試用】1.開箱驗貨

    。 打開紙盒子,引入眼簾的是 ELF1 開發板,一張紀念卡,一份開箱必讀說明書。ELF1 開發板的標準配件包里有:一字螺絲刀、尼龍柱、Type-C轉接線、10P杜邦線和網線。 就拿 T
    發表于 11-21 14:20

    I.MX6ULL-ElfBoard ELF1板卡 獲取內核源碼的方法。

    行的適配,所以講解均以4.1.15版本內核為例。 (二)可以選擇使用git克隆,也可以選擇下載ZIP壓縮包 三、獲取ELF1開發板源碼 ELF1
    發表于 12-16 09:41

    嵌入式學習——ElfBoard ELF1板卡 獲取內核源碼的方法

    行的適配,所以講解均以4.1.15版本內核為例。 (二)可以選擇使用git克隆,也可以選擇下載ZIP壓縮包 三、獲取ELF1開發板源碼 ELF1
    發表于 12-16 09:44

    ELF 1技術|NXP源碼基礎上適配ELF 1開發板的LED功能

    本次源碼適配工作是NXPi.MX6ULLEVK評估的Linux內核源碼(特定版本:Linux-imx_4.1.15)
    的頭像 發表于 12-29 10:04 ?686次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|<b class='flag-5'>在</b><b class='flag-5'>NXP</b><b class='flag-5'>源碼</b><b class='flag-5'>基礎上</b><b class='flag-5'>適配</b><b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發板</b>的LED<b class='flag-5'>功能</b>

    如何將Go程序編譯到ELF 1開發板

    編譯并運行在ELF1開發板的。一、GoLand中配置(一)配置SSH連接Ubuntu虛擬機以及ELF1
    的頭像 發表于 01-29 10:42 ?385次閱讀
    如何將Go程序編譯到<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發板</b>

    ELF 1技術|如何移植Boa 到開發板

    Boa作為Web服務解決方案顯得尤為適宜。接下來,將跟各位小伙伴詳細介紹一下基于ELF1開發板移植Boa的方法。1、Boa官網下載源碼官網網址:Boadownlo
    的頭像 發表于 02-04 09:30 ?266次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如何移植Boa 到<b class='flag-5'>開發板</b><b class='flag-5'>上</b>

    ELF 1技術|如何將Python3.6.9移植到開發板

    ELF1開發板的Linux4.1.15eMMC鏡像中,默認預裝了Python2.7。為了適應更多應用場景,有些小伙伴可能需要移植其他版本的Python,下面將以Python3.6.9為例詳細介紹
    的頭像 發表于 02-22 14:06 ?320次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如何將Python3.6.9移植到<b class='flag-5'>開發板</b><b class='flag-5'>上</b>

    ELF技術|如何在開發板實現對Java的支持

    Java作為一種功能強大且廣泛應用的編程語言,具有廣泛的適應性和實用性。ELF1開發板上集成Java支持,無疑將賦予嵌入式開發者更廣闊的選
    的頭像 發表于 03-13 16:47 ?396次閱讀
    <b class='flag-5'>ELF</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如何在<b class='flag-5'>開發板</b><b class='flag-5'>上</b>實現對Java的支持

    ElfBoard技術|如何在ELF 1開發板搭建流媒體服務器

    流媒體服務器是一種專門用于傳輸實時數據流的服務器軟件,廣泛用于視頻直播、視頻會議、音頻播放等應用場景。嵌入式開發領域,將流媒體服務器部署到開發板可以實現諸如視頻監控、實時數據傳輸等
    的頭像 發表于 08-20 14:48 ?373次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如何在<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發板</b><b class='flag-5'>上</b>搭建流媒體服務器