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.

[参考译文] CC2652R:在 ICALL 中止功能中挂起

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1065972/cc2652r-hanging-in-icall-abort-function

部件号:CC2652R

大家好,

     我正在进行简单的外围项目。 我想将数据从 CC2652发送到智能手机。 为此,我将零项目的数据服务集成到简单的外围项目中。 我正在使用通知属性发送数据。 为了进行测试,我每隔一秒发送一个字节的数据。 但 当我按下手机上的通知按钮时,程序将放弃 iCall 中止功能。

   当我使用读取属性向移动设备发送数据时,程序根本不会挂起。 事实上,我可以每200毫秒通过读取属性向移动设备发送128字节的数据。 但我需要通过通知属性而不在 iCall 中止功能中挂起的相同功能

此致,

Aslam

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

    Aslam 您好,

    最好能识别引发问题的代码。 您可以利用 调试指南来实现这一点

    我希望这将有所帮助,

    此致,

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

    克莱门特,您好!

       感谢您的建议,并对延迟回复表示遗憾。

      我已放置多个断点,并设法找到哪个函数抛出 iCall 中止函数。 下面是代码片段

     {
        ICall_Errno errno;
        void *pCmdStatus = NULL;
    
        errno = ICall_waitMatch(ICALL_TIMEOUT_PREDEFINE, matchLiteCS, NULL, NULL,
                        (void **)&pCmdStatus);
        if (errno == ICALL_ERRNO_TIMEOUT)
        {
    #ifdef HALNODEBUG
    #elif  defined(EXT_HAL_ASSERT)
          HAL_ASSERT(HAL_ASSERT_CAUSE_ICALL_TIMEOUT);
    #else /* !EXT_HAL_ASSERT */
          ICall_abort();
    #endif /* EXT_HAL_ASSERT */
        }
        else if (errno == ICALL_ERRNO_SUCCESS)
        {
          if (pCmdStatus)
          {
            ICall_freeMsg(pCmdStatus);
          }
        }
        else
        {
    #ifdef HALNODEBUG
    #else /* ! HALNODEBUG */
          ICall_abort();//hitting here whenever Iam pressing notify button in the app
    #endif /* HALNODEBUG */
        }
      }

     我不明白为什么它会在这里出现,请帮助我解决这个问题

    此致,

    Aslam

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

    Aslam 您好,

    能否验证所有线程/任务的优先级? 当堆栈设置为比其他任务优先级低时,我之前就看到了这个问题。

    此致,

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

    克莱门特,您好!

         发现了该问题,为了通知数据传输,当前任务应该注册 Witch ICALL。 现在工作正常。

    但我遇到另一个问题,只有20字节的数据通过 notify 属性传输。 这是应用程序问题还是设备问题。

    (注意:目前我正在使用 BLE 扫描器应用程序)

    此致,

    Aslam

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

    您好,穆罕默德

    更确切地说,每200毫秒传输128字节,每次传输20字节。 节目没有打破或死在正确的位置?

    首先,您可以检查 指定的通知字符。

    请参见 From project_zero (TI.com)

    如果您使用 的是 F0001132-0451-4000-B000-00000000,则有一个限制。

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

    您好,穆罕默德

    ~引用 userid="504079" url="支持/无线连接/蓝牙组/蓝牙/f/蓝 牙-论坛/1065972/cc2652r-hang-ide-In iCall-abort-function/3947253#3947253]'发现了该问题,因为通知数据传输当前任务应该注册 ICALL。 现在还可以。

    很高兴您找到了解决方案!

    现在,为了让其他用户利用我们的讨论,最好关闭此主题并打开一个专门针对您的新问题的新主题。 请务必包括 Simon 询问的所有详细信息。

    此致,