项目平台 :
硬件平台是在BBB方案的基础上设计的,删除了hdmi,lcd驱动改用lvds接口,使用引脚LCD_DATA[15:0]及相关辅助引脚,进入差分驱动芯片DS90C365AMT,LVDS接口单6输出。其他基本没有改动什么。PDK版本:03.02.00.05,内核版本4.4.32 uboot和kernel的移植均在里面完成,原本是采用PDK内置的toolchain ,无奈在文件系统编译时候,TI给的编译器buildroot不支持,为了整体统一编译器,内核移植和文件系统使用linaro官网下载了PDK相同版本的toolchain-5.3,
lcd驱动部分,在omap2plus_defconfig配置的基础上的 参考Linux Core LCD Controller User Guide的说明,配置好了内核中LCDC DRM Display Drive的相关选项.dts配置完全copy am335x-evm.dts(尽管使用的不是800*480屏幕,为了排查屏幕参数配置不当的因素)。
另外:
实验现象:
应用基于QT5.6.3 ,使用linuxfb,编译时与内核使用的交叉工具链一致 gcc5.3,做一个简单的QT应用程序就会崩溃,要么segementation fault,要么内核直接挂掉,时间在几分钟到一两个小时不等。我的分析排查如下:
1:使用valgrind排查内存泄露,基本ok,程序很简单。就算换个空的widget工程模板,添加几个控件显示,简单的刷屏,无一行手写代码。程序仍然崩溃。但是运行的时间会长一些。我想应该跟应用代码关联不大了。
2:DDR不稳定也有可能,目前CPU已降频到600M DDR303M,ddr tuning, soft leveling也都参照论坛上steven liu 的帖子做过了。使用memtester stressapptest两种ddr 测试程序,跑一晚上也ok。
3:显示驱动framebuffer是参照am335x-evm.dts来做的,LCDC DRM Display Drive也做好了,网上有个和我类似现象的帖子bbs.csdn.net/.../390830998 以为有救了,结果无论我怎么配置dts 中的 blue-and-red-wiring 均无改善。QT源码中关于RGB调序的我就没做,现在暂时不管颜色显示是否正常,先稳定运行再说。但是LCD 驱动配置的可能性还是比较大。
4:文件系统,qt库完全copy PDK,内核用PDK中的工具链编译,再来,依然不行,QT库换版本,换GCC也无效。
折腾了好久了,此前在论坛发过一个相关内容帖子,当时以为是应用程序刷新过快堵塞了。实际上当时只是短暂的正常,并没有完全解决问题。
没啥思路了,希望TI的工程师给点建议,非常感谢。