u-boot命令行调试LCD简单记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了u-boot命令行调试LCD简单记录相关的知识,希望对你有一定的参考价值。

  一般来说,调试uboot最好的方式是使用openjtag,因为uboot说到底就是一段裸机程序,只不过比较复杂。但是受实际环境限制,实际工作中使用较多的调试技巧主要有两种:打印和直接在命令行测试,打印比较常见也比较简单,直接使用printf即可,这里就以最近这段时间调试uboot下面lcd为例,简单说说命令行调试。

 

平台:

am335x,u-boot 2010.09,linux 3.10

问题:

由于此版本u-boot比较旧,没有整套framebuffer子系统框架,所以采取的是移植好官方裸机驱动,直接加入到u-boot编译,这样做虽然不符合u-boot和linux这种框架思想,但是简单又实用,比较让lcd能够显示比较重要,但是发现移植之后显示官方的图片是OK,显示其他的使用工具转换的确不正确,而是出现乱七八糟的彩条。

调试:

开始怀疑是时钟问题,但是对着CPU手册仔细看了看,似乎并没有问题,后面就怀疑图片转换有问题,然后就直接在u-boot界面使用命令进行了测试,最后发现,直接往显存写入内容,显示是没有问题,而是用工具转换而来的数值写入显存却不正确,然后更换了一个图片转数组工具,一切正常。下面是主要的调试过程,简单记录下,启动u-boot进入命令行界面后,然后依次按下面操作(此处显存地址为0x96fffffff,屏幕480*272,RGB565格式,因此整个屏幕需要内存为480*272*2字节):

1.检查显存数据是否正确
md 0x96fffffff 1000 // 查看显存的前1000个32bit数据
显示数据后,和图片转成的数据做对比,发现数据都是正确的
2.向显存写入内容,观察屏幕显示
mw 0x96fffffff 0x001f //RGB565-0x001f 写入2bytes全蓝,
观察屏幕显示为蓝色,由此确定向显存写入数据时,能够正确写入也能够正确显示,因此可以确定是图片转成的数据有问题,也就是格式不对,从而导致屏幕显示不正确。

最后总结一下:
调试u-boot,使用md和mw可以很方便查看内存情况,尤其分析内存数据时

以上是关于u-boot命令行调试LCD简单记录的主要内容,如果未能解决你的问题,请参考以下文章

在U-boot中让LCD填充纯色

七在U-boot中让LCD显示图片

uboot下的boot命令是啥意思

Linux系统移植:U-Boot常用指令(上)

U-Boot命令之信息查询命令

gdb调试命令