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.

LAUNCHXL-CC1352R1: PRECISERR.Data Access Error on ICALL_malloc

Part Number: LAUNCHXL-CC1352R1
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hey everyone,

Versions:

Product Version
Hardware CC1352R1_LAUNCHXL_TIRTOS
CodeComposerStudio 11.1.0
SimpleLink CC13xx CC26xx SDK  5.30..1.01
XDCtools 3.62.1.16_core
SysConfig 1.10.0


I can not change the versions because the are fixed for an library I need to include for a sub GHz rf protocoll.

What I did:

I took the sample project of the sub-GHz protocll an merged the project zero project into it. I needed to adjust some thing for example add an .cfg file because the orognal Sub-GHz project does not have one. Now i have all include errors resolved and manged to get a build. The sub-GHz part is working like a charm, but when i add the the calls for the Bluetooth tasks in the main (see code below) i allways got suck in "xdc_runtime_Error_policySpin__E()" 
 

  ICall_init();

  ICall_createRemoteTasks();

  ProjectZero_createTask();

I traced the Error back to function call in the file "ble_user_config_stack.c" :

  pTxPowerTblEntries = (txPwrVal_non_const_t*)ICall_malloc(sizeof(txPwrVal_non_const_t)*(userCfg->boardConfig->txPwrTbl->numTxPwrVals));

( I am not totally sure but I think it crashes in the file rrtos_heaposal.h in line 422 "tmp =*hdr;")

    hdr = (heapmgrHdr_t *)((hmU8_t *)hdr + tmp);

    tmp = *hdr;

Something in this call makes the CC1352 crash. A look in the Runtime Object Viewer under HWI--> Exception showed me this:

I allready tryed to increase the heap-size in the CC132R1_LAUNCHXL_TIRTOS.cmd file from 30000 to 50000

//HEAPSIZE =30000;  /* Size of heap buffer used by HeapMem */
//HEAPSIZE =50000;  /* Size of heap buffer used by HeapMem */

Increasing it more resolves in an error that the buidl will not fit into the memory anymore.

Can anyonoe give me some tips to resolve the issue?

Regards
Jones

  • Hi Jones,

    I do not know how deep you are in the project right now, but given your constraints, I would have done it the other way round. That is, start from project_zero, and then add the Sub1-GHz project to it, precisely to start from a known good memory configuration for the BLE stack.

    By the way, is your Sub1-GHz library provided as a binary file, or do you have access to the source? It is usually possible to integrate library files compiled with a different compiler into a newer one.

    Finally, we do have a component to ease the integration of concurrent Sub1-GHz / BLE operations, which is called DMM: DMM Fundamentals

    Regards,

    Arthur

  • Hi Arthur,

    Thanks for your reply. I first tried including the Sub1-GHz project to the Project Zero. But this doeson't worked out. After more then a week not getting the project to compile i tryed it the other way round and so far the Sub1-GHz part runs good. So I want to get the BLE running in there too.
    Is there no possibility to include your BLE Stack in an already exisiting project?

  • Hi Jones,

    Unless your BLE part does not involve maintaining connections, such as being a simple advertiser/observer, I do not believe it will work.

    What kind of compile issues did you encounter ?

    Regards,

    Arthur

  • Hey,

    What do you mean by that?

    I want to have the CC1352 be a Bluetooth Peripheral, that advertises and can be paired/bonded with a smartphone. Do you have any instructions or guides how to create your own Bluetooth application with the CC1352? Do I always need to start by a Bluetooth example?


    Regards
    Jonas

  • Hi Jones,

    In that case, you indeed need the full BLE5 stack. We have such a guide here: Bluetooth Low Energy 5 Fundamentals

    And yes, to develop BLE5 apps, you should always start with a BLE or a DMM example, such as simple_peripheral etc..

    Regards,

    Arthur

  • Hey Arthur,

    we tried starting from the DMM example "dmm_wsnnode_ble_sp_app" but as so as we try to change the EasyLink Protocol for our Sub1-GHz protocol, we get the notifiation, that the example only works with Ble and EasyLink. So we are not able to use DMM as a fundation.

    To clearify our target. We want to have Ble that is maintained by TI and a Sub1-GHz protocol currently not maintained by TI working simultaneously on the CC1352. Is this possible by starting of withe the Ble example simple_peripheral and then adding the Sub1-GHz protocol to it? Or is it necessary to have the DMM for working with any two RF-protocols?

    Regards
    Jones

  • Hi Jones,

    Yes, indeed, we do not suggest Easylink anymore..

    I apologize for the confusion, but you can still indeed add the DMM module above your existing simple_peripheral app. You do not need to start from a DMM example in that. This is shown here: DMM Integration. This guide makes use of the "Custom" DMM profile.

    Regards,

    Arthur