This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F280049C:C2000Ware SCI 串行引导加载程序示例-最佳实践

Guru**** 2522770 points
Other Parts Discussed in Thread: C2000WARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1399366/tms320f280049c-c2000ware-sci-serial-bootloader-example---best-practice

器件型号:TMS320F280049C
Thread 中讨论的其他器件:C2000WARE

工具与软件:

您好!  

我正在查看 C2000Ware 中的 SCI 串行引导加载程序示例- C:\ti\c2000\C2000Ware_5_02_00_00\utilities\flash_programmers\serial_flash_programmer

我可以在 f2837xD_fw_upgrade_example.txt 文件中看到以下内容。

以下是命令行选项:

•DFU
•擦除
•验证
•解锁 Zone 1
•解锁 Zone 2
•运行 CPU1
•复位 CPU1
•停止更新的

以下是固件更新过程:

对闪存(DFU)进行编程的过程:
1) 1)在 SCI 引导模式下对 F2837xD 进行引导。
2) 2)将串行端口从 PC 连接到正确的 GPIO 引脚(取决于 SCI 引导模式1或2)
3)从主机命令行:
serial_flash_programr.exe -d f2837xD -k F2837xD_sci_flash_kernels_cpu01.txt -a blinky_cpu01.txt -p COM7 -b 9600
这将使用 SCI 引导加载程序将闪存内核下载到器件的 RAM 中、并开始执行
内核。
4) 4)为 CPU1选择选项1 DFU。
5) 5)选择 Run CPU1或 Reset CPU1。

我想知道更新固件是否是最佳做法。 是先执行 "Erase"命令 、然后执行 DFU 命令、还是仅使用 DFU 命令就足够了?

谢谢!

Brent

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 SCI 闪存内核中看到以下代码

       Flash_initModule (FLASH0CTRL_BASE、FLASH0ECC_BASE 、 5);
       initFlashSectors ();
    这是否会擦除闪存、而无需从命令行执行 Erase 命令?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Brent:

    是的、标准做法应该仅使用 DFU CPU1选项。 initFlashSectors ()函数仅初始化闪存 API 并设置活动的闪存组。  闪存内核在加载新数据之前对可编程扇区进行擦除、 C2000微控制器的串行闪存编程 应用手册的第5.1节对此进行了详细说明。

    谢谢。此致、

    Charles