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.

[参考译文] CC1352P7:Wi-SUN 边界路由器:MLME_TRANSACTION_overflow

Guru**** 2468460 points
Other Parts Discussed in Thread: CC1352P7, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1465854/cc1352p7-wi-sun-border-router-mlme_transaction_overflow

器件型号:CC1352P7
主题中讨论的其他器件: SysConfig

工具与软件:

你好

我有一个在 CC1352P7 Wi-SUN 边界路由器上运行的应用。 它仅连接了一台路由器。 一段时间后(在这种情况下为1小时)。 Wi-SUN 栈开始发出消息"MCPS 数据按状态26失败"、然后再发送一个小提示位消息"MCPS 数据按 MLME_TRANSACTION_overflow"。

一般情况下是什么导致这种溢出的原因。 实际上是什么导致了该溢出? 是否缺少确认?

请注意、我使用的 CoAP 接口禁用了 WISUN_NCP_ENABLE。 这是因为 bacward 兼容性。

附件是为本例记录的跟踪文件。 以时间戳开头的库由应用程序生成。

Eskoe2e.ti.com/.../Log_5F00_MLME_5F00_TRANSACTION_5F00_OVERFLOW.txt

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

    尊敬的 Esko:

    状态"241"是事务溢出的错误代码、因为它已在错误日志中解析。
    此错误是通过保持网络正常的低级 Mac 函数设置的。

    您能解释一下在发生错误之前您要向边界路由器发送哪些命令吗? 您的应用程序中的常规事务流程是什么?

    为了进一步跟踪该问题、您还可以提供有关您的网络设置和所选 PHY 的更多详细信息?

    此致、
    等等

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

    Helllo Theo

    使用的系统有一个通过串行端口连接到边界路由器的主器件。 主站本身具有到移动网络的2G/4G 连接。 在这种情况下(为简单起见)、主站不通过移动网络接收任何命令。 但主设备每分钟向边界路由器发送一次时间指示、地址为广播地址 FF03::2。 如本例中所述、只有一台路由器连接到边界路由器获取时间指示。 当然、BR 也会收到此指示。 无需通过 Wi-SUN 进行其他通信。

    BR 应用程序基于示例 ns_br_src。 BR 硬件是 LP-CC1352P7-1的副本、带外部闪存。

    此致

    Esko

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

    尊敬的 Esko:

    非常感谢您提供的所有信息。

    您是否更改了网络参数、尤其是 SysConfig (TI Wi-SUN FAN ->网络-> MAC)中的广播间隔(默认值1020ms)?

    此致、
    等等

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

    您好

    不、我尚未更改、但现在我将进行更改并报告结果

    谢谢

    Esko

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

    尊敬的 Esko:

    请注意、如果在示例应用程序之后写入数据、而每次广播间隔到期时、都会将数据写入缓冲区、则在 SysConfig 中设置的广播间隔将由应用程序暂停、以确保不会发生缓冲区溢出。

    您需要确保清空缓冲区的频率高于向其写入数据的频率。 每次广播计时器到期时、它仅发送一条消息。

    此致、
    等等

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

    您好

    我在测试中的应用每分钟仅发送一条广播消息。

    我将"广播间隔"更改为10000 (即10秒)、但没有纠正问题。 该值是否已经过大?

    如何确保清空缓冲区?

    您是否有广播消息的示例应用?

    谢谢

    Esko

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

    尊敬的 Esko:

    这种时间间隔将导致 Mac 每5秒检查队列中的广播消息。这意味着每分钟发送广播消息的速度绝对足够快。

    跳频模式下 TI15.4的默认示例包括默认情况下发送广播消息。 您可以在 collector.c sendBroadcastMsg()中遵循此操作。

    除此之外、您可以使用 collector.c 中的 Mac 回调 dataCnfCB() 每次 返回 ApiMac_STATUS_SUCCESS 时、您都知道消息实际上是发送的、而不仅仅是写入队列。

    此致、
    等等

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

    尊敬的 Theo:

    我最终找到了这样做的原因、它是在应用程序端动态内存溢出。

    谢谢。此致

    Esko