ZHCU802A March 2020 – August 2021 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1
对静态内容进行编程后,断开调试器的连接,并将引导模式开关设为闪存引导模式。器件进行引导时,将跳转至闪存。默认的闪存入口点是 0x80000,这是 Bank0 中编程静态代码(组选择逻辑 + SCI 闪存内核)的位置。组选择逻辑将执行,并确定闪存组 0 和 1 中均存在有效映像(基于 KEY 和版本号)。将选择运行 Bank0,因为在Topic Link Label6.1中,它是较晚编程的,因此会根据 REV 字段判定为最新版本。因此将执行 Bank0 中的应用固件。
此应用每秒钟闪烁一次 LED1。同时,应用还会监控串行端口,检查是否存在用于实时固件更新的映像。
若要执行实时固件更新,应为 BANK1 配置构建更新的应用,并从主机 PC 的命令行中执行图 6-13 中显示的命令。列出菜单后输入“8”来选择 LDFU。 serial_flash_programmer_appln.exe -d f28004x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel.txt -a flashapi_ex3_live_firmware_updateBANK1FLASH.txt -b 9600 -p COMx.
如果它接收一个映像,控制将跳转至 Bank0 中的闪存内核,并更新 Bank1 上的固件映像。传输完成后,输入 0 以指示命令操作结束。在将新映像下载到 Bank1 的过程中,应用会继续在 Bank0 上运行(LED1 继续照常每秒闪烁)。这是因为 LFU 处理在后台循环中进行,不是在 SCI 接收中断中进行。这样就可以处理其他中断(例如开关 LED 的 CPU 计时器中断)。
看门狗计时器复位后,器件也会复位,控制会传递至 Bank1 中最新的应用映像,LED2 将开始闪烁。
不再需要手动将器件复位。
重复此过程,以更新交替组中的映像。图 6-15 所示为上述流程。