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/LAUNCHXL-CC2650:CC2650 launchXL 时钟回调卡住

Guru**** 2589245 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/600451/ccs-launchxl-cc2650-cc2650-launchxl-clock-callback-stuck

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650

工具/软件:Code Composer Studio

你好

我正在使用 CC2650 LaunchXL、从事 Multi_Role 项目、并且在首次调用回调函数后时钟会卡住。

我构建了一个时钟并添加了一个名为 toggleRedLed 的回调函数、该函数应在每个周期切换红色 LED。

时钟持续时间为1秒、当前为单次触发、周期时间为0。

当按下 UART 菜单内的向右键时、用户将启动时钟(我已在多角色原始 UART 菜单中添加了另一个菜单)。

 在用户按预期启动时钟后的一秒钟内调用 togleRedLed、并且在回调函数内打开 LED、但当回调函数完成时、整个程序会卡住、就像它不知道如何返回一样。

在这1秒内、时钟运行、程序运行正常、我可以使用 launchXL 键在 UART 用户菜单之间切换、但当时钟持续时间结束时、它会卡住。

代码:

出什么问题了?

我是否应该在回调函数的末尾添加任何内容?

我已经尝试过 Semaphore_post 和 enqueueMsg、但都不起作用。

谢谢

Amit

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

    时钟回调发生在 SWI 上下文中、该上下文同样不允许阻止 API 调用。 您的 Display print fxn 看起来可能是挂起的原因。

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

    显示屏不是问题-它在使用 CCSv7和编译器5.2.8的另一台计算机上工作正常。
    我已经下载了 CCSv7而不是 CCSv6、并将编译器版本更改为5.2.8而不是16.9.1 (由于另一个问题、我被告知要使用该版本、但该问题尚未解决)。
    但是、它对我来说不起作用、会卡住。

    这是非常奇怪的! 还有其他想法吗?

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

    您如何知道它被卡住而没有被安排? 是否在时钟回调处理程序完成后重新启动时钟? 我们建议您将事件发布到任务、并在任务中进行处理、而不是直接在时钟处理程序中进行处理、如 simple_peripheral 的 SBP 周期性事件中所示。

    祝你一切顺利