ZHCABH7 January 2022 TM4C129CNCPDT , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XNCZAD
尽管在非安全环境中可以对引导加载程序进行编程,但会导致初始化矢量暴露的风险。因此,最好的方法是在安全环境中同时对引导加载程序和密钥进行编程。如果在第一个扇区中对引导加载程序进行编程,而在 APP_BASE 的扇区中对密钥的映像进行编程,引导加载程序将把密钥复制到 EEPROM 中,然后擦除 APP_BASE 的扇区。如果使用“发布”版配置,引导加载程序会对其自身进行写保护并禁用 JTAG。
引导加载程序的“调试”版配置不应在现场发布。他人可以轻松使用仿真器连接到 JTAG 端口并编写公开密钥的代码。他们随后可以制作自己的程序,用这些密钥加载。
用户应考虑是否在其电路板上外露 JTAG 引脚。使用 ROM 引导加载程序对初始引导加载程序和密钥进行编程是可以实现的。因此,不需要访问 JTAG。使用引导加载程序的“发布”版配置将禁用 JTAG 接口,但他人仍可使用恢复锁定的微控制器方法来完全重置器件。这将擦除 EEPROM 中的引导加载程序、应用程序代码和密钥。之后,他们可以将自己的代码编程到该器件中。这与他们拆焊 TM4C 器件并用新器件进行替换的效果相同。对于球栅阵列(BGA)器件,可以通过不对 JTAG 球添加布线来隐藏 JTAG。对于四方扁平封装(QFP)器件,即使没有对引脚布线,它们也会暴露在外。
无法访问 JTAG 引脚的主要缺点是无法从外部恢复器件。因此,用户必须确保,在重新进入引导加载程序之前,需要通过一个经过验证的过程。此外,对于故障器件,如果不将其从印刷电路板上移除,就无法进行分析。