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/PROCESSOR-SDK-AM335X:Nimu 项目问题

Guru**** 2589265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/636466/rtos-processor-sdk-am335x-nimu-project-issue

器件型号:PROCESSOR-SDK-AM335X

工具/软件:TI-RTOS

我已将该项目干净地导入到干净的工作区和环境中并进行构建。 然后、将生成的应用程序复制到 microSD 并在 BeagleBone Black 上引导。

所有引导看起来正常。 以太网协商等

然后我成功 ping 192.168.1.4、等待一两分钟、然后成功 ping 通、然后再 ping 通等。几分钟后、ping 失败、目标无法到达。

这就是症状/问题、这里是环境/背景:

我从这个示例项目开始、构建了一些定制代码和 http 服务器、并达到了我所需的一切运行方式、但出现了这种症状。 因此、为了消除代码/更改中的任何"干扰"、我卸载了所有 TI 产品、并从干净的 Windows 10笔记本电脑开始。 无 c:/ti 目录等

然后我安装了 CCS v7.3.0.00019。 它创建/安装了 c:\/ti 目录和几个标准子目录。 安装 CCS 仅用于 Sitara 开发、没有其他处理器。

然后我安装了:TI-processor-SDK-RTOS-AM335x-EVM-04.01.00.06-Windows-x86-64安装、后跟 pdksetupenv 和 gmake、启动 CCS 以"安装"软件包。

然后、我创建了所有项目示例、然后创建了一个空工作区、导入了 NIMU_BasicExample_bbbAM335x_armExampleProject 并生成了该工作区。

MicroSD 格式化为可引导、包含一个 MLO 二进制映像、该映像包含在 BBB Patch tar gz 中。 二进制文件为日期1-09-14、大小为26、420字节。 已将应用复制到该应用程序、所有内容均可引导"确定"。 UART0上的标准输出。

为了解决这一问题、我一直拔出头发大约一周、找不到任何图案。 我的原始应用程序在 UART0上有一些迹线可帮助隔离、但我认为是我的代码导致了问题、并试图返回到方块1。 那么仍然存在问题。

如果我从 eMMC 引导、我可以加载 Linux、并且一切都可以运行数小时、因此我相信硬件是可以的。

问题:

当前 PDK 是否包含所有 BBB 补丁、或者我是否必须在 PDK 树中以某种方式安装它们? 这可能是问题吗?

还有其他想法吗?

