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.

[参考译文] TMS320F28388D:F28388D:是否存在针对 CM 闪存或内核间闪存访问的 CPU1/CPU2 存储器别名?

Guru**** 2964230 points

Other Parts Discussed in Thread: TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1650537/tms320f28388d-f28388d-is-there-cpu1-cpu2-memory-aliasing-for-cm-flash-or-inter-core-flash-access

器件型号: TMS320F28388D

大家好!

我正在使用 TMS320F28388D、并实施多核引导加载程序 (CPU1 作为主器件、加上 CPU2 和 CM)。

我想阐明针对不同内核进行闪存编程的存储器访问模型。

从 TRM 存储器映射中、我看到:

  • CPU1 (C28x) 有自己的闪存地址空间
  • CPU2 (C28x) 也有自己的闪存区域
  • CM (Cortex-M4) 具有单独的闪存区域(0x0020xxxx 范围)

但是、我无法找到以下两种地址的任何 CPU1 可访问别名地址的明确说明:

  • CPU2 闪存
  • CM 闪存

我的理解是:

  • CPU1 无法直接访问 CM 闪存或对其进行编程
  • 根据映射/所有权、CPU1 可能有权也可能无法直接访问 CPU2 闪存
  • CM 闪存编程必须由 CM 本身通过其闪存 API(可能通过 IPC 触发)完成

有人能否确认以下几点?

  1. CPU1 到 CPU2 闪存是否有任何存储器别名或直接地址映射?
  2. CPU1 是否有任何存储器别名或到 CM 闪存的直接地址映射?
  3. 或者、CPU2 和 CM 闪存是否完全超出 CPU1 存储器映射、需要基于 IPC 的方法或自编程方法?
  4. CPU1 是否有任何支持的 TI 机制可以使用 F021 闪存 API 直接对 CM 或 CPU2 闪存进行编程、或者这种严格地针对内核?

我想确保没有误解硬件存储器架构或缺少支持的引导加载程序方法。

提前感谢您所做的任何澄清。

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

    您好 Agostino、

    ",="" arial,="" sans-serif;="" font-size:="" 16px;="" font-weight:="" 400;="" margin:="" 0px;="" text-decoration:="" none;="" border-bottom:="" 0px="" rgb(10,="" 10,="" 10);"="">在 ",="" arial,="" sans-serif;="" font-size:="" 16px;="" font-weight:="" 600;="" margin:="" 0px;="" text-decoration:="" none;="" border-bottom:="" 0px="" rgb(10,="" 10,="" 10);"="">F2838x 器件上、CPU1 没有任何存储器别名或到 CPU2 闪存或 CM 闪存的直接地址映射。 CPU2 闪存和连接管理器 (CM) 闪存均严格超出 CPU1 存储器映射

    请查看 f2838x 器件 —  TMS320F2838x 闪存 API 版本 1.00.00.00 的闪存 API 文档

    以下是少数支持 E2E 的项目:  

     TMS320F28388D:使用 MSGRAM 将 CM 通信到 CPU1 

    (+) TMS320F28388D:通过 CPU1 访问(读取)CPU 2/CM 闪存 — C2000 微控制器论坛 — C2000Tmμ︎ 微控制器 — TI E2E 支持论坛

    谢谢

    Aswin

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

    尊敬的 Aswin:

    感谢您的答复。

    因此、执行软件更新的唯一方法是使用三个引导加载程序(每个内核一个)、并使用 IPC/MSGRAM 协议在内核之间进行数据传输。

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

    是的、这是推荐的方法。  我将查看一个使用 SCI 引导加载的实现示例、此应用手册对此进行了详细介绍: www.ti.com/.../sprabv4.pdf

    F2838x 上的闪存架构为 CPU1、CPU2 和 CM 内核提供了完全独立的闪存子系统。 虽然内核的闪存组可能 从每个内核自身的角度映射到相同的地址范围、但它们在物理上是独立的硬件资源、没有交叉内核别名。   因此、F021 闪存 API 严格为内核局部型。

    此致、
    马特