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.

Problem at BIOS start after changing TI-RTOS version

Hi,

I'm currently developping an application on the CC2640F128 with ble stack  v2_00_00_42893 and TIRTOS 2.11.1.09.

I want to update my ble stack to v2_01_00_44423 and my TIRTOS to 2.14.3.28 which is the latest and i have some trouble with it.

Of course I had to go through the "erase the ProjectCOnfig/src" folder because of the xdc problem and to update the functions that changed since.

Now I have the problem that when the BIOS is started the firmware seems to not start the tasks. Furthermore, when I debug the only infor I have is ""0x1001BBD6 (no symbols are defined for 0x1001BBD6) and the code keeps executing the instruction at the address and the following one.

My target configuration hasn't changed and is the following: http://pastebin.com/2a40JsLZ

EDIT: I undertood that my problem is that my code is stuck in the exception handler of the TI-RTOS.
The problem is from the IBUSERR flag which is raised. Problem is I don't know why because it seems to be raised by the ICall task. When I give the task more stack size, the error still remain.

Do you have any idea of where the problem might come from ?

Regards.

Julien

  • I think that I get what the problem is.

    I'm stuck in the built-in TI RTOS CPU exception handler. This can be due to the stack missing or a peripheral problem.

    I loaded the stack from the simpleBLEPeripheralStack project which comes with the BLE stack V2.1 and implement an exception handler function with the following prototype: exceptionHandler(struct exceptionFrame *e, unsigned int execLr).

    The values are the following:

    execLr = 0x20002470
    _r4       = 0xC920003F
    _r5       = 0x0100004D
    _lr        =  0x3F1001CA
    _pc      = 0xF81001CA
    _xpsr   = 0xCA88C1B5

    all others registers = 0x011001CA

    Checking the CFSR register I can see that the IBUSERR flag is raised. The problem comes from the ICall task that causes a stack overflow.

    Problem is I don't understand why it does when it didn't with previous version.

    Furthermore, ICall stack size is determined by TI to a size of 800 bytes.

    EDIT: increasing the ICall stack size to 1024 doesn't solve this problem. I still have the exception.

  • Can you try to trace back to see where the exception occurred?

    Please refer to the following for details on how to do this, given the exception dump you're getting:

    processors.wiki.ti.com/.../BIOS_FAQs

    Steve
  • Hi Julien,

    The register values don't make too much sense, not sure what's going on. Could you try running TI-RTOS from flash instead of ROM by commenting out the two top lines in the cfg file? var ROM=... and the other one. I don't think Stevens suggestion works with the ROM'd kernel, as a lot of the more helpful things have been compiled out there.

    Also, it may be you are trying to bite over a lot at once, so it's hard to say what the problem is. We unfortunately don't have a porting guide for using the latest TI-RTOS with BLE SDK 2.1, but you should in any case make sure that the porting to 2.1 has been successful first. You could also try porting e.g. SimpleBLEPEripheral from the 2.1 SDK to the latest TI-RTOS separately (since that obviously already works with the 2.1 SDK).

    How do you know that it's the ICall task stack overflowing? Can you see this from the ROV?

    Best regards,
    Aslak