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.

[参考译文] TMS320F280025:CAN 引导固件更新

Guru**** 2212110 points
Other Parts Discussed in Thread: TMS320F280025, UNIFLASH
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1170928/tms320f280025-firmware-update-on-can-boot

器件型号:TMS320F280025
主题中讨论的其他器件: UNIFLASH

您好!

  我们需要通过 CAN 接口进行固件更新、我们正在使用 TMS320F280025 MCU、是否提供最新的 SDK 支持 f28002x 的 CAN 引导加载程序功能。

谢谢、

Nagaraj

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

    您好、Nagaraj、

    是 有关 CAN 引导加载程序功能还是 CAN 闪存内核的查询? CAN 引导加载程序作为 ROM 代码的一部分提供。 可 在启动期间使用引导模式选择引脚或用户 OTP 来选择此 CAN 引导加载程序。 用户应用程序可以使用此 CAN 引导加载程序加载到 RAM 中。

    闪存内核、我们目前没有任何基于 DCAN 模块的东西。 提供基于 MCAN 的闪存内核。 但是 F280025没有这个 MCAN 模块。

    谢谢、此致、

    Pawan

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

    大家好、Pawan、

            感谢您的回复、我们必须使用 CAN 引导加载程序通过闪存组0或组1中的 CAN 接口加载用户应用程序(固件更新)。 并 从闪存加载更新的固件、然后从闪存运行用户应用程序。

    谢谢、

    Nagaraj  

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

    您好、Nagaraj、

    这需要首先使用 CAN 引导加载程序将 CAN 闪存内核加载到 RAM 中。 然后、此闪存内核可与主机交互、以将更新的映像加载到闪存中并对其进行编程。 遗憾的是、我们目前没有基于 DCAN 的闪存内核示例、只有基于 MCAN 的闪存内核可用。

    谢谢、此致、

    Pawan

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

    大家好、Pawan、

            我们是否可以使用 FLASH_API 将固件映像更新到主应用程序本身的闪存中、并使用新固件映像启动、是否可以这样做?

    谢谢、
    Nagaraj

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

    您好、Nagraj、

    我 正在与闪存 API/固件更新专家就此进行咨询。

    谢谢、此致、

    Pawan

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

    您好、Nagaraj、

    是的、这是可能的。 您需要在器件设置和初始化之后在应用固件中实现一个功能、用于检查 CAN 总线的特定数据帧。 如果找到数据帧(例如5A5A5A5A)、您将继续通过 CAN 引导将固件更新下载到闪存。 如果未找到数据帧、您将定期继续到固件的初始入口点所在位置。 如果 在特定 的时间(例如5秒)内未找到响应、您还需要超时。  

    如果您有任何疑问、请告诉我。

    谢谢、

    查尔斯

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

    您好、Charles、

     感谢您的回复、我们不 是通过 CAN Boot 将固件更新下载到闪存、而是在 我们客户的应用程序代码中执行此操作、只要请求固件更新命令、然后将固件下载到闪存吗?

    是否需要在闪存扇区中单独保留闪存 API、并在客户的应用代码中使用相同的闪存 API 来下载新固件并写入闪存?

    谢谢、

    Nagaraj

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

    您好、Nagaraj、

    是的、此方法适用于应用程序代码使用。

    您可以将闪存 API 保持单独。 您可能同时拥有 RAM 中包含 API 的闪存内核和具有 API 的客户应用程序代码、或者您可以在闪存中拥有闪存内核并在需要时使用其 API、这将为客户应用代码节省空间。 这取决于客户应用程序代码占用的空间大小。

    谢谢、

    查尔斯

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

    您好、Charles、

           感谢您的回复、我已将 BANK0分为两个映像插槽、Image1插槽保存扇区3至9的地址、映像2插槽保存从地址扇区10到扇区15地址的固件、 在链接器脚本中、我可以修改哪些内容、以便映像1必须在器件复位时从扇区3启动、即0x83000、映像2必须从扇区10启动、即 0x08A000。

    我们如何通过 CCS 或 Uniflash 工具在特定闪存地址的器件(TMS320f28002x)上加载两个映像?

    谢谢、

    Nagaraj

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

    您好、Nagaraj、

    为了通过 CCS 在器  件上加载两个映像、您可以合并两个.out 文件以进行一次加载(.out 用于应用程序和固件更新)。

    在合并之前的链接器脚本中、您将 为该特定映像映射每个相应的段、而不会导致重叠。  

    我明天将提供有关这方面的进一步说明。

    查尔斯

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

    您好、Charles、

           我将等待您的来信。

    谢谢、

    Nagaraj

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

    您好、Nagaraj、

    已在消息中提供更新和可能的呼叫。

    谢谢、

    查尔斯