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.
您好!
我们需要通过 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、
已在消息中提供更新和可能的呼叫。
谢谢、
查尔斯