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.

[参考译文] TMS320F28P650DK:MCAN 和 IPC 冲突、多核数据共享和访问违例

Guru**** 2535590 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1557563/tms320f28p650dk-mcan-and-ipc-conflict-multi-core-data-sharing-and-access-violation

器件型号:TMS320F28P650DK


工具/软件:

尊敬的专家:

我们的客户遇到了以下问题、并有一些问题:

  1. MCAN 和 IPC 冲突:
    启用 IPC 后、MCAN 初始化失败。 TI 是否提供任何同时支持 MCAN 和 IPC 功能的示例?

  2. 多核数据共享:
    客户需要使用 MCAN、因此不使用 IPC 功能。 对于多核数据共享、他们是否应该采取任何预防措施? 在 TI 的示例中、提到了以下代码:

    void writeDataCPU1 (void)

    uint16_t 索引;

    //
    //使用第一个位置编写乘法器。
    //
    cpu1RWArray[0]=乘法器;

    for (INDEX = 1;INDEX < 256;INDEX++)

    cpu1RWArray[index]= index;

    //
    //以下代码将尝试写入分配的共享 RAM
    //到 CPU2、因此会导致访问违例。
    //
    // cpu1RArray[index]= 1000 + index;
    }
    }

    该示例提到了“访问冲突“。 这是否会导致 CPU 或 CLA 生成可能中断正常系统运行的异常(故障或陷阱)?

  3. 当前的多核数据共享方法:
    客户当前的方法是指定内核之间的读取/写入操作方向、由数据贡献器写入、数据接收器读取。 除了数据不能实时更新的问题外、这种方法是否存在其他潜在风险?

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

    嗨、Lawrence、

    感谢您的联系。 首先、我想为客户指明以下有关使用 C2000 器件进行多核  开发的文档:《C2000Tm 多核开发用户指南—C2000Tm 多核开发指南》  

    1) IPC 和 MCAN 的初始化顺序是什么? 您是否按照上述文档中的定义使用 C28x_0 (Core0) 进行所有这些初始化? 我不知道有任何执行这两个功能的示例、这些示例以非常精确的方式构建用于测试/验证、旨在作为构建块供用户进行设计以满足系统/应用要求

    2) 这是关于下面注释的代码行。 如果运行了“cpu1RArray[index]= 1000 + index;“行、则会引发访问违例、因为存储器为只读。 访问违规会导致执行 ITRAP、如下面的 TRM 中所述。

    有专用的 ACCESS_PROTECTION_REGS 寄存器、用于配置/访问违例状态。

    3) 这听起来是一个有效的方法。 任何额外的多核“gotchas"都“都将在上面随附的用户指南中进行定义。

    请让他们查看此信息、我们很乐意解答引起的任何后续问题。

    此致、

    Zackary Fleenor