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