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

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2配置引导模式
    1. 2.1 独立引导
      1. 2.1.1 引导模式选择引脚 (BMSP)
      2. 2.1.2 引导定义表 (BOOTDEF)
      3. 2.1.3 引导 ROM OTP 配置寄存器
      4. 2.1.4 CPU2 启动流程
    2. 2.2 仿真引导
  6. 3对闪存编程
    1. 3.1 闪存 API
    2. 3.2 闪存内核
  7. 4将代码引导加载到闪存
    1. 4.1 C2000 Hex Utility
    2. 4.2 常见引导模式
      1. 4.2.1 引导至闪存
      2. 4.2.2 SCI 引导
      3. 4.2.3 CAN 引导
      4. 4.2.4 CAN-FD 引导
      5. 4.2.5 USB 引导
  8. 5常见问题解答
    1. 5.1 通过基于软件的实现施选择 BMSP GPIO
    2. 5.2 从闪存而非 RAM 运行闪存内核
    3. 5.3 在调试引导 ROM 时没有定义符号
    4. 5.4 使用片上闪存工具向 OTP 中写入值
    5. 5.5 使用闪存 API 插件向 OTP 中写入值
  9. 6总结
  10. 7参考资料

引导模式选择引脚 (BMSP)

引导模式选择引脚 (BMSP) 由器件解码并用于为引导定义表编制索引,以确定要执行哪种引导模式。除了每个器件上提供的默认引导配置外,用户还可以通过对 OTP 存储器进行编程来选择其他 BMSP 和引导模式。虽然 ROM 的存储器内容是在制造时确定的,但在生产后只能对 OTP 编程一次,从而在要求可靠且可重复地读取数据的应用场合下提供更大的灵活性。

在独立引导加载的背景中,在以下情况需要对 OTP 进行编程:

  1. 默认引导选项中不包括引导选项
  2. 外设或 BMSP 需要不同的 GPIO
  3. 需要使用不同的应用程序入口点
  4. 需要灵活使用多种引导选项

根据器件系列(如 表 2-3 中所示),可通过写入用户可配置的双代码安全模块 (DCSM) OTP [7] 中相应的 BOOTPIN-CONFIG 或 BOOTCTRL 存储器位置来修改 BMSP。

注: 在 DCSM 中,有两个可以分配安全资源的独立安全区 – 区域 1 (Z1) 和区域 2 (Z2)。安全模块限制 CPU 的访问为片上安全存储器和资源,而且不中断或停止 CPU 执行。当读取安全存储器位置时,读取返回零值,CPU 继续执行下一条指令。这可以有效阻止通过 JTAG 端口对安全存储器的读取和写入访问。请注意,JTAG 调试程序仍然可以访问不安全的资源。

BOOTPIN-CONFIG 寄存器是一个 32 位宽的位置,包含四个 8 位宽的分区。为 BMSP 指定了三个分区,最后一个分区是指定 OTP 配置有效性的密钥。根据正在配置的区域,该寄存器在 DCSM OTP 中可以是 Z1-OTP-BOOTPIN-CONFIG 和 Z2-OTP-BOOTPIN-CONFIG。

注: 在 Z2 中进行编程的配置优先于 Z1 中的配置。因此,如果需要更改 OTP 配置,TI 建议先使用 Z1 位置,然后使用 Z2 位置。

DCSM OTP 中的 BOOTPIN-CONFIG 寄存器可以使用 CCS 中的片上闪存工具或闪存 API 进行编程(相关步骤,请分别参阅 节 5.4节 5.5),或使用 SysConfig 中的 DCSM 工具以图形方式进行编程式进行编程 [8]。

表 2-3 按器件系列划分的引导配置类型
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]。

注: 但是,如果使用 LaunchPad™ 或 controlCard,则默认 BMSP 通过外部引导开关手动上拉/下拉,并且之后无法在应用程序中安全地使用。

使用的 BMSP 的数量会以指数级扩展或限制可在引导表选择的潜在可用引导模式。如果使用三个 BMSP,则最多可以选择 8 个引导选项。减少到两个 BMSP 意味着只有四个引导选项可用。使用零个 BMSP 意味着自动选择单个引导选项,因而无需对 GPIO 进行外部操作,并且释放了需要重新用于引导引脚的其他引脚。

可以通过将 0xFF 写入与更改所用的 GPIO 编号时相同的 BOOTPIN-CONFIG 存储器位置来禁用任何特定 BMSP。解码引导模式时,BMSP0 是引导表索引值的最低有效位,BMSP2 是最高有效位。TI 建议在禁用 BMSP 时先禁用 BMSP2。

在独立引导中,如果未使用指定寄存器有效性的正确 BOOTPIN-CONFIG_KEY (0x5A) 写入 Z1 或 Z2 OTP 加载的寄存器,则会解码默认 BMSP,为默认引导表编制索引。

表 2-4 BOOTPIN-CONFIG 位字段
名称 说明
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,此引脚不再用于选择引导模式。

注: 如果仅使用 BMSP2(BMSP1 和 BMSP0 禁用),则只能选择引导表索引 0 和 4。如果仅使用 BMSP0,则可选引导表索引 0 和 1。在对引导表中的引导选项进行编程时务必记住这一点,因为无论其他 BMSP 的状况如何,每个 BMSP 仍会保持位置权重。
注:

使用 BOOTCTRL 寄存器(请参阅 表 2-3)的器件与使用 BOOTPIN-CONFIG 寄存器的器件系列具有不同的引导流程和配置。

使用有效密钥进行编程时,BOOTCTRL 寄存器允许将不同的 GPIO 用作双引导模式选择引脚。BOOTCTRL 器件的可自定义 BMSP 的总数固定为 2 个,而 BOOTPIN-CONFIG 器件的可自定义 BMSP 的最大数量为 3 个。但是、可以为两个 BMSP 分配相同的 GPIO,允许在所有器件上使用单个引脚。

有关 BOOTCTRL 寄存器的更多详细信息,请参阅器件特定的 TRM。