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.

[参考译文] RTOS/TMDSEVM6678:PA emacExample 和堆位置

Guru**** 2611705 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/652545/rtos-tmdsevm6678-pa-emacexample-and-heap-location

器件型号:TMDSEVM6678

工具/软件:TI-RTOS

大家好、我正在与 PA emacExample 合作、了解 CPPI、QMSS 和 CPSW 是如何协同工作的。 我有正常工作的内部回送、我可以"向 PC 发送数据包"和"从 PC 接收数据包"。 对于我的项目(我打算在其中使用以太网)、我需要一个非常大的堆、我希望在 DDR 中找到这个堆。 因此、对于 PA emacExample 工作、我更改了 cpsw_example_c6678.cfg 中 SystemHeap 的位置

//Program.sectMap["systemHeap"]= Program.platform.stackMemory;
Program.sectMap["systemHeap"]="DDR3";

我在控制台中收到了该消息

(二
***** 以太网单核示例开始*****
(二
QMSS 已成功初始化
CPPI 已成功初始化
已成功初始化传递
以太网子系统已成功初始化
TX 设置成功完成
RX 设置成功完成
PA_addIp 返回错误-18
通过设置失败

我看到 Pa_addIp2()中出现错误。 它返回 PA_INVALID_INPUT_Handle (-18)。  

那么问题就在这里

1) 1)该误差是什么意思? 为什么会发生这种情况?

2) 2)我可以在示例中在 DDR 中找到堆吗? 以及如何实现?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可以提供帮助的同事已收到有关您的查询的通知。 我们的回复因节假日而延迟。
    感谢您的耐心等待。

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

    在原始配置中、systemHeap 从堆栈分配、其中按平台定义位于 L2中。 我尝试将 systemHeap 更改为 DDR3、我在 DDR 中看到了用作堆的8192x30大小。 我现在还在 DDR 中看到了局部变量,但我在调用 addIP()时遇到了同样的问题-18。 它来自 PA.c:

    if (HDR->status!= PA_TBL_STAT_ACTIVE){
    RET = PA_INVALID_INPUT_Handle;

    可能需要一些时间进行调试。

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、仍在等待回答。
    我使用文件 NIMU_emacExample_EVMC6678C66BiosExampleProject.txt"中的指令从 PDK (HelloWorld)构建了另一个示例。 堆位于 MSMCSRAM 中(尝试更改为 DDR3、并且它起作用)。 初始化是类似的。 或许比较会有所帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好。 我构建了另一个项目(用于 PA 的 multicoreExample)来学习。 我尝试的第一件事是将 systemHeap 位置更改为 DDR3 (项目更复杂、我刚刚开始学习)。 我得到了:

    [C66xx_0] A0=0x0 A1=0x0
    a2=0xc0792b4 a3=0xc0d4db4
    A4=0x0 A5=0x806468
    A6=0x1000 A7=0x1844018
    A8=0xc A9=0xc05966c
    A10=0x8058e8 A11=0x0
    A12=0x0 A13=0x8058e8
    (笑声)

    因此、它在这里也不起作用。 为什么在 L2SRAM 中为这些项目找到 SystemHeap 如此重要? 我没有看到在 DDR 中定位堆的任何禁忌、但示例是否可行?