ZHCAC19A January 2023 – December 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
在下圖中顯示了 MSPM0 器件的啟動(dòng)流程概要。
在 BOOTRST 時(shí),TI 引導(dǎo)代碼開始執(zhí)行。成功引導(dǎo)之后,引導(dǎo)代碼會(huì)發(fā)出 BOOTDONE。此時(shí),SYSCTL 向器件發(fā)出 SYSRST 以觸發(fā)從閃存執(zhí)行。根據(jù)引導(dǎo)配置記錄,這會(huì)觸發(fā)啟動(dòng)主應(yīng)用程序(如果此配置中不存在 CSC)或啟動(dòng) CSC(如果配置了 CSC)。
CSC 負(fù)責(zé)確定執(zhí)行存儲(chǔ)體、存儲(chǔ)器區(qū)域保護(hù)、安全密鑰初始化到密鑰庫等。當(dāng)客戶安全代碼發(fā)出 INITDONE(通過寫入 SYSCTL.SECCFG.INITDONE MMR)時(shí),SYSCTL 會(huì)發(fā)出第二個(gè) SYSRST。器件再次從映射到閃存的 0x0 開始執(zhí)行,而 CSC 會(huì)執(zhí)行第二次。這一次,CSC 將發(fā)現(xiàn)先前已經(jīng)發(fā)出 INITDONE(這是通過讀取 SYSCTL.SECCFG.SECSTATUS.INITDONE 位來確定的),因此會(huì)直接調(diào)用主應(yīng)用程序。
從 BOOTRST 到主應(yīng)用程序的概括性引導(dǎo)流:
安全執(zhí)行流程是 CSC_EXISTS = YES 情況下的路徑。在這種情況下,可能會(huì)觀察到在 BOOTRST 之后,有兩個(gè) SYSRST 將在主應(yīng)用程序啟動(dòng)之前發(fā)出。在首個(gè) SYSRST 之后,客戶啟動(dòng)代碼開始執(zhí)行。它會(huì)配置安全性并發(fā)出 INITDONE。此時(shí)會(huì)鎖定并強(qiáng)制執(zhí)行安全配置。隨即會(huì)發(fā)出第二個(gè) SYSRST 以重新開始執(zhí)行啟動(dòng)代碼。在第二個(gè) SYSRST 時(shí),由于 INITDONE 為 YES,因此會(huì)啟動(dòng)主應(yīng)用程序。
請(qǐng)注意,BCR 和 BSL 都在可鎖定的 NONMAIN 閃存區(qū)域中包含用戶指定的配置數(shù)據(jù)結(jié)構(gòu)。節(jié) 2.6中介紹了通過這些數(shù)據(jù)結(jié)構(gòu)指定的這些安全策略。