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/AM4378:PRP 示例问题

Guru**** 2602855 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/650105/rtos-am4378-prp-example-issue

器件型号:AM4378

工具/软件:TI-RTOS

您好!

PRU-ICSS-HSR-PRP-DAN_01.00.02.00 - PRP 示例问题。
在 main 中

extern PRUICSS_Config pruss_config[2 + 1]; 

在为 pruss1创建处理程序之前、pruss_config 数组用于"获取"配置

PRUICSS_socGetInitCfg (&pruss_config); 

在这里、pruss_config[0]对象设置为自身、pruss0对象的地址被断开。

PRP 示例起作用、但如果您将 pruss0用于其他内容、它会很常见。

 




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Marko、

    我看到 pruss_config[0].object 设置为 prussObjects、定义为 PRUICSS_V1_Object 和 From

    /* PRUICSS 对象*/

    PRUICSS_V1_Object prussObjects[PRUICCSS_Instance_MAX-1];

    /* PRUICSS 配置结构*/

    PRUICSS_Config pruss_config[PRUICCSS_instance_MAX]={

      {

        &prussObjects[0],

        prussInitCfg[0](&P)

      }、

    也是如此

    typedef 结构 PRUICSS_V1_Object_s

      uint32_t       pruicss_version;

      内部32_t         实例;     /* PRUICSS 写入信标*/

      无效*        prubBinBuff[2];     /*缓冲区数据指针*/

      uint32_t    bufflen[2];

      PRUICSS_IrqFunMap pruEvntOutFnMapArray[PRUICSS_MAX_WAIT_EVENT];

    }PRUICSS_V1_Object;

    我不太关注您- pruss0对象的地址被破坏。 您能否详细说明或是否有故障日志来说明问题?

    谢谢、
    Garrett

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

    您好、Garrett、

    请流式说明我的观点和步骤:

    1) int main()->

    #if!已定义 SOC_AM335x
    PRUICSS_socGetInitCfg (&pruss_config);
    #endif 

    pruss_config 在 pruicss_SoC.c 中定义

    2) 我向程序中添加了一些变量和内容、因此地址可能会有所不同、但尝试逐步调试并检查结构数组 pruss_config。
    2.a)将断点放置到:

    *cfg =&pruss_config[0]; 

    第785行- pruicss_drv.c 中的函数 PRUICSS_socGetInitCfg()
    2.b)检查 pruss_config 的地址。 在本例中为0x800A7E18
    2.c)检查 pruss_config[0]。object 值。 在本例中为0x8010E154
    2.d)步骤至:

    返回 PRUICSS_RETURE_SUCCESS; 

    2.e)检查  pruss_config[0]的值。object... 必须与&pruss_config[0]相同。 以下是 pruss_config[0]的.object 值(对象的地址)已断开、因为*cfg 也是 pruss_config[0]。
    因此、如果有人想使用 ICSS0、则会得到异常 cuse *。object 中断!

    2.f)这是错误?

    此致、Mare


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

     马来

    您可能是指上面在快照中突出显示的问题。 似乎 main()中的 pruss_config 应为局部变量,而不是'extern PRUICSS_Config pruss_config[2 + 1];'

    此致、Garrett

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

    Garrett、

    正确!

    此致、Mare

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

    我找到了有关该错误的内部记录。 这已在即将发布的 HSR/PRP 1.0.3版本中得到解决。 谢谢!

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Garrett、
    我很高兴给予合作。
    我还建议在示例中使用 SysMin 而不是 SysStd。 SysStd 执行耗时的操作会使 EMAC 驱动程序在 INIT 上不稳定。 我在有关 PRP 问题的预览帖子中提到了这一点。
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    马来

    是的、我们的计划中也使用 SysMin 而不是 SysStd、我们有专用票据来跟踪更改。

    此致、
    Garrett