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: Hanging in ICALL abort function

Part Number: CC2652R

Hi all,

         I am working simple peripheral project. I want to send data from CC2652 to smartphone. For this purpose, I am integrated data service of project zero into simple peripheral project. I am using notify property to send data. For the testing purpose, I am sending One byte data for every one second. But  when I press a notify button in the mobile, program getting handed on icall abort function.

     When I am using read property to send data to mobile, program is not hanging at all. In fact, I am able to send 128 bytes of data to mobile for every 200ms through read property. But I need same functionality through notify property without hanging in icall abort function

Regards,

Aslam

  • Hi Aslam,

    It would be nice to identify the piece of code raising the issue. You could do this by leveraging the debugging guide.

    I hope this will help,

    Best regards,

  • Hi clement,

         Thanks for your suggestion and sorry for the late response.

        I have put multiple breakpoints and I managed to find which function throwing Icall abort function. Below is the snippet of the code

     {
        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 */
        }
      }

     I not getting why it is hitting here, Please help me resolve this issue

    Regards,

    Aslam

  • Hi Aslam,

    Could you please verify the priority affected to all the threads/tasks? I have seen this issue being raised before when the stack was set to a lower priority than other tasks.

    Best regards,

  • Hi clement,

              Found out the issue, For notify data transfer current task should register witch ICALL. Now its working fine.

    But I got another issue, only 20 bytes of data is transferring through notify property. Is this app issue or device issue.

    (Note: currently I am using BLE SCANNER app)

    Regards,

    Aslam

  • Hi Mohamed,

    To clarify, you are transferring 128 bytes every 200ms, and you can get 20 bytes every time. Program didnot break or die right?

    To start with, you can check the notify character given.

    see from project_zero (ti.com)

    if you are using F0001132-0451-4000-B000-000000000000, then there is a limit.

  • Hi Mohamed,

    Found out the issue, For notify data transfer current task should register witch ICALL. Now its working fine.

    Glad you have found the solution!

    Now, in order to allow other users to leverage our discussion, it would be best if you could close this thread and open a new one dedicated to your new issue. Please make sure to include all the details asked by Simon.

    Best regards,