• 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可以很方便查看内存情况,尤其分析内存数据时

  • 相关阅读:
    caffe学习笔记(1)安装
    windows下遍历文件夹
    图像处理之OpenCV
    OpenCV的安装和使用
    使用cpplint检测代码规范
    图像处理之原理
    Python 在cmd中import模块成功,但是在jupyter notebook中No module xxx found
    Win10上使用VS2015编译Caffe2
    Win10, VS2017环境下OpenCV3.4.2的配置
    C++ main函数的参数
  • 原文地址:https://www.cnblogs.com/Ethan-Gao/p/7450767.html
Copyright © 2020-2023  润新知