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
客戶安全代碼 (CSC) 是采用硬件隔離機(jī)制 (INITDONE) 的 MSPM0 器件的安全啟動(dòng)解決方案。圖 3-1 展示了 CSC 引導(dǎo)和啟動(dòng)序列。在 BOOTRST 時(shí),TI ROM 代碼開始執(zhí)行。成功引導(dǎo)后,引導(dǎo)代碼會(huì)發(fā)出 BOOTDONE。此時(shí),SYSCTL 向器件發(fā)出 SYSRST 以觸發(fā)從 MAIN 閃存存儲(chǔ)器執(zhí)行。引導(dǎo)代碼完成后,MAIN 閃存程序始終從物理地址 0x0004 向量(復(fù)位處理程序)開始。根據(jù) NONMAIN 閃存 BCR 中的 CSCEXISTS 配置,BOOTDONE 之后有兩個(gè)執(zhí)行流程:
MAIN 閃存程序始終在 BOOTDONE 之后自物理地址 0x0004 開始。由于在 BOOTRST 期間會(huì)復(fù)位存儲(chǔ)體交換策略,因此 MAIN 閃存程序始終在 BOOTDONE 之后啟動(dòng)而不會(huì)進(jìn)行存儲(chǔ)體交換。僅當(dāng)在 NONMAIN 配置中同時(shí)啟用 CSCEXISTS 和 FLASHBANKSWAPPOLICY 時(shí),存儲(chǔ)體交換才會(huì)在 INITDONE 之后生效。
對(duì)于 CSC 現(xiàn)有的情況,CSC 負(fù)責(zé)確定執(zhí)行庫(kù)、內(nèi)存區(qū)域保護(hù)、將安全密鑰初始化到 KEYSTORE 中、進(jìn)行應(yīng)用程序完整性和真實(shí)性驗(yàn)證等。該器件正在特權(quán)狀態(tài)下工作,具有配置這些安全策略的權(quán)限。在 CSC 結(jié)束時(shí)會(huì)發(fā)出 INITDONE(通過寫入 SYSCTL.SECCFG.INITDONE,請(qǐng)參閱特定于器件的技術(shù)參考手冊(cè)以了解寄存器定義),然后 SYSCTL 會(huì)發(fā)出第二個(gè) SYSRST,下面列出的所有安全策略在 INITDONE 期間生效,并且在下一個(gè) BOOTRST 之前不修改:
INITDONE 之后,器件進(jìn)入非特權(quán)狀態(tài),再次從 MAIN 閃存的地址 0x0004 開始執(zhí)行,并且 CSC 會(huì)第二次執(zhí)行。這一次,CSC 發(fā)現(xiàn) INITDONE 之前已經(jīng)發(fā)出過(這是通過讀取 SYSCTL.SECCFG.SECSTATUS.INITDONE 位來確定的),因此會(huì)直接跳至主應(yīng)用程序。請(qǐng)參閱圖 3-2,了解特權(quán)狀態(tài) (INITDONE) 和非特權(quán)狀態(tài)(INITDONE 之后)下的 CSC 執(zhí)行流程。
有關(guān)引導(dǎo)和啟動(dòng)順序的更多詳細(xì)信息,請(qǐng)參閱 MSPM0 G 系列 80MHz 微控制器技術(shù)參考手冊(cè)(修訂版 C)的安全一章。

