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.

[参考译文] CCS/CC3220SF-LAUNCHXL:Azure SDK - IOT 客户端示例 MQTT -用于发送消息的 ISR 会导致无限循环

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/899393/ccs-cc3220sf-launchxl-azure-sdk---iot-client-sample-mqtt---isr-for-sending-msgs-results-in-an-endless-loop

器件型号:CC3220SF-LAUNCHXL

工具/软件:Code Composer Studio

您好!

我使用的是 TI Launchpad 和 Azure SIMPLE Link SDK。

我创建了一个 ISR、用于将 LED 的状态发送到 Azure IOT HUB。

我正在使用 IoTHubClient_LL_DoWork (iotHubClientHandle)通过网络发送数据、但这会导致无限循环。

请给出建议。

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

    您好!

    ISR 链接到"Click of button_0"。

    调用 ISR、直到它开始执行  IoTHubClient_LL_DoWork (iotHubClientHandle)、ISR 正常运行。

    之后、它最终会进入 Hwi 中的无限循环。

    请告诉我是否有人找到了解决此问题的方法。

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

    您好!

    您是否检查 了 IoTHubClient_LL_DoWork()在 ISR 上下文中是否可以安全调用? 由于 Azure SDK 代码来自第三方、我不熟悉它、无法判断它是否可以在 ISR 上下文中安全执行。

    您是否曾尝试让 ISR 向队列发布事件、或者可能解除主线程中信号量的阻断? 从 最佳实践的角度来看,让 ISR 在线程上下文中触发某些活动,而不是直接运行 IoTHubClient_LL_DoWork()函数,会更好。 由于在 HWI 优先级上调用网络功能会产生不利影响、这是因为在执行相对较慢的网络功能时、它将优先于所有其他线程。


    此致、

    Michael

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

    您好!

    我认为优先级可能是问题。 我通过使用一个变量来解决它。

    我使用中断来更改变量。

    我在线程中使用了相同的变量来检查变量的状态。

    这起作用了。

    感谢你的帮助。

    Rohan D'Shouza