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.

[参考译文] TMS320F28377S:使用 SCI 进行固件升级

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/855289/tms320f28377s-firmware-upgrade-using-sci

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARE

您好!

我正在使用 SCI 进行固件升级。 我们在使用最新版本的代码升级固件时遇到问题、因为固件 使用以前的版本。 我注意到、随着代码大小的增加、固件升级失败。 它显示了类似这样的内容

增加的代码大小是否会影响引导加载过程? 我怀疑它与引导加载程序有关。 如果您对此有任何信息、请分享。

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

    您好!

    请检查您是否在  

    1. 使用最新 C2000Ware v2.00.03软件包中的 F2877S SCI 内核?  
    2. 使用更新的链接器命令文件构建应用程序、这样这些段在128位上对齐。 即使用对齐(8)而不是对齐(4)。

    编程之前是否尝试擦除闪存扇区? 即在使用选项1之前使用选项2。

    请将您的答案告诉我。

    谢谢、

    Katta

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

    您好!

    我已经检查了 C2000Ware v2.00.03软件包中的内核和 cmd 链接器文件。 此外、我还在 DFU 之前执行了擦除。

    我遇到程序错误。 下面随附了屏幕截图供您参考

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

    我已使用最新的内核和链接器文件检查了旧固件的固件升级。 它正在成功升级固件。 但是、当我尝试使用最新固件进行固件升级时、会返回程序错误。

    我的观察结果是、旧固件和新固件之间的唯一区别是代码大小增加了。  

    请帮帮我。

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

    您好!

    您是否检查了是否使用更新的链接器命令文件构建应用程序、以便使这些段在128位上对齐。 即使用 align (8)而不是 align (4)?

    谢谢、

    Katta

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

    大家好、我使用的是使用 align (8)的更新链接器文件。

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

    如果您使用的是该命令、请让我来看看  

    hex2000.exe -boot -sci8 -a -o

    以生成文本文件。

    谢谢、

    Katta

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

    是的。

    我将在 CCS 中的 postbuil 步骤中使用以下命令来生成.txt 文件:

    "${CG_TOOL_HEX}""${BuildArtiftFileName}"-boot -sci8 -a -o "${BuildArtiftFileBaseName}.txt"  

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

    您好!

    有一种调试方法可以了解问题出现的时间点。

    使用串行闪存编程器的 Visual Studio 项目。  注释掉 DownloadKernel ()函数。 重建以生成 serial_flash_programmer.exe。

    这样、您就可以直接将应用程序发送到内核、即跳过编程内核。

    直接通过 CCS 加载内核。 使用更新的串行闪存编程器发送应用。 在内核中放置一个断点  

    statusCode.status = program_error;

    在 \C2000Ware_2_00_00_03\device_support\f2837xs\examples\CPU1\F2837xS_sci_flash_kernel\cpu01\shared_Boot.c 中

       当到达断点时、请告诉我 BlockHeader.DestAddr、oReturnCheck 和 oFlashStatus 的值。 这将有助于调试。

    谢谢、

    Katta