高通平臺BootLoader的流程
原文連結:http://www.codingblog.cn/blog/44451.html
注:很多內容和MTK LK階段相同,可以借鑑學習。aboot.c內容差異很大。
本文以C6的bootlader程式碼為例,
1. 一 kmain
1.1. 1 crt0.S
手機上電後,硬體會從固定的地址(固化在ROM中)載入bootloader到RAM,然後跳轉到bootloader的入口函式開始執行,對於mido,它的入口函式是:
bootable/bootloader/lk/arch/arm/crt0.S
#define byte 0x4f , 0xf0 , 0x7f , 0xf5
#define byte 0x6f , 0xf0 , 0x7f , 0xf5
.section ".text.boot"
.globl
_start:
b
b
b
b
.....
.....
.....
#ifdef
DSB
ISB
#endif
bl b
|
在_start中先主要完成CPU初始化,禁用mmu,禁用cache,初始化異常向量表等操作,最後將直接跳轉到函式kmain中
1.2. 2 kmain
kmain的程式碼位於
bootable/bootloader/lk/kernel/main.c
/*
void kmain( void )
void kmain( void ) {
//
thread_init_early();
//
arch_early_init();
//
platform_early_init();
//
target_early_init();
dprintf(INFO, "welcome );
bs_set_timestamp(BS_BL_START);
//
dprintf(SPEW, "calling );
call_constructors();
//
dprintf(SPEW, "initializing );
heap_init();
__stack_chk_guard_setup();
//
dprintf(SPEW, "initializing );
thread_init();
//
dprintf(SPEW, "initializing );
dpc_init();
//
dprintf(SPEW, "initializing );
timer_init();
#if
//
dprintf(SPEW, "creating );
thread_resume(thread_create( "bootstrap2" ,
//
exit_critical_section();
//
thread_become_idle();
#else
bootstrap_nandwrite();
相關推薦[Android]高通平臺BootLoader啟動流程一、什麼是BootLoader BootLoader程式碼是晶片復位後,進入作業系統之前執行的一段程式碼。主要用於完成由硬體啟動到作業系統啟動的過渡,從而為作業系統提供基本的執行環境。 BootLoder主要的啟動流程可以概括為:PBL階段、SBL階段、LK階段。之後會載入並啟動kern 高通平臺BootLoader的流程原文連結:http://www.codingblog.cn/blog/44451.html 注:很多內容和MTK LK階段相同,可以借鑑學習。aboot.c內容差異很大。 本文以C6的bootlader程式碼為例, 1. 高通平臺bootloader裡面串列埠log輸出配置方法1:在modem端將相應的gpio設定成相應功能。 2:在/lk/project/xxx.mk開啟uart輸出log功能。 3:在platform/msm_shared/uart.c中定義uart幾輸出log, #if PLATFORM_MSM7X30 static uns 高通平臺Camera框架部分淺談--Camera C/S 的init流程瞭解的不夠深入,應用功能實現後,再回頭細看Camera框架時,還是有些地方沒能連通,在網上也找了一些文章結合程式碼來分析,不過能力有限,甚是痛苦。而且由於平臺不同,程式碼的具體流程還是有區別。 下 高通平臺msm8916修改開機logo 高通平臺修改LK(bootloader)開機logo經過兩天的奮戰終於把開機logo給搞定了啊。 首先修改開機logo要從哪裡入手呢?先分析一下原始碼看看. ---> 1 void display_image_on_screen() 2 { 3 struct fbimage default_fbimg, *fbimg; 4 高通平臺LCD的開啟和關閉流程開機的時候 SurfaceFlinger open msm_fb device [ 9.468484] mdp4_overlay_pipe_alloc: pipe=c07f7830 ndx=1 num=0 share=0 cnt=0 剛開機的時候 sl open device [ 9. 基於Android7.1 8953 高通平臺下零死角玩轉裝置樹DTS【基於Android7.1 8953 高通平臺下零死角玩轉裝置樹DTS】 更新內容: 【創科之龍_安卓開發】第01課_為什麼引用linux裝置樹和對比優勢 【創科之龍_安卓開發】第02課_如何在Linux-3.x核心 高通平臺啟動log概述(PBL log、sbl1 log、kernel log)【轉】本文轉自:https://blog.csdn.net/RadianceBlau/article/details/78416776?utm_source=blogxgwz9 高通平臺啟動log概述(PBL log、sbl1 log、kernel log)在嵌入式linux的除錯過程中log有著至關重要的地位, 高通平臺讀寫nv總結【轉】本文轉載自:https://blog.csdn.net/suofeng12345/article/details/52713993 一,引言 1. 什麼是NV &nbs 高通平臺 ramdump-parser 簡介ramdump 是什麼?簡單來說就是把系統memory中的某一個時間點的的資料資訊通過一定手段取出來儲存起來的記憶體崩潰檔案,屬於ELF檔案格式。 當系統發生致命錯誤無法恢復的時候,主動觸發抓取ramdump把異常現場保留下來供離線分析定位問題是一種非常重要的高階除錯手段。 高 通過高通平臺簡單總結的許可權問題android 5.x開始,引入了非常嚴格的selinux許可權管理機制,我們經常會遇到因為selinux許可權問題造成的各種avc denied困擾。有時候我們在添加了一些驅動或應用的時候,發現不能用,但是程式本身查不出問題來,那就要抓log看一下了,很多時候就是因為沒有新增許可權,下 高通平臺電池曲線跟電池相關的一些名詞: FCC Full-Charge Capacity 滿電荷電量 UC Remaining Capacity RC 剩餘電量 CC Coulumb Counter 電量計 UUC Unusable Capacity 不可用電量 PC Percentage 高通平臺SPI外設的片選訊號配置spi master 和spi device有各自的dts配置: 這是spi master的配置示例,也就是spi控制器 這是一個spi device的配置示例,也就是spi外設(從裝置) 一個spi控制器上可以連線多個從裝置,在任何時刻只有一個從裝置可以通 在高通平臺新增或者移植一個完整的cameraOV8865 1、kernel部分: A、kernel_driver: 把驅動檔案ov8865_qtech_f8865ac.c 放到kernel/drivers/media/platform/msm/camera_v2/sensor/目錄下 B、kernel_dt 高通平臺GPIO模擬PWM控制背光很多時候由於節省硬體資源,降低成本,會把PWM控制晶片去掉或者是改做它用,導致當我們想用PWM方式控制背光時只能使用帶有clk功能的GPIO口。本篇文件就來講解下如何使用GPIO模擬PWM功能進行背光的控制。本文以MSM8909為例。 一、選取GPIO口並進行配置 高通平臺 efs.mbn的製作與修改1.修改需要修改的mbn相關檔案 如MDM9607/trunk/modem_proc/mcfg/mcfg_gen/genneric/China/CT下的 2.EFS相關程式碼修改 開啟相關巨集定義 #define FEATURE_EFS_NAND_FACTORY_STAR 高通平臺framework,hal,kernel開啟log【轉】本文轉載自:https://blog.csdn.net/u010164190/article/details/78625636 1 1.Add framework log 2 #define LOG_NDEBUG 0 3 2.Add hal log 4 #define LOG_NDEBU Android高通平臺下編譯時能生成(拷貝)預編譯的so到system的lib目錄參考hardware\qcom\display\libcopybit 通過編譯log可以知道編譯到這裡,生成的copybit.msm8937.so在out\target\product\msm8937_64\system\lib\hw下。libcopybit\Andr 高通平臺 UART log 開啟方法1 配置kernel DTS 例如: kernel\arch\arm\boot\dts\qcom\msm8909-mtp.dtsi, 配置status屬性 okay. 同時檢查DTS 確認UART PIN 沒有配作他用 &blsp1 [高通平臺小米4]的電源管理配置學習1.溫控調頻 /system/etc/thermal-engine-8974.conf sampling 5000 [CPU0_MONITOR] algo_type monitor sensor cp |