前言
本文首先介紹整個啟動流程的概況,接著分別介紹了firmware啟動流程,boot mode的配置,以及用戶程序啟動流程。這里的Startup Sequence包含MCU的firmware啟動流程和用戶程序啟動流程兩部分。
正文
1.啟動整體流程 Startup Flow
TC3xx芯片的啟動分為兩部分:
1)Startup Firmware的啟動,Startup Firmware是固化在芯片內(nèi)部的程序。
2)Startup Software的啟動,Startup Software是應(yīng)用層序的啟動程序。
Startup Firmware根據(jù)Reset方式的不同,執(zhí)行的流程也不一樣。例如,Cold Power Reset后Startup Firmware執(zhí)行的時間就會長一些,執(zhí)行的內(nèi)容也會多一點。
Firmware執(zhí)行完后會跳到應(yīng)用程序的首地址去執(zhí)行,應(yīng)用程序的Startup程序也會根據(jù)Reset方式的不同,執(zhí)行的流程不同。比如,Power On Reset執(zhí)行的內(nèi)容就多一點,Application Reset執(zhí)行的內(nèi)容就少一點。
2.啟動固件Startup Firmware
芯片復(fù)位后只有CPU0是Enable的,其他的CPU都是停止的。SSW中都會選用100MHz的fbackup作為時鐘。
ESR可以在UCB里面進(jìn)行配置,SSW這里把ESR的配置給讀出來設(shè)置實際的ESR。
SWAP也是在UCB里面配置的,SSW這里讀取SWAP配置看要不要使能SWAP。
Default模式下會初始化所有的SRAM為0,在UCB里面可以配置哪些SRAM不初始化。
BMHD主要配置應(yīng)用程序的起始地址,BMHD也是在UCB中配置的。
LBIST主要做一些內(nèi)部邏輯電路的檢測,它可以在SSW中執(zhí)行,也可以在應(yīng)用程序的Startup程序中執(zhí)行。如果需要在SSW中執(zhí)行,則需要在UCB里面進(jìn)行配置。
CHSW(Check Software),SSW檢查UCB中配置的內(nèi)容在寫入寄存器后是否和寄存器的Reset值一樣。
如果UCB中配置了Debug lock,則SSW就會鎖住芯片的Debug功能,外部Debug功能不能用了。
3.啟動選項 Boot options, Boot mode headers
TC3xx的SSW的最后可以根據(jù)UCB的配置直接跳轉(zhuǎn)到應(yīng)用程序執(zhí)行,或者根據(jù)BMHD的配置進(jìn)入Boot Mode。
Generic Bootstrap Loader可以通過CAN或者ASC(串口)的方式和這部分boot loader進(jìn)行通信,然后下載一部分Code到PSPR里面,然后再和這部分代碼進(jìn)行通信,把程序下載到Flash。
ASC Bootstrap Loader和Generic Bootstrap Loader差不多。
如果希望沖Bootloader跳轉(zhuǎn)到應(yīng)用程序的時候有個復(fù)位的動作,則可以使用Alternate Boot Modes。
內(nèi)部Flash啟動的啟動地址在BMHD寄存器(UCB)里面配置的,BMHD.STAD位域。啟動模式的選擇也可以通過外部Pin腳來實現(xiàn),PINDIS[3]。
不帶Cache的Flash是從0xA000 0000開始的,才Cache的Flash是從0x8000 0000開始的。
BMHD_ORIG和BMHD_COPY是相互備份的(例如在刷寫B(tài)MHD_ORIG的時候(先擦除再寫入)斷電了,BMHD_COPY還是正常使用)。
BMHD0_ORIG和BMHD0_COPY里面是支持寫入密碼的,通過UCB_BMHD_ORIG: Confirmation寫入,寫入密碼后要更新BMHD0_ORIG和BMHD0_COPY的話需要通過密碼校驗。
ABM主要用來指定應(yīng)用程序的起始地址。如果我們希望程序從bootloader跳到應(yīng)用程序有一次復(fù)位的過程,就可以通過就ABM模式來實現(xiàn),ABMHD(Alternate Boot Mode Header)的STADABM存放的是應(yīng)用程序的起始地址,ABMHD這個結(jié)構(gòu)體的地址存放在BMHD.STAD位域,這樣在跳轉(zhuǎn)到應(yīng)用程序之前把BMHD.STAD改成ABM模式,然后再執(zhí)行一次軟件復(fù)位,軟件復(fù)位以后就能從ABMHD.STADABM指定的應(yīng)用程序入口開始執(zhí)行,這樣在跳到應(yīng)用程序之前就有一個復(fù)位過程,能保證所有的外設(shè)和Memory都是復(fù)位狀態(tài)。
4.啟動軟件 Startup software
查看RSTSTAT寄存器的復(fù)位原因,走不同的初始化流程。
TC3xx芯片的復(fù)位類型有很多種,比如Power on Reset, System Reset, Application Reset等。System Reset和Application Reset可通過RSTCON寄存器來配置,比如軟件復(fù)位和看門狗復(fù)位可以配置成System Reset或者Application Reset。
如果是Power On Reset的話,就需要判斷是否需要進(jìn)行LBIST。LBIST有可能在SSW里面做完的,如果做完了就把當(dāng)前的簽名讀出來和預(yù)期的簽名做比較。如果沒有做完,就可以在User的Startup里面做LBIST。需要注意的是,LBIST做完后一定有一個復(fù)位的過程。
USTACK和CSA初始化完后,就可以進(jìn)行C函數(shù)的調(diào)用了。
主頻的抬高是一個漸變的過程,不能太快,否則可能造成芯片損壞。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
459文章
51927瀏覽量
433697 -
mcu
+關(guān)注
關(guān)注
146文章
17718瀏覽量
358225 -
Firmware
+關(guān)注
關(guān)注
0文章
27瀏覽量
10476 -
啟動流程
+關(guān)注
關(guān)注
0文章
14瀏覽量
6564 -
Aurix
+關(guān)注
關(guān)注
1文章
73瀏覽量
11213
原文標(biāo)題:AURIX? TC3xx 啟動流程
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
英飛凌TC3XX系列多核MCU學(xué)習(xí)筆記(3)

TC3xx芯片的Endinit功能詳解

TC3xx芯片時鐘系統(tǒng)的鎖相環(huán)PLL詳解

AURIX? TC3XX如何暫時僅啟用/禁用CAN中斷?
Pflash恢復(fù)保護(hù)命令最終會在Aurix TC3xx控制器上重置目標(biāo)是為什么?
GCC和TASKING有什么區(qū)別?應(yīng)該為AURIX? TC3xx選擇什么?
TSIM是否支持TC3xx系列在沒有硬件的情況下調(diào)試應(yīng)用程序?
英飛凌AURIX單片機(jī)TC3xx系列助力自動駕駛和電動交通發(fā)展
英飛凌AURIX單片機(jī)TC3xx系列助力電動交通發(fā)展
英飛凌 AURIX 單片機(jī) 培訓(xùn)文檔鏈接

AURIX? TC3xx NVM是非易失性存儲器學(xué)習(xí)筆記

英飛凌AURIX TC3xx和TRAVEO T2G系列微控制器介紹

TC3xx芯片DMU介紹

TC3xx芯片的MPU功能詳解

評論