本文共 2097 字,大约阅读时间需要 6 分钟。
1:input输入设备驱动移植
共性特点:
驱动层望hal层 输出input事件。1> 触摸屏驱动移植
之前碰到过换了个适配器电源,触摸屏就好了。 而且触摸芯片会受电磁干扰等。 而且对Android系统的触摸事件往上面输入的框架顺序很熟悉,比如在hal层会到哪里。2>av接口的显示器遥控器驱动
自己写了个遥控器驱动程序。不断读串口芯片,有遥控器发来的信号数据后,把它转成input事件输出到上层Android系统上。 2:音频codec 矽望经历: 1:从无到有移植了一款sgtl5000 codec芯片的驱动,把它从imx6 android 4.3上移植到rk3288 android 4.4上,测试speaker播放声音已经成功。 耳机插孔 --> 这两个链路都连接到 codec上面,然后codec会由i2s和i2c通道连接到imx6上。 speaker --> 功放芯片 --->2:就是测试耳机里面有无pop音出现,有的解决方法应该是在Android的hal层,里面具体对pcm音频流进行操作时,在具体播放pcm 流之间适当进行mute操作。
3:就是在对日的平板电脑定制项目中,有个音频track无法调节音量大小,所以比葫芦画瓢,在Android的fwk层,找到相关的配置文件,修改后,可以在Android图形界面上, 加入一个滑动旋钮,可以调节该音量大小了。博泰经历:
车载公司的音频设备更复杂些。 一种是输入音频流,中间经过讯飞的语音识别芯片,再接入codec,再接入cpu。 还有一种是carlife车机互联项目,手机通过usb和车机相连,然后手机的音频流输入到车机上,然后经过车机的codec,最后从车机的speaker出来。1:carlife项目出现车机播放carlife音乐,声音有很重的pop音。最后经过在Android系统的不同地方记录pcm音频数据流的方法,再回放该Android系统不同阶段位置处的音频流,
发现是Android系统里面hal层的carlife模块造成的声音出问题了。 2:输入音频流,爆过一个车机不能正常识别语音输入的问题。结果用示波器查板子上各个位置的输入音频流是否正确,最后发现是讯飞芯片的问题。 3:车机在经过carlife播放音乐时,发现播放音乐有pop音,最后定位到是Android播放音乐的前端线程位于后台group里面,是Android cgroup分组不当导致的。 sdio接口的 wifi驱动移植在希望的imx6开发版上加入新的wiki驱动,然后通过搞gpio,还有串口层测试wiki是否正常,还有Android hal层测试WiFi是否正常,。
还有跟硬件人员一块电表,示波器测量WiFi的pin脚,看看是否正常,还有跟fae交流。 最后终于WiFi移植好了。 ddr校准富士通经历:
移植好uclinux的fm3开发版上,执行某些shell命令时,会出错。当初采用板子交叉验证的方式,最后一层层的排查, 靠着uboot里面的内存测试命令,最后发现是sdram驱动的问题。sdram驱动地址线有问题,没有配对正确的寻址范围。 希望经历: 新板子的ddr必须做校准,不做校准的话,板子上Android系统会莫名其妙地崩溃掉。 用飞思卡尔的方法做校准。 有时候ddr会工作在低ddr频率下面没问题,但是高频率ddr下面就有问题了。涉及到uboot的启动。uboot启动的第一阶段和第二阶段。第一阶段在imx6的sram里面执行,里面会有ddr初始化程序。
ddr搞好后,会接着把uboot的第二阶段代码拷贝到ddr中,在ddr中执行。 该阶段也可以进行ddr测试,测试下板子的ddr工作是否正常。博泰经历:
ddr校准出问题了,可以根据校准的出错,判定出是imx6的哪根地址线或者数据线的问题。 而且还要跑下高低温的ddr 测试。 lvds,av接口,hdmi接口和mipi接口的显示屏驱动移植。就是imx6芯片上有上面这些接口的pin脚,然后pin脚配置好gpio后,测试下gpio功能正常后(陈晓辉有独特的测试方法),
然后示波器看到有图像信号输出,图像信号会发给fae,让他们确认是否正确。有错误的话,要怀疑是板子问题,还是示波器问题。 期间,终于论证是示波器的问题了(因为我们的示波器采样频率只有300-400Mhz).然后mipi屏比较特殊点,得主动发送mipi唤醒命令(在qq上问别人要到个mipi屏的i2c配置发送命令代码),其实这个完全可以问fae要的。
(主要还是当时自己比较嫩,比较喜欢钻研,没有重视交流,不过后来这个缺点已经改了。)还解决过一个av屏幕的图像显示上下跳动或者闪烁的问题。最后排查到是imx6 fb显示驱动某些代码模块没考虑到并发重入的情况,就是没有加锁呗。
其实我们还有个work around的方法,在我们的脚本开启显示屏显示功能的地方前面,加上sleep 3s操作。 会拿电表,示波器和硬件人员一块测试看看板子的触摸芯片是否能够正常工作,当然是要看spec了。转载地址:http://qkrvb.baihongyu.com/