3288S Android11 适配红外遥控功能(超详细)

news2024/10/3 8:30:18

目录

  • 一、rk3288平台红外遥控介绍
  • 二、原理图分析
  • 三、配置设备树并使能红外遥控功能
  • 四、打开红外打印功能,查看红外遥控的用户码和键值
  • 五、将查看到的红外遥控用户码和键值添加到设备树和.kl文件
  • 六、Android红外遥控.kl文件映射知识和使用添加新的.kl文件
  • 七、补充(设备树中`interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;`属性解释)

一、rk3288平台红外遥控介绍

在这里插入图片描述
  这个文档路径在a\RKDocs\common\PWM\Rockchip_Developer_Guide_PWM_IR_CN.pdf

二、原理图分析

在这里插入图片描述

三、配置设备树并使能红外遥控功能

  据上面原理图分析可知,IR_INT红外接口使用的是PWM2,因此设备树配置对应的PWM2,如下:
在这里插入图片描述
  然后开相关的宏,开启红外遥控功能:

CONFIG_ROCKCHIP_REMOTECTL=y
CONFIG_ROCKCHIP_REMOTECTL_PWM=y

  而相关的驱动文件路径在kernel/drivers/input/remotectl/rockchip_pwm_remotectl.c

四、打开红外打印功能,查看红外遥控的用户码和键值

  查看红外接收的红外遥控用户码和键值,需要先内核中的红外接收打印功能,如下:
echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print
  那么如何查看打印信息呢?查看内核打印信息有两种方法,分别是在adb中使用cat proc/kmsg命令查看内核打印信息和直接通过串口查看内核打印信息,现象如下:
在这里插入图片描述

五、将查看到的红外遥控用户码和键值添加到设备树和.kl文件

  那么需要先知道使用的是哪个.kl文件,首先通过getevent查看输入设备名称,然后通过dumpsys input命令查看输入设备管理器中的事件中心状态对应的输入设备信息查看到使用的输入设备布局文件,如下:
在这里插入图片描述
在这里插入图片描述
  通过以上可知,输入设备名称为“ff680020.pwm”。
在这里插入图片描述
  上图解释:如果没有指定的KeyLayoutFile,就会使用默认的Generic.kl文件的,如果需要添加自定义的键值,那么相应地也要在使用的.kl文件中添加该键值。

六、Android红外遥控.kl文件映射知识和使用添加新的.kl文件

感谢这位哥的博客,该博客参考链接请点击


  关于.kl文件的解释,如下图:
在这里插入图片描述

七、补充(设备树中interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;属性解释)

  GIC_SPI :表示共享外设中断。
  78:中断号。
  IRQ_TYPE_LEVEL_HIGH:中断触发类型为高电平触发。

  在Rockchip_RK3288_TRM_V1.2_Part1-20170321.pdf文档有对中断号的描述,如下图所示:
在这里插入图片描述
  这里我解释一下,RK3288拥有32个私有中断,而其中有3个私有中断是外设中断,其余的112个都是共享外设中断。而本次使用的PWM中断属于共享外设中断,如下图所示:
在这里插入图片描述
  红外遥控使用的是PWM通用的共享外设中断,也就是RK_PWM,中断号110,很疑问的是:为什么设备树上写的终端号是78呢?其实设备树上写的是共享外设中断的索引,也就是说78的由来是110-32而得来的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Learn Prompt-Prompt 高级技巧:思维链 Chain of Thought Prompting

Jason Wei等作者对思维链的定义是一系列的中间推理步骤&#xff08; a series of intermediate reasoning steps &#xff09;。目的是为了提高大型语言模型&#xff08;LLM&#xff09;进行复杂推理的能力。 思维链通常是伴随着算术&#xff0c;常识和符号推理等复杂推理任务出…

【大数据】Doris 构建实时数仓落地方案详解(三):Doris 实时数仓设计

本系列包含&#xff1a; Doris 构建实时数仓落地方案详解&#xff08;一&#xff09;&#xff1a;实时数据仓库概述Doris 构建实时数仓落地方案详解&#xff08;二&#xff09;&#xff1a;Doris 核心功能解读Doris 构建实时数仓落地方案详解&#xff08;三&#xff09;&#…

GDB 调试 Coredump

在计算机系统中运行程序时&#xff0c;问题经常发生&#xff0c;而且通常很难找到根源。幸运的是&#xff0c;有一种叫做 coredump 的文件可以帮助我们找到问题的源头。本文将解释什么是 coredump&#xff0c;它是如何工作的&#xff0c;以及如何利用它来定位问题。 01 什么是…

2023/9/19 -- C++/QT

作业 1> 登录框实现注册功能&#xff0c;将注册的结果放入文件中&#xff08;君子作业&#xff09; 2> 完成文本编辑器的保存工作 void Widget::on_saveBtn_clicked() {QString fileName QFileDialog::getSaveFileName(this,"另存为","./","…

R的一些奇奇怪怪的功能

1. 欧氏距离计算 df <- data.frame(x 1:10, y 1:10, row.names paste0("s", 1:10)) euro_dist <- as.matrix(dist(df))2. 集合运算 union(x, y) # 并集 intersect(x, y) # 交集 setdiff(x, y) # 只在x中存在&#xff0c;y中不存在的元素 setequal(x, y)…

