• 【原创】高通平台camera调试小技巧


          调试camera的时候,有些时候LCD或许还不能正常工作,或则UI尚未完成,而我们却想看到camera拍摄到的图像,这时就可以借助Trace32的强大功能。当然,前提是你可以启动camera。^_^
          首先,我们要确保sensor已经正常工作了,可以把断点设置在OEMCamera_CameraLayerCB()这个函数,它是一个总体的回调函数,包括收到帧事件,所以如果此函数断点反复的被执行到,那么说明sensor有数据(帧)传上来,如图:

          
          在断点被执行到后,打开"Stack ”,查看函数的调用关系,可以看到camera_process_qdsp_msg()里面的一个参数为buf = 0x108b3af8,这个就是存放预览图片buffer的地址,得到这个buffer以后就可以在TRACE32里输入如下命令: data.image 0x108b3af8 128. 160. /rgb565le,就可以看到buffer中的预览图像:



          在使用这条命令时,有几点需要说明的。1.我们在camera_process_qdsp_msg()里面获得的buffer的地址可能前一次得到的与后一次得到的不同,我们直接用TRACE32查看这2个地址会发现,其中一个的内容是固定的,而另外一个是一直在跳变的,即一个是保存断点瞬间的预览图像,而另外一个是实时变化的图像。所以如果我们在输入命令的参数里面设置为变化的地址,那么我们在PC上就可以看到sensor移动时候的实时效果了。
    2. 还有一点就是输入命令时候指定的image的大小一定要跟我们设置的预览大小一致,也就是跟LCD上显示的大小一致,比如前面调试的项目用的LCD是160*128,因此参数也必须是128. 160. ,否则就看不到完整的图像。
          
  • 相关阅读:
    IDEA 翻译插件网络错误
    win10 商店无法访问网络
    java 将中缀表达式转换成后缀表达式(逆波兰表达式)
    队列(Queue)
    单向链表
    Linux学习笔记2--------用户和组
    Linux学习笔记1-----------打包压缩,Vim
    如何修改主机名
    Linux的rpm软件包和yum软件包和wget
    Fiddler抓取电脑,手机https数据
  • 原文地址:https://www.cnblogs.com/hengfeng/p/1540830.html
Copyright © 2020-2023  润新知