0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

只需5步,教你添加GPIO按键——飞凌教程

飞凌嵌入式 2022-10-17 14:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将为大家介绍如何在飞凌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

pYYBAGNM0lyAC3miAAAeAmBgCG8226.png

2. 添加key节点

添加结点需要我们到设备树中进行添加,设备树是一个描述硬件的数据结构,甚至你可以将其看成一个大结构体(这个结构体就是平台,成员就是具体的设备),将硬件的配置从linux内核的源码中提取出来。

下面打开我们的T507设备树文件,如下:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

pYYBAGNM0lyAIeRQAAArPkS26ww202.png

其中按键键值设置如下。

poYBAGNM0luAS-uoAAAVUZbCktg004.png

相关键值可通过查看input-event-codes.h文件确定。

vi OKT507-linux-sdk/kernel/linux-4.9/include/uapi/linux/input-event-codes.h

poYBAGNM0lyAM6_sAAAVFykAKbM456.pngpoYBAGNM0lyAfkhtAAAQAstjo_Q043.png

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

pYYBAGNM0lyAT-iKAAARYiQfzAU649.png

4. 关闭冲突功能

因为有些功能结点使用的引脚与我们这次复用的引脚发生冲突,会发生引脚不生效的错误,所以我们一定要检查好,然后将其关闭。

如下打开设备树文件:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

poYBAGNM0lyAG6cUAABF-VcBCW0676.pngpoYBAGNM0lyAbBcHAAAVQURMk_0614.png

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

注意:

因摄像头csi复用的引脚与我们这里的冲突,虽然前面将状态disabled了,pinctrl这里也有可能会造成冲突,为了避免不必要的麻烦,我们也将这里注释掉。

pYYBAGNM0l2AdbvXAABc9HA3nkM580.png

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

poYBAGNM0l2AE53yAAAUNSwqy5U695.pngpoYBAGNM0l2AF8SFAAAetbXvkoE328.pngpYYBAGNM0l2AE59wAAArlZ50Jtc681.pngpoYBAGNM0l2AQw80AAAsch6Xa6M661.pngpYYBAGNM0l2AKIvbAAAkauofL_s931.png

二、测试方法

终端窗口输入evtest,选择 7。

pYYBAGNM0l2AEU48AABWTXP8OBw298.png

从上图红框可以看出,通过evtest测试工具将内核设备读取并打印设备描述的事件,到这里,GPIO按键就做完了,可以用它来实现很多的功能,比如说按一下切换灯的状态,蜂鸣器响等。

当然不只是这些啦,我们还可以利用它去实现很多其他功能,欢迎各位聪明的工程师小伙伴自行发挥!