Linux内核源码分析 (B.3) 深入理解 Linux 物理内存分配全链路实现

Linux内核源码分析 (B.3) 深入理解 Linux 物理内存分配全链路实现 文章目录 Linux内核源码分析 (B.3) 深入理解 Linux 物理内存分配全链路实现[toc] 前文回顾1\. 内核物理内存分配接口2.规范物理内存分配行为的掩码 gfp\_mask3\. 物理内存分配内核源码实现3.1 内存分配行为标识…

HAProxy集群与常见的Web集群软件调度器对比

HAProxy集群与常见的Web集群软件调度器对比 1、常见的Web集群调度器2、Haproxy基本介绍2.1Haproxy是什么&#xff1f;2.2Haproxy的特性2.3Haproxy常用的8种负载均衡调度算法2.3.1轮询&#xff1a;RR&#xff08;Round Robin&#xff09;2.3.2最小连接数&#xff1a;LC&#xff…

【操作系统笔记】链接阶段ELF文件

链接阶段&#xff1a;符号解析 链接阶段主要包含&#xff1a; 符号解析重定位 一般情况下&#xff0c;每个 C 文件可以看成一个程序模块&#xff0c;比如下边的main.c就是一个程序模块 #include <stdio.h>extern int shared; int sum(int *a, int n); int array[2] …

关于RISC-V安全性的全面综述

目录 摘要引言RISC-V安全综述通用平台的安全要求信任的根源与硬件安全模块OTP管理模块安全内存对称加密&#xff08;如AES&#xff09;引擎不对称加密[131]&#xff08;例如&#xff0c;公钥RSA&#xff09;引擎HASH/HAMC引擎随机数/位生成&#xff08;例如TRNG[136]&#xff0…

滴滴 OrangeFS 数据湖存储关键技术揭秘!

2015年&#xff0c;滴滴为解决小文件和图片的存储&#xff0c;成立 GIFT 小对象存储项目。伴随着业务不断成长&#xff0c;我们面临的挑战也越来越多&#xff0c;经历多次非结构化存储架构演进&#xff0c;具体如下图所示&#xff1a; 随着公司不断发展&#xff0c;滴滴的业务有…

基于Java+SpringBoot+Vue的即可运动健身器材网站设计与实现

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

Spring Boot常见面试题

Spring Boot简介 Spring Boot 是由 Pivotal 团队提供&#xff0c;用来简化 Spring 应用创建、开发、部署的框架。它提供了丰富的Spring模块化支持&#xff0c;可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能&#xff0c;降低了复杂性&#xff0c;同…

ClickHouse进阶(十九):clickhouse管理与运维-权限管理

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅&#xff1a;拥抱…

MySQL数据库——索引(1)-概述以及B-Tree结构

目录 索引概述 介绍 优缺点 索引结构&#xff08;1&#xff09; 介绍 二叉树 B-Tree 索引这一个章节将分为以下几个部分来学习&#xff1a; 索引概述索引结构索引分类索引语法SQL性能分析索引使用索引设计原则 索引概述 介绍 索引&#xff08;index&#xff09;是帮助M…

基于SSM的星空游戏购买下载平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

RocketMq(四)消息分类

一、普通消息 1、同步发送消息&#xff1a;指的是Producer发出⼀条消息后&#xff0c;会在收到MQ返回的ACK之后才发下⼀条消息。该方式的消息可靠性最高&#xff0c;但消息发送效率低。 二、顺序消息 三、延时消息

JAVAAndroid实现MQTT上位机软件功能-订阅主题与发布主题

一、前言 本文我们将介绍Android或JAVA程序作为MQTT客户端连接MQTT服务器并订阅主题报文并发布主题报文&#xff0c;由于我的Android使用的也是JAVA语言&#xff0c;因此下面我们将使用IDEA完成JAVA程序&#xff0c;以实现订阅主题和发布主题的功能&#xff0c;该程序也可在后期…

MQ - 08 基础篇_消费者客户端SDK设计(下)

文章目录 导图Pre概述消费分组协调者消费分区分配策略轮询粘性自定义消费确认确认后删除数据确认后保存消费进度数据消费失败处理从服务端拉取数据失败本地业务数据处理失败提交位点信息失败总结导图 Pre

Linux系统编程(会话和进程)

文章目录 前言一、会话的概念二、会话和终端的区别三、终端进程组标识四、创建会话总结 前言 本篇文章我们来讲解会话和进程的概念&#xff0c;会话大家可能比较少见&#xff0c;他的英文名称叫session。 一、会话的概念 在Linux中&#xff0c;会话&#xff08;Session&…

9月15日上课内容 Zookeeper集群 + Kafka集群

Zookeeper 本章结构 Zookeeper 概述 Zookeeper 定义 *&#xff08;了解&#xff09; Zookeeper是一个开源的分布式的&#xff0c;为分布式框架提供协调服务的Apache项目。 Zookeeper 工作机制 *****&#xff08;非常重要&#xff0c;需要掌握&#xff09; Zookeeper从设计模式…