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

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

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

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

TC3xx芯片DMU介紹

TC3xx芯片的MPU功能詳解

評(píng)論