CC2642R: ICall Abort function error during repeated BLE connection and disconnection

Part Number: CC2642R
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello,

I am using CC2642R for my BLE application. For testing, we have developed a small python utility (Uses the open source Bleak Library) which connects to the peripheral CC2642R (Code developed on the basis of the Simple Peripheral Example), perform certain operations and disconnect. Keeping a sleep period of 5 seconds, we are continuously performing such operations. 
However on debugging we have observed that the ICall free heap stack space continuously reduces on each connect disconnect cycle. It keeps on reducing up to a point where further connections are not possible and program goes into MEMORY ERROR.

The same repetitive operations when performed via a standard BLE Scanner App (Android as well iOS) does not cause such reduction in free memory. So my question is, how can I free the allocated memory after disconnection so that even if the master device does not terminate link with the required commands, the CC2642R should be able to free all the allocated memory.

Bonding and pairing is disabled and GATT NO CLIENT setting in Sysconfig is enabled. CC2642R has been kept directly connectable with no passkey option.

Thanks and Regards

  • Hello Raj,

    Thank you for reaching out! I have a few questions regarding your project.

    • Are you using any ICall APIs inside your application? If yes, which APIs and when? If not, what makes youu say that the ICall free heap stack is reducing? Please elaborate
    • What type of operations are you performing?
    • Which SDK are you using?

    Answering these questions should help us in narrowing down the root cause.

    Best Regards,

    Tarek D

  • Hello Tarek,

    --> I have only used ICall_registerApp() in my created main task. After placement of the application on debugging, we had observed that 

               --> When we try to perform operations using any standard app, (Eg. LightBlue or BLE Scanner) the ICall heap stack size (totalFreeSize and largestFreeSize)  remains relatively unchanged (if not it increases)

               --> However when connected via Python Utility, the heap size (totalFreeSize as well as largestFreeSize) after disconnection reduces to around 228 bytes (same operations have been performed)

    --> In that task, after receiving a specific command from mobile app, it used multiple drivers such as AES, UART, TRNG 

    --> Currently using version 7_41_00_17

  • Are you updating Advertisement parameter  before or after Connection ?

    if Yes how you are doing.

    If no then what is your application .Could you try with another window app if same behaviour ? 

  • Hello,

    No i am not updating any advertisement parameters. Only the Transmission Power of the Radio is changed based on the commands received. 

    The windows application which is being used is a python utility (uses open source "Bleak Library"). I am using it to read, write and notify. 

    I have tried different library (bluepy) but with the same results (drop in ICall)

  • Hello Raj,

    Unfortunately, I do not have any experience with the python library you're using. Could you possibly send two packet sniffer logs, one when using the standard apps, and one when using the python library. Maybe we can find the issue there.

    Best Regards,

    Tarek D