屏的啟動流程

2021-09-01 12:21:42 字數 2579 閱讀 2211

屏的啟動流程

取的**為:

svn+ssh:

使用的屏為:

lcd: hl_5093d,

ic: ili9806e,

size: 5.0寸,

resolution:480*854,

亮屏修改與增加的檔案為:

lk:新建 pb3.2.0\bootable\bootloader\lk\dev\lcm\wzp_fw_ili9806e\ wzp_fw_ili9806e.c

主要實現

lcm_driver wzp_fw_ili9806e_drv =

;新建 pb3.2.0\bootable\bootloader\lk\dev\lcm\wzp_fw_ili9806e\ makefile

新增行obj-y += wzp_fw_ili9806e.o

修改pb3.2.0\bootable\bootloader\lk\dev\lcm\ mt65xx_lcm_list.c

(新增一行extern lcm_driver wzp_fw_ili9806e_drv;

在lcm_driver* lcm_driver_list 中新增

#if defined(wzp_fw_ili9806e)

&wzp_fw_ili9806e_drv,

#endif

修改 pb3.2.0\bootable\bootloader\lk\project\ ali6735_35gt_a_l1.mk
(在檔案中這一行增加custom_lk_lcm=「wzp_fw_ili9806e jd9161ba_fwvga_vdo hx8389b_qhd_dsi_vdo otm8018b_dsi_vdo」)

kernel:

新建pb3.2.0\kernel-3.10\drivers\misc\mediatek\lcm\wzp_fw_ili9806e\wzp_fw_ili9806e.c

新建pb3.2.0\kernel-3.10\drivers\misc\mediatek\lcm\wzp_fw_ili9806e\ makefile

修改pb3.2.0\kernel-3.10\drivers\misc\mediatek\lcm\mt65xx_lcm_list.c

修改pb3.2.0\kernel-3.10\arch\arm\configs\ali6735_35gt_a_l1_debug_defconfig

(在檔案中這一行增加config_custom_kernel_lcm=「wzp_fw_ili9806e lcm_common jd9161ba_fwvga_vdo hx8389b_qhd_dsi_vdo otm8018b_dsi_vdo」)

在lk中初始化,並顯示手機第一屏:

lk指(pb3.2.0/bootable/bootloader/lk),lk啟動**從main.c開始

main.c (lk/kernel/main.c)

static int bootstrap2(void *arg)

platform.c (lk/platform/mt6735/platform.c)

void platform_init(void) //這個函式完成部分硬體的初始化,如震動馬達、nand、背光、屏

mt_disp_drv.c (lk/platform/mt6735/mt_disp_drv.c)

uint32 mt_disp_get_vram_size(void)

primary_display.c (lk/platform/mt6735/primary_display.c)

unsigned int disp_getvramsize(void)

跳轉到這個函式:

uint32 disp_getfbramsize(void)

跳轉到這個函式:

uint32 disp_getscreenwidth(void)

跳轉到這個函式:

int primary_display_get_width(void)…}

disp_lcm.c (lk/platform/mt6735/disp_lcm.c)

disp_lcm_handle* disp_lcm_probe(char* plcm_name, lcm_inte***ce_id lcm_id)

else

if(lcm_drv->init_power)

if(lcm_drv->compare_id != null)

}_display_inte***ce_path_deinit(handle);//如果沒找到匹配的驅動,則消

除屏相關初始化,再次開始迴圈遍歷}}

if(islcmfound == false)//如果遍歷完畢沒匹配到合適的,預設使用第乙個

}else

}}}

至此,lk中屏初始化完成,可以正常顯示畫面,

platform.c (lk/platform/mt6735/platform.c)

void platform_init(void)

在lk啟動完成後,將初始化相關引數儲存入command_line中,供kernel中呼叫。

uboot啟動流程概述 uboot啟動流程

u boot系統啟動流程 大多數bootloader都分為stage1和stage2兩大部分,u boot也不例外。依賴於cpu體系結構的 如裝置初始化 等 通常都放在stage1,且可以用組合語言來實現,而stage2則通常用c語言來實現,這樣可以實現複雜的功能,而且有更好的可讀性和移植性。2.1...

activity啟動流程 App啟動流程三問

裡面涉及到哪些重要的成員呢?都分別負責了什麼,比如ams?啟動流程了解後,對我們開發有什麼幫助呢?1 比如啟動優化,分析啟動過程,其實可以優化啟動速度的地方有三個地方 activity的oncreate方法,同樣進行執行緒處理,懶載入。或者預建立activity,提前類載入等等。2 又比如外掛程式化...

Linux的啟動流程

首先介紹一下linux的啟動流程,分為四部 1.bios啟動 2.bootloader啟動 3.kernel啟動 4.init啟動 bios啟動主要工作如下 1.加電自檢硬體 2.選擇啟動裝置 硬碟,光碟機,軟碟機,u盤等 3.讀取啟動裝置的資訊,如硬碟的mbr資訊 bootloader主要工作如下...