码迷,mamicode.com
首页 > 其他好文 > 详细

SPI驱动调试感悟

时间:2019-01-22 22:59:25      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:dts   没有   调试   时间   dia   uboot   驱动调试   优雅   除了   

最近一段时间,在TX1平台的uboot中添加一个spi接口的液晶显示屏的驱动。本来以为是一项简单的工作,因为:

  1、相同的驱动在其他平台的uboot中已经添加过了

  2、内核中的驱动也是验证可用的,所以硬件上也是没有问题。

但实际进行下来,却花了一个月的时间,因此有些感悟,除了抱怨“巨坑”的Nvidia软件水平之外:

  1、Device Tree是一个好东西,可以让人高效、优雅的“配置”驱动。

  2、第一条成立的条件是,驱动是正确完备的,Device Tree本身并不能帮助解决驱动中的BUG,某些时候反而是一些阻碍。

  3、驱动,从本质上讲,就是配置一些硬件寄存器,比上层应用简单得多。

        4、嵌入式软件工程师要勇于对照数据手册,独立的实现设备驱动。

 

吐槽一下问题的原因,uboot中spi2的驱动不能正常工作的原因是电源管理相关的寄存器没有配置,但是数据手册里面没有这方面的说明,问了技术支持也表示不清楚。内核里能给运行的驱动里也没有这方面的配置,所以无法参考。

最后解决问题的方法是,在内核里写一个最简单版本的初始化spi的驱动(只有一个函数,只读写寄存器),不涉及任何dts、driver platform。然后把这个驱动沿着start_kernel函数的内核启动顺序放置,看看在哪些点能正常运行,哪些时间点能够重现uboot的现象,从而找出在此期间内核代码所做的哪一步操作影响了spi2的运行。

 

SPI驱动调试感悟

标签:dts   没有   调试   时间   dia   uboot   驱动调试   优雅   除了   

原文地址:https://www.cnblogs.com/djw316/p/10306305.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!