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.

[参考译文] AM3359:Nimu_ICSS 问题

Guru**** 2555630 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/597972/am3359-nimu_icss-issue

器件型号:AM3359

您好!

由于"NIMU_BasicExample"存在未知问题(请参见  ),我尝试了与"Nimu_ICSS_BasicExample"相同的代码(源文件和头文件)。

这里的情况稍有不同。 有趣的是,当我调用 connect()时,不会出现上述异常。
但是、现在我得到(6)作为返回值、表示这是错误 ENXIO。 参考指南、它说我必须声明特殊的 SocketOption、但我使用 StreamSocket 通信、其中不需要此选项。 当我创建优先级为"5"的相应任务时、这就是结果。
另一个非常有趣的事情是、当我创建优先级为"4"的任务时、我不会得到该返回值。  此外、我无法看到任何控制台信息(system_printf 未激活?!)。
但是、通信优先级为"4"、对于我来说、为什么?!

如果我调用"TcpEchoServer"、当我转到第105行的 Accept()时、我再次得到这个奇怪的例外(如上述文章中所述)。
这对我来说也有点令人困惑。

我将添加当前源文件和主文件以进行调查。

e2e.ti.com/.../main_5F00_a8.c

e2e.ti.com/.../SocketClient.c

e2e.ti.com/.../SocketServer.c

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

    >>这种情况有点不同
    您是否更改了 AM335x ICE v2上的 CPSW/ICSS 跳线设置?
    processors.wiki.ti.com/.../AM335x_SYSBIOS_Industrial_SDK_Getting_Started_Guide
    (笑声) 可通过在引脚1和2之间连接跳线引脚来选择 CPSW。 可通过在引脚2和3之间连接跳线引脚来选择 ICSS。

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Garrett、
    当然、我更改了跳线。
    否则,它将不会像我在前面提到的那样在任务优先级"4"中起作用。
    问题必须不同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mario、

    NIMU_ICSS_BasicExample_icev2MA335x CCS 工程包括创建 dtask_tcp_echo 守护程序的 netHoooks.c、您是否尝试在.cfg 文件中启用它而不是使用工业 SDK 1.0中的文件?

    Global.networkOpenHook ='netOpenHook';
    Global.networkCloseHook ='netCloseHook';

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

    遗憾的是,在 config-File 中启用"OpenHook"和"CloseHook"并不能解决任务优先级>4的问题。
    是否需要进行其他修改?

    我不确定是否有任何从工业 SDK 连接的文件、因为我的项目中没有使用链接、包含和库。

    希望您对我的问题有更多的想法:-(
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mario、

    ndkThreadPri 设置为5、 使用 XGCONF 打开 nimu_icss_arm_wSocLib.cfg 时、请参阅 NDK 内核堆栈的"属性"。 这可能说明您的任务优先级为何需要低于5。

    那么、您是否已经消除了对工业 SDK 的依赖? 您的项目构建日志是什么样的?

    此致、Garrett

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

    您好、Garret、
    如果你是指"网络调度程序任务优先级"、那么我必须说、我将它增加到了"高优先级"。

    正如您在随附的屏幕截图中看到的、NDK 堆栈线程以优先级8运行。

    然而,不能连接到任务优先级为5的 socket()。

    是... 应消除每种依赖关系。 请参阅项目构建日志:
     e2e.ti.com/.../1731.buildlog.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于任务优先级较高的问题、是否有任何新想法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mario、

    正常优先级 NDK 任务的优先级设置为5、这将导致守护程序函数的优先级设置为5。 您可以尝试增加此值、看看它是否会改变较高优先级任务的行为。

    此致、Garrett

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

    您好、Garrett、

    感谢您的回答。 我已经尝试过你的建议,我认为这是可行的。
    我已经配置了以下情况:


    现在将 Task-Prio 设置为5将启用到控制台的 System_printf()。
    但是,我无法理解100%的原因,我想这样做。

    也许您可以在一些简短的句子中解释这种行为的原因... 这对未来也很有意义