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)容也會多一點(diǎn)。
Firmware執(zhí)行完后會跳到應(yīng)用程序的首地址去執(zhí)行,應(yīng)用程序的Startup程序也會根據(jù)Reset方式的不同,執(zhí)行的流程不同。比如,Power On Reset執(zhí)行的內(nèi)容就多一點(diǎn),Application Reset執(zhí)行的內(nèi)容就少一點(diǎn)。
2.啟動固件Startup Firmware
芯片復(fù)位后只有CPU0是Enable的,其他的CPU都是停止的。SSW中都會選用100MHz的fbackup作為時鐘。
ESR可以在UCB里面進(jìn)行配置,SSW這里把ESR的配置給讀出來設(shè)置實(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.啟動選項(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可以通過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腳來實(shí)現(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的話需要通過密碼校驗(yàn)。
ABM主要用來指定應(yīng)用程序的起始地址。如果我們希望程序從bootloader跳到應(yīng)用程序有一次復(fù)位的過程,就可以通過就ABM模式來實(shí)現(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)注
31文章
5403瀏覽量
122948 -
UCB
+關(guān)注
關(guān)注
0文章
7瀏覽量
11386 -
Aurix
+關(guān)注
關(guān)注
1文章
73瀏覽量
11233
原文標(biāo)題:學(xué)習(xí)筆記|AURIX? TC3xx 啟動流程
文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
英飛凌TC3XX系列多核MCU學(xué)習(xí)筆記(3)

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ī) 培訓(xùn)文檔鏈接

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

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

TC3xx芯片DMU介紹

TC3xx芯片的MPU功能詳解

評論