当前位置:   article > 正文

RK3399 驱动开发 _ 09 - mipi-dsi 开机 logo 与开机动画_rk3399 kernel播放开机动画

rk3399 kernel播放开机动画


前言

RK3399平台开发过程中,可能需要定制开机logo及开机动画。本文旨在介绍android 系统的logo 显示部分。

开机logo一般有2种:静态和动态。Android 开机时共有三种logo,如下:
 - 1. uboot logo 显示
 - 2. kernel logo 显示
 - 3. Android 开机动画显示
一般情况下将前两幅图做成一样的,第三个就是开机动画部分。
(uboot显示logo一般可以不做,加快android启动速度)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 运行环境:
系统:Android8.1
内核 : Kernel 4.4.167
u-boot:2014.10
显示接口:MIPI-DSI
  • 1
  • 2
  • 3
  • 4

一、u-boot 及 kernel logo 显示

1. logo 显示及替换

1. u-boot logo 和 kernel  logo 均在 kernel / 目录下:
u-boot logo :kernel/logo.bmp
kernel logo :logo_kernel.bmp

说明:
1.若logo.bmp 与 logo_kernel.bmp 采用同一logo图片则可以无缝衔接。
2.若需定制开机logo 图片,只需替换kernel/logo.bmp和kernel/logo_kernel.bmp,同时在设备树中修改logo的显示模式(居中或者全屏)。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

mipi-dsi logo 居中模式dts 配置:

&display_subsystem {
	status = "okay";

	ports = <&vopb_out>, <&vopl_out>;
	logo-memory-region = <&drm_logo>;
	secure-memory-region = <&secure_memory>;
	route {
		route_hdmi: route-hdmi {
			status = "disabled";
			logo,uboot = "logo.bmp";
			logo,kernel = "logo_kernel.bmp";
			logo,mode = "center";
			charge_logo,mode = "center";
			connect = <&vopb_out_hdmi>;
		};

		route_dsi: route-dsi {
			status = "okay";
			logo,uboot = "logo.bmp";
			logo,kernel = "logo_kernel.bmp";
			logo,mode = "center";
			charge_logo,mode = "center";
			connect = <&vopb_out_dsi>;
		};

		route_dsi1: route-dsi1 {
			status = "disabled";
			logo,uboot = "logo.bmp";
			logo,kernel = "logo_kernel.bmp";
			logo,mode = "center";
			charge_logo,mode = "center";
			connect = <&vopl_out_dsi1>;
		};

		route_edp: route-edp {
			status = "disabled";
			logo,uboot = "logo.bmp";
			logo,kernel = "logo_kernel.bmp";
			logo,mode = "center";
			charge_logo,mode = "center";
			connect = <&vopb_out_edp>;
		};
	};
};

&dsi_in_vopb {
	status = "okay";
};

&dsi_in_vopl {
	status = "disabled";
};

&vopb {
    assigned-clocks = <&cru DCLK_VOP0_DIV>;
    assigned-clock-parents = <&cru PLL_CPLL>;
};

&vopl {
    assigned-clocks = <&cru DCLK_VOP1_DIV>;
    assigned-clock-parents = <&cru PLL_VPLL>;
};

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

更换完开机logo重新编译内核烧写resource.img即可。

2. logo 不显示问题分析

配置好开机logo的dts 后,可能出现u-boot logo 和 kernel logo 均不显示现象,此种情况大概率是logo 尺寸不对导致,更换合适尺寸的logo.bmp 和 logo_kernel.bmp 即可。

二、Android 开机动画显示

1. Android 开机动画不显示问题分析

u-boot logo 和 kernel logo 正常显示完成后,Android 开机动画不显示,Android 系统进入黑屏状态。出现此种现象可能是dsi 的 dts 配置异常导致。

1. 当dsi 配置如下,设备无法匹配 "simple-panel-dsi" , 导致 Android 系统进入黑屏状态:
&dsi {
    status = "okay";
    lcd_panel: lcd-panel {   
        compatible = "simple-panel-dsi"; // 无法找到.name
        reg = <0>;
		backlight = <&backlight>;	
		
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
2. 更改dsi 配置如下:
&dsi {
    status = "okay";

	lcd_panel: panel@0 { 
		compatible ="simple-panel-dsi";
		reg = <0>;
		backlight = <&backlight>;
		reset-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
		enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;

        dsi,flags = <(MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO |
			      MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
		dsi,format = <MIPI_DSI_FMT_RGB888>;
		bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;
		dsi,lanes = <4>;

		reset-delay-ms = <200>;
		init-delay-ms = <80>;
		enable-delay-ms = <200>;
		prepare-delay-ms = <200>;
        status = "okay";

        panel-init-sequence = [
            05 78 01 11 // sleep out
            05 14 01 29 // display on
        ];

        panel-exit-sequence = [
            05 05 01 28
            05 78 01 10
        ];

		display-timings {
			native-mode = <&timing0>;
			timing0: timing0 {
				clock-frequency = <120000000>;
				hactive = <1200>;
				vactive = <1920>;
				hback-porch = <60>;
				hfront-porch = <80>;
				vback-porch = <25>;
				vfront-porch = <35>;
				hsync-len = <1>;
				vsync-len = <1>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <0>;
				pixelclk-active = <0>;
			};
		};
	};

};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

重新编译内核并烧录生效。Android 开机动画显示正常。

2. Android 开机动画制作与替换

参考连接 : https://blog.csdn.net/kangweijian/article/details/128257842


总结

以上就是今天要讲的内容,本文仅仅简单介绍了Android 开机logo 与 Android 开机动画的显示。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/330242
推荐阅读
相关标签
  

闽ICP备14008679号