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/TM4C1294NCPDT:NTP 任务"synctim"总线故障-如果断开网络连接、我是否应该停止 NTP 服务?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/611447/rtos-tm4c1294ncpdt-ntp-task-synctime-bus-fault---should-i-stop-the-ntp-service-if-i-disconnect-network

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

相关详细信息:

TIRTOS 版本:2.16.00.08

NS 1.11.00.10

在我的设备获取 IP 地址后、我设置 SNTP 并同步时间。

我只是为了进行可靠性测试而测试多个器件以太网复位、发现 synctime 任务在一个点上出现故障。

这是否是我的故障、因为我在间歇性地断开网络连接的情况下、让 SNTP 任务继续运行?

在下面的图片中、我强调了在这个问题之前发生的事件。

首先是网络移除(我的测试的一部分)、我将以太网连接切换到设备。

第二、重新发送超时。 不是意外的、因为我有正在进行的 HTTP 任务、可能会被中断。

第三,非法的 ARP 尝试。 我不知道这是什么。

其他需要注意的事项是从内存中取出的 heapmem。 我目前正在使用99%的 SRAM、但还没有机会尝试修复它。 但是、我认为只有发生了内存不足的情况、因为我通过指向错误的 URL、将多个 HTTPS 故障快速地重新返回。 当然、我通常看不到这种情况。 我认为这可以忽略、除非您认为它可能导致 synctime 中的总线故障。

如果有任何帮助,我们将不胜感激。 如果我可以提供其他信息、或者我错过了一些明显的信息、请告诉我。 谢谢!

--Subhash

我附加了我认为可能有用的 ROV 视图和堆栈跟踪内容:

这是代码中的故障点:

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

    您好 ,Subhash,

    [报价用户="S D"]我只是测试了多个器件的以太网复位以进行可靠性测试[/报价]

    是否关闭网络堆栈? 如果不是、您如何生成它?

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有关闭网络堆栈。 我正在从设备上物理移除以太网并重新连接它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    看起来 NDK 堆栈已关闭。 我在您的屏幕截图中看到它已终止:

    是否可以尝试在 NDK 关闭时关闭 SNTP? 您可以使用 NDK 挂钩函数来执行此操作(例如、网络关闭挂钩)。

    可以通过配置文件的 ti.ndk.config.Global 模块访问挂钩。

    Steve

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

    感谢您的回复。 我没有注意到 NDK 线程已终止。

    我不是有意将其关闭。 它是否会因错误而崩溃或关闭? 这就是为什么我没有得到回调...

    对于如何正确处理 NDK、SNTP 和相关功能的网络断开事件、您是否有任何建议?

    我实施了一项更改、在失去网络连接时停止 SNTP。 如果可以、我将再次尝试重现此问题。

    谢谢!
    --Subhash