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
鉴于引导 ROM 中的引导加载程序只能将代码加载到 RAM 中,闪存内核可充当 ROM 和闪存之间的纽带,它在现场提供通过各种通信协议(SCI、CAN、I2C 等)进行的基于闪存的固件升级机制。可以对闪存进行编程,方式如下:使用 ROM 引导加载程序将闪存内核下载到 RAM,然后使用闪存 API 运行 RAM 中的闪存内核以将应用程序下载到闪存。
在接收任何应用程序数据之前,闪存内核会擦除器件的闪存,以为编程做好准备。主机开始发送应用程序代码后,使用一个缓冲区保存接收到的连续应用程序代码块。当缓冲区已满或检测到新的非连续数据块时,将对缓冲区中的代码进行编程。在接收整个应用程序并将其编程到闪存后,闪存内核会转移到应用程序的入口点。
TI 已开发出闪存内核,可根据引导 ROM 源代码将代码从 RAM 加载到闪存,这可在 C2000Ware 的 examples 文件夹中找到。用户可以应用类似的开发流程,为特定应用程序实现自定义引导加载程序。可在 C2000Ware 中查看器件引导流程使用的引导 ROM 源代码(包括外设引导加载程序),其位置如下为:
在具有多个闪存组的器件上,可以调整闪存内核工程,以便从闪存而不是 RAM 中执行,从而对另一个闪存组进行编程。这样,用户可以简单地跳转到位于闪存中的闪存内核,避免在引导 ROM 中使用的引导加载程序。有关如何实现此功能的更多详细信息,请参阅 节 5.2。
在多核器件(即 F2838x、F2837xD 或 F28P65x)上,CPU1 和 CPU2 内核工程可以利用 CPU1 中的引导加载程序为 CPU2 下载修改后的引导加载程序(即闪存内核),以便下载 CPU2 应用程序映像。
CPU1 操作完成后,CPU1 可以将 CPU2 内核写入共享消息 RAM (CPU1TOCPU2MSGRAM),并在 CPU2 引导序列期间指示 CPU2 转移到 CPU2 IPC 消息复制目标 RAM (M1RAM) 中的 CPU2 入口点。在转移指令写入 M1RAM 且 CPU2 引导序列完成后,CPU2 从 M1RAM 中开始执行并转移到 CPU2 内核入口点。CPU1 内核等待 CPU2 内核命令完成,然后再继续。
有关 IPC 协议的更多详细信息,请参阅器件特定的技术参考手册。
总之,使用闪存内核的一般流程如下: