linux imx8mm 漏中断问题 & linux遥控器驱动调试流程

前言

工作中遇到了linux中遥控器驱动无法触发足够数量的中断,导致无法正常解码和工作。
环境:安卓 linux内核版本4.14.98
编译体系:ninja
核心板:NXP imx8mm evk

NXP的imx8系列SOC应用在嵌入式产品上性能绝对是非常强大的,中断触发能力、中断处理能力能满足绝大部分需求,本不该出现中断未能及时触发或者中断处理不及时导致遗失下一次中断的问题,但是在工作中遇到了遥控器中断被丢失,导致无法遥控器NEC信息解码失败,无法接收到遥控器信号。

============================================
此贴首先直接指出解决方法,然后详细描述遥控器驱动的移植与调试过程。

核心问题描述:移植遥控器驱动后,硬件上用示波器能看到符合NEC协议的脉冲信号,但是驱动里加了DEBUG信息并没有解码成功,在中断处理函数中加了计数,发现实际触发的中断次数小于收到的次数
漏中断原因:CPU频繁进入深度idle状态
解决方法:修改设备树中idle-states中的中相关参数,NXP官方提供的代码4.14.98版本的设备树如下:


cpus {
   
		idle-states {
   
			entry-method = "psci";
			CPU_SLEEP: cpu-sleep {
   
				compatible = "arm,idle-state";
				arm,psci-suspend-param = <0x0010033>;
				local-timer-stop;
				entry-latency-us = <1000>;
				exit-latency-us = <700>;
				m
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值