ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , 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
图 4-1 展示了启用安全功能的应用中的引导和启动序列。在 BOOTRST 时,TI 引导代码开始执行。成功引导后,引导代码会发出 BOOTDONE。此时,SYSCTL 向器件发出 SYSRST 以触发从闪存执行。根据引导配置记录,这会触发启动主应用程序(如果此配置中不存在 CSC)或启动 CSC(如果配置了 CSC)。
CSC 负责确定执行存储体、存储器区域保护、安全密钥初始化到密钥库等。当客户安全代码发出 INITDONE(通过写入 SYSCTL.SECCFG.INITDONE MMR)时,SYSCTL 会发出第二个 SYSRST。器件再次从映射到闪存的 0x0 开始执行,而 CSC 会执行第二次。这一次,CSC 将发现先前已经发出 INITDONE(这是通过读取 SYSCTL.SECCFG.SECSTATUS.INITDONE 位来确定的),因此会直接调用主应用程序。
安全执行流程是 CSC_EXISTS = YES 情况下的路径。在这种情况下,可能会观察到在 BOOTRST 之后,有两个 SYSRST 将在主应用程序启动之前发出。在首个 SYSRST 之后,客户启动代码开始执行。它会配置安全性并发出 INITDONE。此时会锁定并强制执行安全配置。随即会发出第二个 SYSRST 以重新开始执行启动代码。在第二个 SYSRST 时,由于 INITDONE 为 YES,因此会启动主应用程序。