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

news/2024/7/7 19:16:13

目录

  • 一、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://lihuaxi.xjx100.cn/news/1554918.html

相关文章

async和await的用法

定义 async的定义 在mdn中,async的定义为: async function 关键字可用于定义表达式中的异步函数。 其实很简单,就是async关键字后面定义的函数会被转化为一个异步的函数 如下所示: function fn1(){return 同步}async function asyncFn(){return 异步}console.log(fn1())con…

苹果笔不用原装可以吗?好用的平板触控笔

由于Apple pencil的出世&#xff0c;给许多小伙伴带了很高的生产效率。但Apple pencil的昂贵&#xff0c;让许多小伙伴连连劝退&#xff0c;觉得只是偶尔写字&#xff0c;没有必要入手一支这么昂贵的笔&#xff0c;咱们国内也会很多做得相当不错的平替电容笔&#xff0c;但很多…

ElementPlus里的类型别名声明及使用

前言 最近刚开始使用ts&#xff0c;定义的变量总是不知道类型&#xff0c;特别是第三方库中&#xff0c;更是不知道有哪些类型&#xff0c;笨人本办法&#xff0c;遇到一个就记录一下&#xff0c;方便我下次使用查询 组件实例 我们通过组件的ref属性获取组件实例时&#xff0c;…

AI绘图提示词Stable Diffusion Prompt 笔记

基础 提示词分为正向提示词&#xff08;positive prompt&#xff09;和反向提示词&#xff08;negative prompt&#xff09;&#xff0c;用来告诉AI哪些需要&#xff0c;哪些不需要词缀的权重默认值都是1&#xff0c;从左到右依次减弱&#xff0c;权重会影响画面生成结果。AI …

APP稳定性测试工具:Monkey

一、Monkey 简介 Monkey 是一款 app 的自动化测试工具&#xff0c;monkey 是猴子的意思&#xff0c;所以从原理上说&#xff0c;它的自动化测试就类似猴子一样在软件上乱敲按键&#xff0c;猴子什么都不懂&#xff0c;就爱捣乱。Monkey 原理也是类似&#xff0c;通过向系统发送…

JVM——8.内存分配方式

这篇文章我们来讲一下jvm的内存分配方式 目录 1.概述 1.1jvm运行时数据区 1.2堆空间的分代 1.3对象分配的整体流程 2.具体的内存分配方式 2.1指针碰撞法 2.2空闲列表法 2.3Java虚拟机选择策略 3.小结 1.概述 我们前面在GC那篇文章中写了JVM的内存分配策略&#xff0…

苹果麻烦了,全球没有消费者愿意接受印度制造的iPhone

据外媒报道指印度制造的iPhone良率只有一半&#xff0c;以至于发出的货被质量工程师打回一半&#xff0c;由此引发欧洲消费者的抗拒&#xff0c;为安抚欧洲消费者&#xff0c;苹果表示欧洲市场的iPhone15将全数由中国制造供应&#xff0c;而印度制造的iPhone将在印度市场销售以…

【Python】自动化办公之路:word自动化实战宝典!

文章目录 前言一、环境安装二、使用步骤1.引入库2.读入数据 Python-docx 编辑已存在文档win32com 将 doc 转为 docxwin32com 操作 word总结 前言 使用Python操作word大部分情况都是写操作&#xff0c;也有少许情况会用到读操作&#xff0c;在本次教程中都会进行讲解&#xff0…