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文章
5363瀏覽量
121198 -
UCB
+關注
關注
0文章
6瀏覽量
11329 -
Aurix
+關注
關注
1文章
71瀏覽量
10966
原文標題:學習筆記|AURIX? TC3xx 啟動流程
文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
英飛凌TC3XX系列多核MCU學習筆記(3)
![英飛凌<b class='flag-5'>TC3XX</b>系列多核MCU學習筆記(<b class='flag-5'>3</b>)](https://file1.elecfans.com/web2/M00/A5/18/wKgaomUI_8uAFoldAAEd8_ec1fw567.jpg)
Pflash恢復保護命令最終會在Aurix TC3xx控制器上重置目標是為什么?
GCC和TASKING有什么區別?應該為AURIX? TC3xx選擇什么?
TSIM是否支持TC3xx系列在沒有硬件的情況下調試應用程序?
英飛凌AURIX單片機TC3xx系列助力電動交通發展
英飛凌 AURIX 單片機 培訓文檔鏈接
![英飛凌 <b class='flag-5'>AURIX</b> 單片機 培訓文檔鏈接](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
英飛凌AURIX TC3xx和TRAVEO T2G系列微控制器介紹
![英飛凌<b class='flag-5'>AURIX</b> <b class='flag-5'>TC3xx</b>和TRAVEO T2G系列微控制器介紹](https://file1.elecfans.com/web2/M00/8A/24/wKgZomSRUKCACTyuAAAMBIv0FhQ904.jpg)
TC3xx芯片DMU介紹
![<b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>DMU介紹](https://file1.elecfans.com/web2/M00/A2/70/wKgaomTwLzKAFA9oAAAzEsYV888714.png)
TC3xx芯片的MPU功能詳解
![<b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的MPU功能詳解](https://file1.elecfans.com/web2/M00/A3/B5/wKgZomUJGniAWMcGAABvIJ3pGu8491.jpg)
評論