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.

[参考译文] LAUNCHXL-F280039C:通过 ProgramrFlashDCAN 进行刷写似乎成功、但仍会保留旧固件

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1539089/launchxl-f280039c-flashing-via-programmerflashdcan-seems-successful-but-old-firmware-remains

器件型号:LAUNCHXL-F280039C
主题:C2000WARE 中讨论的其他器件

工具/软件:

您好:

我正在使用 C2000 器件、并尝试使用 ProgramrFlashDCAN 来刷写新固件。 该工具会报告操作已成功完成、但当我运行器件时、其行为仍然就像之前的固件存在一样。

但是、当我通过 Code Composer Studio (CCS) 刷写相同固件时、更新工作正常、新固件按预期运行。

我已经确保:

  • 选择了正确的固件文件。

  • 器件已正确通电并连接。

  • ProgramrFlashDCAN 中未显示错误消息。

可能会遗漏一些内容吗? 如有任何建议、将不胜感激。

谢谢你。  

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

    尊敬的 Zeynep:

    您能否描述运行  ProgramrFlashDCAN 时的设置?  您是否可以通过某种方式确认 CAN 通信部分正常工作?

    此致、

    Joseph

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

    您好、Joseph:

    感谢您的答复。

    我已经使用示例工程测试了 CAN 通信 CAN_EX5_TRANSMIT_RECEIVE 提供的二进制文件、并且通信正常工作。 器件能够发送和接收消息而不会出现任何问题、因此我相信 CAN 设置功能正常。

    如果有任何具体问题需要在刷写过程中仔细检查、请告诉我。

    此致、
    Zeynep

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

    尊敬的 Zeynep:

    好的、谢谢。  这证明 CAN 通信部分正常工作。  让我来参考我们的闪存内核专家。

    此致、

    Joseph

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

    尊敬的 Zeynep:

    运行主机编程器和内核后、器件的状态是什么? 它是否分支到应用程序?

    您能否确认器件处于 CAN 引导模式?

    此外、您必须将.txt 文件中的第一个保留字(位于 AA 08 密钥之后)修改为 C0 7A、这将使内核以 1Mbps 的速率运行以匹配主机编程器。 有关更深入的说明、请参阅 DCAN 内核示例中的注释:driverlib\f28003x\examples\flash\flash_kernel_ex5_dcan_flash_kernel.c。

     C2000 微控制器的 CAN 闪存编程(修订版 A) 应用手册也可能会提供帮助。

    此致、

    Alex

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

    您好 Alex、

    感谢您的答复。

    澄清:

    • 我使用的是 LaunchPad、然后使用硬件开关选择 CAN 引导模式。

    • 在刷写内核并运行主机编程器后、我会将引导模式切换回正常状态(位置 0)。 但是、器件仍在运行 先前固件 、这表明应用程序未正确刷新或未执行。

    关于比特率:
    我是有意使用的 100kbps 对于 CAN 通信、而不是 1Mbps。 因此、我假设我不应将保留字修改为C0 7A、因为该值将内核配置为 1 Mbps。 如果我错了、请纠正我、我是否应该在那里使用不同的值来匹配 100kbps?

    此致、
    Zeynep

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

    您好 Alex、

    只是跟进我之前关于使用 100kbps CAN 通信并为.txt文件中的保留字保留适当的值的消息。

    如果您可以确认C0 7A本例中是否需要与不同的值、或者我是否应该在刷写过程中调整其他任何值、我将不胜感激。

    期待您的指导。
    再次感谢您的支持!

    此致、
    Zeynep

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

    尊敬的 Zeynep:

    我在外面看了一眼,也不知道该怎么说。 如果您只想使用 100Kbps,则可以将这些字节留空 — 默认配置为 100kbps。

    引导是否可以使用 GPIO 4 和 5、您是否使用这些 GPIO 来发送数据、您能否确认内核配置为也使用 4 和 5?  

    此外、应用程序必须进行 128 位对齐、才能由内核正确编程。 是否在链接器命令文件中使用 align (8)?

    此致、

    Alex

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

    您好 Alex、

    感谢您的答复。

    • 是的、我在器件和内核端都使用 GPIO4 和 GPIO5 进行 CAN 通信。

    • 我确认内核已配置为也使用 GPIO4 和 GPIO5。

    • 关于对齐、我ALIGN(8)在链接器命令文件中使用所有相关段以确保 128 位对齐。

    如果您需要任何其他信息、或者我需要验证其他设置、请告诉我。

    此致、
    Zeynep

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

    尊敬的 Zeynep:

    我想我已经复制了这个问题、并进一步研究了这个问题。 同时、您使用 XTAL 或 INTOSC 作为时钟源的是什么? 运行内核后、您能否连接到器件并查看是否有任何内容写入闪存?

    此致、

    Alex

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

    尊敬的 Zeynep:

    我认为这来自与闪存内核中的扇区擦除相关的时序问题。 我随附了一个版本、该版本在下载和编程数据之前使用存储体擦除来擦除所有闪存、您能尝试一下吗?

    此致、

    Alex

    e2e.ti.com/.../kernel_5F00_100kbps_5F00_bankerase.txt

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

    您好 Alex、

    感谢您发送支持存储体擦除的更新内核。

    我已经使用kernel_100kbps_bankerase.txt您提供的对其进行了测试、但很遗憾、结果仍然相同:刷写后、器件会启动到之前加载的应用程序。

    为了帮助进行调试、我附上了:

    • .txt我使用的应用程序文件

    • 我构建并刷写的内核工程/代码

    如果您能快速查看格式或对齐方式是否有问题、我将不胜感激。

    再次感谢您的支持!

    此致、
    Zeynep/cfs-file/___key/communityserver-recommunications-component-files/171/dcan_5F00_flash_5F00_programr.rar

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

    尊敬的 Zeynep:

    那么、即使使用存储体擦除内核、闪存也没有被擦除? 这会使我认为您器件的引导 ROM 未接收 CAN 帧。

    您是否可以尝试以下步骤:

    1.通过 CCS 连接到设备、然后发出 XSRn

    2.按下 CCS 中的播放按钮

    3.使用内核运行主机编程器。 当显示“已加载内核“时、暂停在 CCS 中执行

    4.为您的设备加载引导 ROM 符号。 (在 C:\ti\c2000\C2000Ware_5_03_00_00\libraries\boot_rom\f28003x\rev0\ROM_symbol_libs\bootROM 中找到)

    当您暂停执行时程序计数器的值是多少? 是否仍在引导 ROM 中执行、或者是否已将执行传递给内核?

    此致、

    Alex