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参考资料

闪存 API

所有 C2000 操作中的闪存操作均由 CPU 执行。算法加载到 RAM 中并由 CPU 执行以执行任何闪存操作。例如,使用 CCS 对 C2000 器件的闪存进行擦除或编程,需要通过 JTAG 将闪存算法加载到 RAM 中并让 CPU 执行它们。

所有闪存操作均使用闪存应用程序编程接口 (API) 执行;器件特定的库和参考指南位于 C2000Ware [3]中的“libraries/flash_api”位置。需要在运行时对闪存进行擦除或编程的应用程序可以链接到闪存 API 库来执行闪存编程。

然而,不建议调用闪存 API 的应用程序从同一个闪存组中执行,因为在执行代码的同时对闪存进行擦除或编辑会导致竞态条件和异常行为。因此,闪存 API 需要在 RAM 或另一个闪存组中执行(如果同一内核存在额外组)。

通过将闪存 API 分配到连接器命令文件中的“.ti.ramfunc”部分,指定闪存加载地址和 RAM 运行地址,然后在执行之前将函数复制到主函数中的 RAM,可以实现这。有关在 C2000 器件上进行闪存编程的完整详细信息,请参阅 [4] 和 [5]。

注: 在多核器件上,一个 CPU 无法访问另一个 CPU 分配的闪存组。例如,CPU2 的闪存组只能通过从 CPU2 RAM 执行闪存 API 进行编程。