-Ed

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

    您是否尝试使用 C:\ti\pdk_am335x_1_0_8\packages/ti\starterware\binary\bootloader\bin\AM335x-evm.gcc 下的 bootloader_boot_mmcsd_a8host_debug_ti.bin 作为 MLO 来引导映像? 我不确定您提到的 BBB Patch tar gz 是什么。

    此外、如果使用 JITAG/CCS 加载映像、是否存在"ping"问题?

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

    加雷特-

    谢谢您的建议。 我使用的是旧 Starterware BBB 补丁程序中的一个。 我不知道 PDK 中的 AM335X-EVM 包含 BBB 等

    我切换到使用了您所说的最新版本。 它会检测 BBB 并加载应用程序。 正常的以太网消息出现,ping 工作正常。 然后、5-10分钟后、它们停止工作。

    我没有设置 JTAG/CCS、只设置了通过 UART0监控从 microSD 引导的 MLO/app。

    我已经使用 Wireshark 监视了流量。 正常的 ARP、TCP、ICMP 以及 Windows 希望输出任何以太网端口的所有其他垃圾。 ARP 在第一次 ping 时完成。 然后是用于 ping 的 ICMP。 然后、当它死机2-3时、ICMP 将向电路板的 MAC 发出未应答的消息。 然后,新的 ARP 会出去尝试重新查找目标。

    下一个想法?

    当我在应用程序包含来自检测信号任务的 UART0消息之前运行该应用程序时。 心跳任务每秒与 LED 一起播放一次、然后每5分钟播放一次、输出一个任务 CPU 使用表。 重要的是心跳和5分钟输出将继续。 因此、我相信 TI-RTOS 仍然稳定、但堆栈没有响应。 由于库存示例不执行任何 LED 输出、我拔下以太网电缆并重新插入。 出现两条有关 PHY 0和协商通信的消息。 TI-RTOS 和堆栈的某些部分看起来很活跃。 但 Ping 无法重新启动。

    是否有需要提升 NDK 默认堆栈的机会? 更新中的某些内容可能会使用过去的更多内存?

    同样、我的应用程序显示了这些症状、因此我转到了没有变化的示例、以尝试证明其稳定性、但仍然发现了此症状。

    -Ed

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟进:1478次连续 ping 操作(约20分钟)。 但是、我停止了 ping。 等了几分钟,还可以,等了几分钟,还可以... 等待分钟、失败

    因此、持续 ping 似乎起作用。 但是 ping、暂停、ping、暂停似乎失败了。

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

    这很奇怪、Ping 失败并暂停。 默认值、ip.maxReassemblySize = 3020、您是否可以尝试调整此值以查看其行为是否不同? 您可以将其添加到 Nimu_Bebam335x.cfg 中。

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

    加雷特-

    感谢您的帮助。 很抱歉、回复似乎延迟了。 我在回复之前尝试进行所有可能的测试。

    新消息:我又赶了几个 BBB、他们今天早上就到了。 原始和新#1上的症状相同。 涵盖所有可能性。

    信息:为了方便起见、我通过笔记本电脑的 USB 电缆为电路板供电。 插入 了 USB 功率计。 电压4.95v、0.13A 平均电流。 因此、电源看起来稳定且不 会超过 USB 能力。

    我将.cfg 文件复制到新文件中、因此我不会污染示例源。 它是指向文件的链接、而不是副本(即使我在导入时要求"复制文件")。 然后、我更改了 maxReassembly = 6040 (2x orig)。

    在所有具有旧配置或新配置的电路板上进行的所有测试仍然以相同的方式失败。 在 Linux 模式下测试了新电路板、并再次"永久"工作。

    注意:引导的跳线硬件是否可能"错误"? 我制作了一个带有性能板的小接头、并将引脚44 (LCD_DATA3)连接 到1x2跳线、然后跳线的另一侧通过一个130Ohm 电阻连接到引脚2 (DGND)。 这样、我就可以安装/移除跳线以选择 MicroSD 引导。 总是看起来工作正常。 甚至尝试在引导 Linux 后安装跳线、以确认它没有影响 Linux 运行。 我使用130欧姆作为强拉、因为该引脚已在 BBB 上被拉高。

    正如我说过的、我不确定这种症状的原因。 我已经将板直接连接到笔记本电脑和/或通过 WiFi 连接到我的 LAN 和 LAN 上的板。 因此、Windows 10 ARP 仅用于直接、TP-LINK WiFi ARP 用于 LAN。

    在这里或那里丢失 ping 是可以接受的。 协议应涵盖的内容。 但是、这会"锁定"堆栈、并且在锁定后不会对任何内容做出响应。 同时、TI-RTOS 似乎正在运行。 原始的完整应用程序症状是点击几个网页、然后冻结尝试点击另一个网页。

    -Ed

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    意思是说:所有 BBB 都是从 Mouser 购买的、修订版 C、GHI Electronics 制造的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、我移除了"引导跳线接头"并使用了引导按钮、并认为它运行得更好、然后它仍然被锁定。 我的理论是、默认情况下、LCD_DATA_3可能会在默认电路板设置中引脚多路复用为输出、我将其下拉并对 MCU 造成损害。 仍然没有解决。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ed:

    我今天不在办公室、将尝试在星期一获得 BBB、并使用 JTAG 进行测试以缩小问题范围。

    此致、

    Garrett

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

    谢谢。

    根据您的"增加重新组装"建议、我还在讨论其他一些问题。 我第一次将重新组装升级到16384、没有乐趣。 添加了 ICMP 模块、无欢乐。 增加 IP 中的最大套接字 conns (?) 从8到32、没有乐趣。

    然后疯狂地增加了 NDK 中我可以获得的大部分内存:

    重新组装:3020至16384

    NetCtrl (?)  堆栈:8192至16384

    Lo/Med/Hi 堆栈:将每个堆栈加倍、达到6144、8192、10240

    帧数:384至762

    页面大小:3072至6144

    页数:16至32

    所有的改变都是不高兴的。

    已经使用原电路板#2和#3进行了测试。 ORIG &#2已被安装我的接头"滥用"。 3永远不会有。 始终只需使用引导按钮。 有一点担心、如果 LCD_DATA3被软件引脚多路复用为输出、131欧姆电阻可能会从 LCD_DATA3中消耗25mA 的电流。 如果是、我的错。

    我将返回使用我的软件、并希望 Garrett 能提供答案。 一切都可能是 Win 10愚蠢的堆栈、但这是我们生活的真实世界、我需要 NDK 与 Win 10完美搭配、就像 Linux 一样。

    所有这些都是为了准备从 SOM 提供商处移植到开发板、然后移植到我们接受 SO-DIMM SOM 模块的定制板。 首先尝试使 BBB 正常工作、以便我知道我和其他电路板何时会产生问题。

    有时症状会有所变化。 有时、在暂停后、它会像以前一样死亡。 有时、它会错过两个 ping、然后会关闭、但稍后会消失。 可能只是有趣的时间等 即使在"有效"的连续 ping 中、我也没有丢弃任何数据包、但一个数据包需要64ms 才能完成。 这是在我的 WiFi/LAN 设置中、我只是假设拥塞。

    稍后的所有测试都是在我的直接以太网电缆上进行的。

    -Ed

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

    尊敬的 Ed:

    我刚刚收到 BBB Rev C 板、今天早上运行了 Ping 测试。 您观察到的间歇性 Ping 失败在我的设置中不可重现。 我使用-n 选项进行了连续 ping 测试、也尝试暂停然后恢复。 您是否尝试过其他 Windows PC 或终止了一些与网络相关的任务? 但是、我的笔记本电脑/ PC 都运行 Windows 7。

    此致、

    Garrett

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

    好的、我将尝试其他几种环境(Win 7、Linux 等)并提供建议。

    我知道这可能是 Win10和我的环境、但如果有垃圾锁住 NDK 堆栈、我需要知道这一点。 我还将发送 Wireshark 跟踪、以显示哪些是有效的、哪些 是无效的。 Wireshark 还将显示故障发生的时间。 您可能正在等待不同的时间,或者您的舌头不对;^)

    我因运气不好而闻名。 如果我订购了50块电路板,我会拿一块电路板,第一块电路板将无法通过测试,然后测试另外49块电路板,没有问题...

    -Ed