麦子学院Android开发课程不同分辨率的LCM兼容.docx

上传人:飞****2 文档编号:60114187 上传时间:2022-11-13 格式:DOCX 页数:5 大小:10.99KB
返回 下载 相关 举报
麦子学院Android开发课程不同分辨率的LCM兼容.docx_第1页
第1页 / 共5页
麦子学院Android开发课程不同分辨率的LCM兼容.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《麦子学院Android开发课程不同分辨率的LCM兼容.docx》由会员分享,可在线阅读,更多相关《麦子学院Android开发课程不同分辨率的LCM兼容.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Android不同分辨率的LCM兼容1. 关于时序JB版本中,接口disp_drv_get_lcm_driver实现compare id并获取到lcm driver以及lcm param的动作,对于DSI,每次尝试读取id之前都会根据lcm driver中的设置重新设置时序,所以担心时序不同无法读取id的担心就显得多余了2. 关于开机logo我们默认的做法,在ProjectConfig.mk中会定义Macro BOOT_LOGO方便在目录mediatekcustomcommonlklogo中读取到相应的资源,作为开机logo显示。 这里的开机logo分为两种,分别为U-boot logo以及k

2、ernel logo。我们分别讨论这两种logo的显示原理 U-boot logo(and Battery logo) U-boot logo是开机后的第一个界面,U-boot logo以及Battery logo会统一打包为logo.bin。对于JB版本,主要工作 流程如下1. Little Kernel会在platform_early_init阶段首先会获取lcm params,其工作流程就是透过读id找到现在插入的LCM,根据LCM的分辨率申请相应大小的frame buffer并确定frame buffer起始地址2. 为logo.bin预留4M Ram 3. 之后在platform_i

3、nit阶段,直接将logo.bin载入到4M Ram中4, 完成载入后,在platform_init中mt_disp_show_boot_logo();会调用show_logo(0);完成第一张logo显示。其中的index=0代表在logo.bin中压缩的第一张图片,logo.bin中的图片压缩顺序可以察看文件mediatekcustomcommonlklogorules.mk,如下RESOURCE_OBJ_LIST := $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_uboot.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(

4、BOOT_LOGO)_battery.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_low_battery.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_charger_ov.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_0.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_1.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_2.raw $

5、(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_3.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_4.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_5.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_6.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_7.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT

6、_LOGO)_num_8.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_9.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_num_percent.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_animation_01.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_animation_02.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_

7、bat_animation_03.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_animation_04.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_animation_05.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_animation_06.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_animation_07.raw $(BOOT_LOGO_DIR)/$(BOOT

8、_LOGO)/$(BOOT_LOGO)_bat_animation_08.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_animation_09.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_animation_10.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_01.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_02.raw $(BOOT_LOGO_DIR)/

9、$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_03.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_04.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_05.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_06.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_07.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(

10、BOOT_LOGO)_bat_10_08.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_09.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_10_10.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_bg.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_img.raw $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_bat_100.r

11、aw Kernel logo Kernel logo的工作方式与U-boot logo不同,是透过init.rc中注册的boot_logo_updater service完成读取raw data文件,进行绘画的,所以在kernel logo只是经过了bmp向raw的转换,在目录mediatekcustomcommonlklogo下生成raw data 文件boot_logo。之后透过脚本文件将boot_logo文件搬移到outtargetproductxxxxsystemmediaimages下,打包为system.img,download到手机种,并存放于/system/media/imag

12、es目录下。 对于U-boot logo,只需要将不同分辨率的图片压缩至logo.bin中,在读取时根据不同的索引显示相应的图片即可 而对于Kernel logo,我们需要将不同分辨率的boot_logo raw data文件生成出来并copy到手机中,boot_logo_updater根据不同的分辨率进行识别,读取相应的logo文件。 以qhd与hd720两种分辨率相互兼容为例,方案大致如下,注意,logo的对应需要贵司自行完成lcm driver中实现compare id接口U-boot logo压缩,在mediatekcustomcommonlklogorules.mk中,修改RESOU

13、RCE_OBJ_LIST列表,使用期望的分辨率代替BOOT_LOGO变量,(makefile中BOOT_LOGO的定义将无效)RESOURCE_OBJ_LIST := $(BOOT_LOGO_DIR)/$qhd/$qhd_uboot.raw $(BOOT_LOGO_DIR)/$hd720/$hd720_uboot.raw 记录每组分辨率插入的raw data个数mt_disp_show_boot_logo();函数中根据LCM的分辨率读取相应id的uboot logo;对于ipo快速开机,请在目录mediatekexternalipodbootlogo.cpp中的mt65xx_disp_sho

14、w_boot_logo();做同样的修改5此步骤在不同的SW版本上修改的文件不同。在JB上,修改mediatekcustomcommonlklogorules.mk修改如下内容:#ifneq ($(strip $(MTK_PLATFORM),) include $(CLEAR_VARS) LOCAL_MODULE :=boot_logo_qhd LOCAL_MODULE_TAGS :=user LOCAL_MODULE_CLASS := DATA LOCAL_MODULE_PATH := $(TARGET_OUT)/media/images LOCAL_GENERATE_CUSTOM_FOLD

15、ER := custom:lk/logo LOCAL_SRC_FILES := custom/$(LOCAL_MODULE) include $(BUILD_PREBUILT) endif # ifneq ($(strip $(MTK_PLATFORM),) include $(CLEAR_VARS) LOCAL_MODULE :=boot_logo_hd720 LOCAL_MODULE_TAGS :=user LOCAL_MODULE_CLASS := DATA LOCAL_MODULE_PATH := $(TARGET_OUT)/media/images LOCAL_GENERATE_CU

16、STOM_FOLDER := custom:lk/logo LOCAL_SRC_FILES := custom/$(LOCAL_MODULE) include $(BUILD_PREBUILT) endif在JB2上,在文件mediatekexternalboot_logo_updaterAndroid.mk中添加上述的内容,注意不要添加语句LOCAL_MODULE_TAGS :=user,否则编译不通过。6此步骤在不同的SW版本上修改方法不同。在JB上,buildcoreuser_tags.mk中GRANDFATHERED_USER_MODULES增加boot_logo_qhd & boot_logo_hd720;在JB2上,buildtargetproduct$Project.mk中PRODUCT_PACKAGES增加boot_logo_qhd & boot_logo_hd720 7. 在boot_logo_updater中首先定义两种raw data的路径,再在main函数中根据LCM的分辨率读取相应的raw data文件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