以上就是小编为大家带来的在飞凌OKT507-C开发板上添加GPIO按键的全过程。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GPIO
    +关注

    关注

    16

    文章

    1337

    浏览量

    56686
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式OK1126B-S开发板】板载原生Qt程序开发体验

    hello world程序编译下有没有问题。没问题的话就可以进行下一了。 Qt配置 开发环境中是包含Qt全套组件的,Qt版本是5.15。是一个非常成熟的版本,另外嵌入式还为用户提供了一个方便就是
    发表于 06-03 11:59

    现场直击|精灵(ElfBoard)亮相第64届高博会,赋能高等教育强国建设

    5月22日,第64届中国高等教育博览会(高博会)在南昌绿地国际博览中心盛大启幕。嵌入式旗下教育品牌精灵(ElfBoard)亮相B1-
    的头像 发表于 05-22 17:05 1764次阅读
    现场直击|<b class='flag-5'>飞</b><b class='flag-5'>凌</b>精灵(ElfBoard)亮相第64届高博会,赋能高等教育强国建设

    嵌入式T153开发板试用】初识嵌入式T153开发板

    0.4mm,LGA 封装引脚间距 0.47mm),用户可根据场景灵活配置硬件,配套的 OK153-S 开发板进一优化接口布局,简化二次开发流程。 这是嵌入式T153开发板的核心板介绍: T153
    发表于 05-20 20:08

    2026 CPSE现场直击,嵌入式智塑充电桩交互新体验

    5月13日,第五届上海国际充换电与光储充展览会(CPSE)于上海汽车会展中心正式启幕!嵌入式重磅亮相本次行业盛会,携全新LVGL充电桩人机交互等动态演示方案及全系列嵌入式核心产品精彩展出。
    的头像 发表于 05-14 10:23 2464次阅读
    2026 CPSE现场直击,<b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式智塑充电桩交互新体验

    嵌入式RV1126B开发板试用体验】初识嵌入式RV1126B开发板试

    这几天刚收到嵌入式RV1126B开发板,带大家先认识一下这块开发板,收到的开发板如下图。 开发板有主板和核心板组成,开发板布局非常合理,元件排列的整齐漂亮,做工非常的精致,接口也非常丰富,接口
    发表于 04-13 17:27

    昉·星光开发板按键处理

    路检测过程。直到检测完成。因为检测的速度很快,所以可以较为准确的确定具体的按键。 这样检测的好处在于,只需要n+m根线,即可检测n*m个按键,极大了减少了开发板上GPIO口的占用。 注
    发表于 03-26 06:31

    精灵(ElfBoard)技术贴|如何在ELF-RK3506开发板上实现GPIO复用

    2026年全国大学生嵌入式芯片与系统设计竞赛报名已正式启动。本次瑞芯微&嵌入式赛题共设置了三个参赛平台(ELF2开发板、ELF-RV1126B开发板、ELF-RK3506开发板)供选手
    的头像 发表于 03-16 14:55 6619次阅读
    <b class='flag-5'>飞</b><b class='flag-5'>凌</b>精灵(ElfBoard)技术贴|如何在ELF-RK3506开发板上实现<b class='flag-5'>GPIO</b>复用

    嵌入式RV1126B开发板】+基本功能测试篇(1)

    嵌入式RV1126B开发板在出厂时,已配置了相应系统程序,并内置了丰富的命令行工具可供用户使用,为此可通过串口超级终端来进行相应的功能测试。 我们可以将该测试分成两类,即内核性能及状态的测试
    发表于 03-05 12:25

    【正式来袭】2026年嵌赛——瑞芯微 嵌入式赛题解读

    2026年全国大学生嵌入式芯片与系统设计竞赛应用赛道正式开启!嵌入式作为本次竞赛的协办单位之一,联合瑞芯微推出专属赛题,同时,嵌入式将充分发挥其在嵌入式领域的深厚积累,为参赛的
    的头像 发表于 02-25 09:51 1199次阅读
    【正式来袭】2026年嵌赛——瑞芯微 <b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式赛题解读

    嵌入式启动LPDDR5升级战略,破局供应难题

    嵌入式现已完成对RK3588及RK3576系列核心板产品向LPDDR5内存升级的全面适配与验证,并且后续将把此项升级逐步拓展至更多平台。
    的头像 发表于 01-16 08:06 1.2w次阅读
    <b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式启动LPDDR<b class='flag-5'>5</b>升级战略,破局供应难题

    还在用PDF文档查资料?嵌入式「产品在线文档」让您的开发效率狂飙

    PDF文件定位问题。 嵌入式在线文档通过结构化知识图谱实现\"关键词秒级检索+多维度匹配\"。 使用方式非常简单,只需3: ①用户根据芯片品牌找到自己使用的产品; ②然后按快捷键
    发表于 09-26 08:57

    【作品合集】嵌入式OK527N-C开发板测评

    嵌入式OK527N-C开发板测评作品合集 产品介绍: OK527-C开发板采用核心板+底板分体式设计,共320个引脚,采用4个80Pin板对板连接器的方式将处理器的功能引脚以最便利的方式引出,并
    发表于 09-22 15:54

    嵌入式2026届校园招聘正式启动!

    嵌入式2026届校园招聘正式启动!
    的头像 发表于 09-19 08:03 1564次阅读
    <b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式2026届校园招聘正式启动!

    嵌入式2025上半年新品盘点

    本篇文章,我们以发布时间为序,全面回顾一下嵌入式在2025上半年已经推出的6款新品矩阵。
    的头像 发表于 07-11 13:38 2439次阅读
    <b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式2025上半年新品盘点

    T527N开发板试用】T527N开发板开箱评测

    很高兴收到嵌入式申请的T527N开发板,板子的正反面如下图所示: 可以看到,板子上面的资源非常的丰富,有CAN,485, SIM卡槽,4G模块,WIFI/Bluetooth,
    发表于 07-04 11:43