手機正常開機流程以及開機常見故障診斷

2021-08-07 21:09:15 字數 3477 閱讀 7791

一、正常開機 

上圖是手機正常開機的時序圖: (1)時序圖的四個訊號線如下: ① power on key:開機鍵。 ② lvds:低差分穩壓訊號線。 ③ reset:復位鍵。 ④ bbwakeup:bb喚醒訊號線。 (2)其他: ①power on key pressed:開機電源鍵按下.

②power on key debounce time:開機電源鍵防反跳時間.

③reset delay:復位延時。

④power on key released:開機電源鍵釋放.

⑤power off key pressed:關機電敵鍵按t。

⑥power off key released:關機電源鍵釋放。

⑦msec:毫秒。 

上圖所顯示的開機流程如下: 當按下power on key後,二極體導通.pwrkey檢測到低電平.驅動pmic電源管理晶元開啟lvds(低壓差分訊號線),之後pmic電源管理晶元使bbwakeup訊號線復位,隨之bbwakeup訊號線起來進人軟體開機程式。從而完成開機。而按power on key關機時,mtk平台首先執行軟體關機程式。隨後復位,lvds也被關閉,從而完成關機。

正常開機流程中的某些步異中執行不正常的現象基本診斷如下圖.讀者可自行診斷手機的常見故障。這個過程可以加深對手機工作原理的理解。對開發工作有很大的幫助。

但僅僅理解正常開機的流程還不夠,另外兩個開機過程也非常重要,那就是鬧鐘開機過程和充電開機過程.理解了這兩個開機過程,對開機流程才能有完整的把握。 

二、鬧鐘開機 

(1)時序圖的5個訊號線如下:

left soft key:左軟按鍵。 power on key:開機鍵。 lvds:低差分穩壓訊號線。

reset:復位鍵。 bbwakeup:bb喚醒訊號線。

(2)其他: power on key pressed:開機電鍵被按下。

power on key debounce time:開機電源鍵防反跳時間。

reset delays復位延時。 power on key released:開機電源鍵釋放。

power off key pressed:關機電源健按下。

power off key released:關機電源鍵釋放。 rtc alarm:實時時鐘鬧鐘。

left soft key pressed to confirm alarm power on:左軟按健按下以確認鬧鐘開啟。

msec:毫秒。 

上面時序所體現的開機過程如下:

當鬧鐘醒來時,bbwakeup訊號先起來,它由低電平變為高電平,然後pmic電派管理晶元的所有lvds(穩壓訊號)後起來。過了200ms後,pmic電旅管理晶元使 bbwakeup訊號線復位,執行軟體開機程式。當按下左按健停止鬧鐘時,就完成開機過程。其關機過程同正常關機一樣。 

三、充電開機 

(1)時序圖的5個訊號線如下:

pmic chr:電源管理晶元訊號。 eint_ chrdet:中斷。

lvds:低差分穩壓訊號線。 reset:復位鍵。 bbwakeup:bb喚醒訊號線。

(2)其他:

charger plug in:充電器插人. power on key debounce time:開機電源鍵防反跳時間。

reset delay:復位延時。 charger plug out:充電器拔出。 msec:毫秒. 

上面的充電開機時序圖顯示的開機過程如下:

當充電器給手機充電時,chrin檢測到高電平.驅動pmic(電源管理晶元)開啟lvds低差分穩壓訊號線.如果此時電池的電壓》3.2 v,則pmic(電源管理晶元)產生eint中斷(高電平);如果此時電池的電壓<3. 2 v, mtk平台先小電流充電使電池的電壓大於3.2 v,然後pmic使bbwakeup訊號復位,bbwakeup起來後執行軟體開機程式,從而完成充電開機過程。 

四、系統啟動涉及的關健檔案 

bootarm. s (mcu\init\src\bootarm. s)和init. c (mcu\init\src\init. c)是mtk平台的啟動主要涉及的兩個檔案,其中bootarm. s**用arm指令編寫,以提高**執行的效率。      (1)先看bootarm.s,摘錄其中一部分**如下:

... ... ... ...

ldra4,emisase_reg

if :def: mt6229 : lor: : def: mt6228 : lor: :def: mt6225 : lor: : def: mt6230 : lor: :def: mt6238

if :def: mt6238

ldr al,[a4,# 0x70]

else

ldr al,[a4,# 0x60]

endif

else

ldr al,[a4,# 0x40]

endif

and al,al,# 0x03

mov a2,# flash_sram_remap

cmp a1,a2

beq mtk_loadpc

ldr a1,emt_26mhz_seiting

str a1,[a4]

stp a1,[a4,# 0x08]

mov a2,# bootrom_flash_remap

if :def: mt6229 :lor: :def: mt6228 :lor: :def: mt6225 :lor: :def: mt6230 :lor: :def: mt6238

if :def: mt6238

ldr a1,[a4,# 0x70]

bic al,a1,#3

orr a2,a2,a1

strh a2,[a4,# 0x70]

else

strh a2,[a4,# 0x60]

endif

else

strh a2,[a4,# 0x40]

... ... ... ...

我們可以用記事本開啟bootarm.s,可以看到裡面的**主要是對cpu的暫存器、中斷向量表、ram以及flash等的配置。很多人困惑為什麼用上面**書寫,實際上上面的**的格式比c語言的書寫格式執行效率要高。

(2)再看看init. c裡面的**,摘錄一部分如下:

... ... ...

static void hwdinitialization(void)

}# endif

# ifdef mtk_sleep_enable

lism_init ();

# endif

# ifndef l1_not_present

# ifdef _hw_divider_

hw_divider_lnitialization () ;

# endif

# endif

... ... ...

我們可以用記事本或source insight軟體開啟init. c,可以看到裡面的**用c語言編寫.主要是對系統的進一步初始化,包括對usb等外設駱動的載入等。仔細閱讀上面的**,能讓我們對系統的核心工作機制有個更深的認識。

新更新kb4493472導致無法正常開機

昨天陸續接到 說是系統更新後電腦不能正常使用,症狀基本是開機到歡迎介面就出現各種各樣的狀況,比如滑鼠能動,其他無反應 歡迎介面結束後黑屏,只有滑鼠能動 開機後正常,但電腦使用很卡等等狀況。因為昨天比較忙,沒有細細研究,但因為都是更新系統後出現問題,初步認定是系統的更新與某一軟體有衝突,所以先還原舊時...

掛載錯誤導致無法正常開機解決思路

根據提示進入root命令列,檢視報錯日誌,並進行相應刪除錯誤掛載 1.在報錯介面輸入root密碼 注意 該地方輸入密碼是沒有 號的,一定要一次性輸入完整 2.在進入root介面後,輸入以下命令檢視報錯日誌 注意 p3一定要輸入,這樣才會顯示報錯資訊 root localhost journalctl...

Linux開機流程以及執行級別

1 boot loader 領導裝載程式,常用的有 grub,spfdisk 2 grub 是乙個多作業系統啟動管理器,開機時領導不同系統,windows linux等 1 載入bios basic input output system 的硬體資訊,並進行自我測試 2 讀取並執行第乙個開機裝置內m...