ZHCUCY3 April 2025 TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1 , TMS320F280021 , TMS320F280023 , TMS320F280023C , TMS320F280025 , TMS320F280025C , TMS320F280034 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037C , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039C , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041C , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049C , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377S , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379S , TMS320F28384D , TMS320F28384S , TMS320F28386D , TMS320F28386S , TMS320F28388D , TMS320F28388S , TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1 , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
引导模式选择引脚 (BMSP) 由器件解码并用于为引导定义表编制索引,以确定要执行哪种引导模式。除了每个器件上提供的默认引导配置外,用户还可以通过对 OTP 存储器进行编程来选择其他 BMSP 和引导模式。虽然 ROM 的存储器内容是在制造时确定的,但在生产后只能对 OTP 编程一次,从而在要求可靠且可重复地读取数据的应用场合下提供更大的灵活性。
在独立引导加载的背景中,在以下情况需要对 OTP 进行编程:
根据器件系列(如 表 2-3 中所示),可通过写入用户可配置的双代码安全模块 (DCSM) OTP [7] 中相应的 BOOTPIN-CONFIG 或 BOOTCTRL 存储器位置来修改 BMSP。
BOOTPIN-CONFIG 寄存器是一个 32 位宽的位置,包含四个 8 位宽的分区。为 BMSP 指定了三个分区,最后一个分区是指定 OTP 配置有效性的密钥。根据正在配置的区域,该寄存器在 DCSM OTP 中可以是 Z1-OTP-BOOTPIN-CONFIG 和 Z2-OTP-BOOTPIN-CONFIG。
DCSM OTP 中的 BOOTPIN-CONFIG 寄存器可以使用 CCS 中的片上闪存工具或闪存 API 进行编程(相关步骤,请分别参阅 节 5.4 或 节 5.5),或使用 SysConfig 中的 DCSM 工具以图形方式进行编程式进行编程 [8]。
| BOOTPIN-CONFIG 和 BOOTDEF 器件 | BOOTCTRL 器件 |
|---|---|
| F28002x、 F28003x、 F28004x、 F280013x、 F280015x、 F2838x、 F28P55x、 F28P65x |
F2807x、 F2837xD、 F2837xS |
BMSP 可以设置为在引导期间使用的几乎任何 GPIO(有关例外情况,请参阅器件特定 TRM 中的配置引导模式引脚一章),其中 GPIO0 为 0x0,GPIO1 为 0x01,依此类推。尽管大多数情况下 BMSP 需要通过外部 GPIO 引脚手动拉至高电平或低电平,但软件控制的固件更新可以按照 节 5.1 中所述的方法进行。
只要不违反引导模式引脚的保持时间(请参阅数据表中的复位 - XRSn - 时序要求),BMSP 也可以在引导 ROM 和之后的应用程序中使用(具有替代功能)[29]。
使用的 BMSP 的数量会以指数级扩展或限制可在引导表选择的潜在可用引导模式。如果使用三个 BMSP,则最多可以选择 8 个引导选项。减少到两个 BMSP 意味着只有四个引导选项可用。使用零个 BMSP 意味着自动选择单个引导选项,因而无需对 GPIO 进行外部操作,并且释放了需要重新用于引导引脚的其他引脚。
可以通过将 0xFF 写入与更改所用的 GPIO 编号时相同的 BOOTPIN-CONFIG 存储器位置来禁用任何特定 BMSP。解码引导模式时,BMSP0 是引导表索引值的最低有效位,BMSP2 是最高有效位。TI 建议在禁用 BMSP 时先禁用 BMSP2。
在独立引导中,如果未使用指定寄存器有效性的正确 BOOTPIN-CONFIG_KEY (0x5A) 写入 Z1 或 Z2 OTP 加载的寄存器,则会解码默认 BMSP,为默认引导表编制索引。
| 位 | 名称 | 说明 |
|---|---|---|
| 31:24 | 密钥 | 将 0x5A 写入这 8 位,以告知引导 ROM 代码此寄存器中的位有效。 |
| 23:16 | 引导模式选择引脚 2 (BMSP2) | 请参阅 BMSP0 说明。 |
| 15:8 | 引导模式选择引脚 1 (BMSP1) | 请参阅 BMSP0 说明。 |
| 7:0 | 引导模式选择引脚 0 (BMSP0) |
设置为在引导期间使用的 GPIO 引脚(最多 255)。 0x0 = GPIO0,0x01 = GPIO1,依此类推。 写入 0xFF 会禁用此 BMSP,此引脚不再用于选择引导模式。 |
使用 BOOTCTRL 寄存器(请参阅 表 2-3)的器件与使用 BOOTPIN-CONFIG 寄存器的器件系列具有不同的引导流程和配置。
使用有效密钥进行编程时,BOOTCTRL 寄存器允许将不同的 GPIO 用作双引导模式选择引脚。BOOTCTRL 器件的可自定义 BMSP 的总数固定为 2 个,而 BOOTPIN-CONFIG 器件的可自定义 BMSP 的最大数量为 3 个。但是、可以为两个 BMSP 分配相同的 GPIO,允许在所有器件上使用单个引脚。
有关 BOOTCTRL 寄存器的更多详细信息,请参阅器件特定的 TRM。