屏的啟動流程
取的**為:
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主要工作如下...