• linux驱动移植问题点


    1、I2C地址是否和其它IC冲突。通过改地址解决

      ——通常,以下三种情况的log表现相同:1、ic没连接到主板;2、i2c地址错误;3、该器件I2C地址与同组其它器件冲突

    2、I2C通信是否受到其它slaver影响。检测:示波器测I2C波形。排查:逐个去掉其它I2C部件,看本IC的I2C波形是否恢复正常。

    3、是否由于IC本身原因,某个寄存器写值后无应答。我调的这款LED的reset寄存器就是如此,导致probe 调用reset时报错,而其他寄存器正常。

    4、硬件接触是否良好。我遇到的是金手指和卡座接触不良,而且,该金手指上的另一个IC——距离传感器在较松的插入情况下可以正常工作,但LED不能。排查:将LED引脚直接接到卡座引脚,绕过金手指排线

    4.9、I2C可以通信后,若无法request_irq,检查该函数的第一个参数,通常是中断号出错。adb中可读取已注册的中断脚:cat proc/interrupts

    4.99、若probe成功,无法产生中断:测量IC中断脚电平,看是否有硬件中断产生,若有:再测量IC供电电平,若IC供电电平=中断电平,则会导致CPU无法产生中断事件。解决方案:硬件提高IC供电电平 或 IC厂降低中断电平

      可能用到的引脚操作函数:

      HAL_tlmm_SetOwner(pin,TLMM_OWNER_PERIPHERAL);
      gpio_direction_output(pin,level);

    4.999、看注册中断脚request irq之后,是否有enable_irq

    5、若某个GPIO无法拉高,检查GPIO配置,modem端需配置为TLMM_OWNER_MASTER,kernel端需配置为TLMM_OWNER_PERIPHERAL

    6、厂商提供的代码和本地平台可能会有版本差异性,一些宏定义、函数定义可能会不同,需要比对本地依赖库中的函数。

  • 相关阅读:
    CSS选择符详解之关系选择符篇
    linux基础命令入门
    asp.net 大数据导出execl实现分开压缩并下载
    一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
    Git学习笔记
    ssalesforce IoT
    根据生日自动计算年龄
    Salesforce简单练习案例
    JavaScript对象
    JavaScript函数
  • 原文地址:https://www.cnblogs.com/yiru/p/3360510.html
Copyright © 2020-2023  润新知