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.

[参考译文] TMS320F28379D-Q1:TMS320F28379D-Q1

Guru**** 2510095 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1535031/tms320f28379d-q1-tms320f28379d-q1

器件型号:TMS320F28379D-Q1
主题中讨论的其他器件:TMS320F28379D

工具/软件:

您好:
我正在与一个 TMS320F28379D 合作。 我通过 CAN 接收由 CPU1 接收的数据、并可以写入 CPU1 或 CPU2 的闪存。 这对于 CPU1 来说不是问题。 数据会写入闪存并且在该存储器中永久可用。 CPU2 的数据通过 IPC 传输、并以相同的方式写入闪存。 在这里、一切似乎都正常、没有错误消息。 只有数据不是永久可用的。 有时、会留下一个数据块。 如果我在从 CPU1 到 CPU2 的传输中添加了 100mS 的延迟、则数据也会永久存在于 CPU2 的闪存中。 我该如何在没有此延迟的情况下工作?

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

    尊敬的 Rainer:

    您能否提供一些有关如何将数据写入 CPU2 映射的闪存的更多详细信息。 下面是指向 IPC 用户指南的链接。 第 4.4 节和第 4.5 节讨论如何同步核心并将大量数据从一个 cor 发送到另一个 cor。

    https://software-dl.ti.com/C2000/docs/C2000_Multicore_Development_User_Guide IPC/ipc_communication.html# 

    此致、

    Ozino

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

    尊敬的 Rainer:

    能否确认 在运行主代码之前、两个核心应用程序中是否调用了 IPC_SYNC 函数。

    这是同步内核所需的关键步骤。 这是一个阻塞函数、将在 CPU2 和 CPU1 确认请求之前停止。

    https://software-dl.ti.com/C2000/docs/C2000_Multicore_Development_User_Guide devices/ipc_communication.html#synchronize-2-cores

    您能否确认如何将数据从 CPU1 发送到 CPU2。 您是仅使用消息 RAM 还是将其用作 IPC 消息队列的一部分? 如果使用后者、您需要考虑如何设置命令寄存器。 请参阅以下链接。

    https://software-dl.ti.com/C2000/docs/C2000_Multicore_Development_User_Guide ipc/ipc_communication.html#ipc-message-queques 

    此致、

    Ozino

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

    我有一个问题来帮助我理解。 为什么我们在这里谈论 IPC? 我的问题与为什么闪存中的存储没有按预期发生有关。

    问题
    1.我不使用
    IPCSync 功能。 背景:我使用 ipc_driver_lib。 。
    如代码片段中所示、进行同步实现
    符合 IPCBit-10 标准。 同时使用 ipc.h 和
    F2837xD_Ipc_drivers.h 会导致错误。

    2.我不使用 IPC 消息队列。

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

    尊敬的 Rainer:

    让我将此问题转发给 Flash 团队、看看他们在这里是否有一些意见。

    此致、

    Ozino

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

    尊敬的 Rainer:

    该专家目前已离职、 下周您将获得更多反馈。

    谢谢。此致、

    Charles

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

    尊敬的 Rainer:

       在开始闪存操作之前、您能否确认是否在等待闪存泵可用?

    此致、

    Rajeshwary

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

    您好 Rajeshwary、

    我不能完全确定你的意思是“等待“。

    我对 CPU1 的闪存存储器使用 CPU1 执行闪存操作、之后会启动 CPU2 的 main ()。 通过完成闪存泵至 CPU2 的切换 SeizeFlashPump()。 之后、CPU2 的闪存被擦除、然后开始按块写入 CPU2 的闪存。

    我相信 SeizeFlashPump() 功能中包含了等待闪存泵的功能。

    回答你的问题:是的,我想我正在等待闪存泵。

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

    尊敬的 Rainer:

    SeizeFlashPump() 正在等待 CPU 抓取 sempore。 CAB 在您读取 FMSAT 寄存器后,请在 Flash_program() 函数中添加以下行,检查是否记录了任何错误?

    //在执行编程命令之后读取 FMSTAT 寄存器内容以了解 FSM 的状态、//以查看是否存在任何与编程操作相关的错误

    oFlashStatus = Fapi_getFsmStatus();

    if(oFlashStatus != 0)

    {/

    /检查 FMSTAT 并相应地进行调试

    fmstat_fail();

    }

    此致、

    Rajeshwary

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

    嗨、Rajeshwary、
    我还没有机会测试该建议。 我想我下周会回来。
    此致、Rainer

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

    尊敬的 Rainer:

    感谢您的更新。

    此致、

    Rajeshwary

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

    Hallo Rajeshwary,
    ICH habe jetzt einige Tests durchgeführt und festgestellt, dass mein problem nicht mit der Flash-API zusammenhängt , sondern mit der Beobachtung während des Debuggens。 Es sind keine Fehler aufgetreten。 Es dauerte jedoch einige Zeit, bis die realen Werte Gedächtnisbeobachtung der während ó n im CCS angezeigt wurden. Vielen Dank für Ihren Rat. ICH denke, das problem ist gelöst。

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

    您好 Rajeshwary、
    我现在进行了一些测试、发现我的问题不是与闪存 API 有关、而是与调试期间的观察结果有关。 未发生错误。 但是、在存储器观察期间、CCS 中显示实际值需要一些时间。 感谢您的建议。 我认为问题已经解决。