cmd_bootlogo.c运行过程
common/autoboot.c:593: disp_logo(0);
sprintf(cmd_str, "bootlogo %d 1 0 0 0", logo_id);
do_display函数
获取对应结构体,里面有各种参数
========================================================================
_BootJpdYuvCtrl:数据转换
把yuv444转换成yuv420,然后旋转数据也是在这里设置
===============================================================
_BootDispCtrl:显示logo
然后就完成了整套logo显示流程了!
总结:
disp_logo(0); //common/autoboot.c:5
->sprintf(cmd_str, "bootlogo 0 1 0 0 0");
->do_display
-> _BootJpdYuvCtrl
-> _BootLogoYuv444ToYuv420 //处理数据,旋转就是这里控制
-> _BootDispCtrl //分辨是什么屏幕类型,mipi,RGB,HDMI
->MHAL_DISP_InputPortSetAttr(pInputPortCtx, &stInputAttr);
->MHAL_DISP_InputPortFlip(pInputPortCtx, &stVideoFrameBuffer);
->MHAL_DISP_InputPortEnable(pInputPortCtx, TRUE);