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.

[参考译文] IND-COMMS-SDK:PRU 未启动

Guru**** 2419530 points
Other Parts Discussed in Thread: IND-COMMS-SDK, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1529067/ind-comms-sdk-pru-does-not-start

部件号:IND-COMMS-SDK
主题中讨论的其他器件:SysConfig

工具/软件:

您好的团队、

使用 ethercat_subdevice_demo、我使用 FoE 开发了一个固件更新系统。

但是、使用 FoE 重新写入固件后、EtherCAT 应用程序会在系统初始化部分停止。

如果在未运行 sciclient_ccs_init 的情况下从 JTAG 加载 AM243 LP、则已知会发生同样的问题。

在 FoE 更新的情况下、sciclient_ccs_init不 能像 lp 一样完成。

有没有办法避免这种情况?

我正在使用 SDK sbl_ospi ver。 11.00.00.15 和   EtherCAT_subdevice_demo 版本。 11.00.00.08。

据我所知、  EtherCAT_demo ver 中没有发生这个问题。 09.20.00 和 SDK sbl_ospi 版本 11.00.00.15。

最好的注意、

Oyama

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

    您好、Oyama、

    在 EtherCAT 401 简单演示示示例中、通过 FoE 进行固件升级后、我无法重现您提到的问题。  

    通过使用 EtherCAT_subdevice_demo、我使用 foe 开发了一个固件更新系统。

    您是否已自行实施 foe API 并尝试执行固件升级?

    您是否尝试过在 401 个简单演示例中通过 FoE 执行固件升级而无需对 FoE API 进行任何修改?

    请参阅 EtherCAT 文档中的 FoE 页面: 固件升级到 FoE

    此致、

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

    您好、Harsha、

    我使用基于 ESL_Fodeo 早期版本的我自己的程序。  

     固件升级后、 每次都成功通过 SBL 上的 x509 认证。

    之后、有时应用程序会成功启动、有时会在初始化部分挂起。

    我认为在 FAE 期间没有问题。

    目前,我没有 在我的程序中调用函数 SOC_generateSwWarmResetMcuDomain(),但这有什么效果吗?

    当然、我会在 FoE 后执行硬件下电上电。

    我还将尝试使用默认 fee 示例。

    最好的注意、

    Oyama

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

    您好、

    由 fee 重写应用程序不是原因。

    当我在 LP 上运行程序时、以及在定制电路板上运行示例程序时、
    这些中没有问题、但当我在 定制 电路板上运行程序时会出现问题。

    为什么应用程序有时会卡在初始化过程中?

    什么可能导致它挂起在这里?

    最好的注意、

    Oyama

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

    您好、Oyama、

    您的自定义程序是否总是在 System_init() 中挂起?

    此致、

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

    尊敬的 Harsha:

    它并不总是挂起。
    根据程序更改、它可能不会挂起。

    最好的注意、

    Oyama

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

    您好、Oyama、

    根据程序更改、它可能不会挂起。

    哪些程序更改可以避免 System_init() 中的挂起? 代码中的任何特定更改都会导致挂起?

    此致、

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

    尊敬的 Harsha:

    不知道是什么变化导致了挂起。
    我所知道的就是 ESL_Fodeo 改变后程序挂起。
    我已经确认没有构建警告或已分配变量溢出。

    最好的注意、

    Oyama

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

    您好、Oyama、

    我所知道的就是 ESL_Fodeo 更改后程序挂起。

    您能否指定您对 ESL_Fodeo 所做的更改?
    如果您只能在此处共享信息、则可以通过电子邮件共享详细信息。

    此致、

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

    尊敬的 Harsha:

    我将  通过电子邮件分享 ESL_Fodeo。

    我将添加几个详细信息。

    在我的程序中、我动态分配 4096 字节的 foeBuffer(与 foeCircularBuffer 相同)。

    所以我更改了全局变量声明

    中导出 静态 uint8_t *foeBuffer = NULL;  

    最终目的     静态 uint8_t foeBuffer [4096]={0};

    并删除    foeBuffer 的 OSAL_memory_calloc () 和 OSAL_memory_free ()。

    在这些变化后,挂起走了。

    否则,在我注释  EC_API_SLV_foe_cbRegisterWriteFileHandler () 后,它 不再挂起。

    最好的注意、

    Oyama

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

    尊敬的 Harsha:

    似乎我无法向您发送电子邮件。 您能给我发送一封空白电子邮件吗?

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

    您好、Oyama、

    我已经发送了。

    当您尝试使用  OSAL_memory_calloc () 分配 4096 个字节时,您是否观察到任何错误或者是否成功分配了所请求的内存?
    您的 应用程序 SysConfig 中配置的堆大小是多少? 您是否尝试增大堆大小并观察它是否仍然挂起?

    此致、

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

    尊敬的 Harsha:

    此问题有时会出现、有时不会出现。  

    一旦启动、OSAL_memory_calloc 和  foe 将始终成功。
    初始化期间会出现挂起、因此尚未分配内存。

    因此、堆大小似乎足以启动应用程序。

    但是、我从 ver.09_02 复制了 SysConfig 文件、这似乎有问题吗?

    最好的注意、

    Oyama

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

    您好、Oyama、

    请使用 ind-comms-SDK 11.0 建议的工具链、并使用 sdk11.0 示例中的 syscfg 文件。
    我将您的 FoE 更改集成到了来自 Ind-comms-sdk11.00.00.08 的 EtherCAT 简单演示中、因此我无法重现问题。

    您能告诉我们如何将应用程序加载/刷写到 AM243x LP、以及在电路板上设置了哪种引导模式?

    此致、

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

    您好、Oyama、

    另外、请您告诉我、为什么启动板在没有重置 JATAG 启动时挂起?

    您能解释一下您何时观察挂起情况吗?  

    此致、

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

    您好、Harsha、

    重新创建 SysConfig 后、挂起状态消失了。

    存储器 CONFIGURAOR 与更改前相同、因此我不知道是什么原因导致了更改。

    另外、请您告诉我、当我的 JATAG 启动没有重置它时、为什么启动板挂起?

    最好的注意、

    Oyama

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

    尊敬的 Harsha:

    从 JTAG 运行 EtherCAT 应用程序后、按 SW1。
    再次连接到目标、复位 CPU、然后加载并运行程序。
    这将导致程序挂起。
    通常、您应该在按下 SW1 后加载“load_dmsc_hsfs.js"。“。

    最好的注意、

    Oyama

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

    您好、Oyama、

    建议使用 SBL NULL 从 CCS 加载应用程序二进制文件并对其进行调试/运行。
    请按照  MCU+SDK 文档中的闪存 SOC 初始化二进制一节中提供的说明进行操作。

    简单步骤:  
    UART 引导模式->闪存 SBL NULL -> OSPI 引导模式-> CCS 中的应用程序加载->运行。

    在 CCS 中加载和运行应用程序的步骤如下:CCS Launch、Load 和 Run

    此致、