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.

RTOS/CC3220S: E_busFault: PRECISERR in TI mailbox code

Part Number: CC3220S
Other Parts Discussed in Thread: SYSBIOS, , UNIFLASH

Tool/software: TI-RTOS

Hey there.

I apologize for not having a stack trace, which we are able to obtain but I don’t have at the moment.

This may be related to recent update from CCS 8.3.0 to 9.0.1 including updating SimpleLink SDK to latest.

We’re using 2.40.02.00 version of SinpleLink SDK. Considering updating to 3.10 but that appears to break some APIs...

Does TI generally recommend using GCC or TI compiler? I think that may have changed from GCC to TI recently as well.

[Cortex_M4_0] {module#38}: line 1154: E_hardFault: FORCED
{module#38}: line 1231: E_busFault: PRECISERR: Immediate Bus Fault, exact addr known, address: fff8e11a
Exception occurred in background thread at PC = 0x20007b72.
Core 0: Exception occurred in ThreadType_Task.
Task name: {unknown-instance-name}, handle: 0x20020740.
Task stack base: 0x200207a0.
Task stack size: 0x800.
R0 = 0xfff8e110  R8  = 0xffffffff
R1 = 0x00000000  R9  = 0xffffffff
R2 = 0x00000000  R10 = 0xffffffff
R3 = 0x00002710  R11 = 0xffffffff
R4 = 0xffffffff  R12 = 0x00000000
R5 = 0xffffffff  SP(R13) = 0x20020e00
R6 = 0xffffffff  LR(R14) = 0x20007b63
R7 = 0xffffffff  PC(R15) = 0x20007b72
PSR = 0x01000000
ICSR = 0x0440f803
MMFSR = 0x00
BFSR = 0x82
UFSR = 0x0000
HFSR = 0x40000000
DFSR = 0x00000001
MMAR = 0xfff8e11a
BFAR = 0xfff8e11a
AFSR = 0x00000000

  • Tom,

    What device are you using? We recommend using TI Compiler, but the decision is of course up to you. What example are you running where you run into this issue? 

  • Hey Vincent,
    We are not running an example, but our use of mailbox is based off of the example projects. Here is our stack trace:

    Decoded exception,
    Decoded,Hard Fault: FORCED: BUSFAULT: PRECISERR.Data Access Error. Address = 0xf0f1fd2e
    Exception context,
    $addr,0x200214c0
    $type,ti.sysbios.family.arm.m3.Hwi.ExcContext
    threadType,ti.sysbios.BIOS.ThreadType_Task
    threadHandle,0x20020ee0
    threadStack,0x20020f40
    threadStackSize,2048
    r0,0xf0f1fd24
    r1,0x0
    r2,0x0
    r3,0x2710
    r4,0xffffffff
    r5,0xffffffff
    r6,0xffffffff
    r7,0xffffffff
    r8,0xffffffff
    r9,0xffffffff
    r10,0xffffffff
    r11,0xffffffff
    r12,0x20027cbc
    sp,0x200215a0
    lr,0x20007b63
    pc,0x20007b72
    psr,0x1000000
    ICSR,0x803
    MMFSR,0x0
    BFSR,0x82
    UFSR,0x0
    HFSR,0x40000000
    DFSR,0x1
    MMAR,0xf0f1fd2e
    BFAR,0xf0f1fd2e
    AFSR,0x0
    Exception call stack,
    0 ti_sysbios_knl_Semaphore_pend__E(struct ti_sysbios_knl_Semaphore_Object *, unsigned int) at Semaphore.c:207,PC = 0x20007B72 FP = 0x200215A0
    1 ti_sysbios_knl_Mailbox_pend__E(struct ti_sysbios_knl_Mailbox_Object *, void *, unsigned int) at Mailbox.c:242,PC = 0x20014B36 FP = 0x20021600
    2 readFromChannelNonBlocking(struct ti_sysbios_knl_Mailbox_Object * *, void *) at channels.c:28,PC = 0x2001AD46 FP = 0x20021628
    3 aggregateChannels(void *) at state-aggregator.c:17,PC = 0x200115DC FP = 0x20021638
    4 RunOnInterval(error* (*)(), unsigned int, void *) at run-task-on-interval.c:14,PC = 0x20018668 FP = 0x200216D8
    5 RunStateAggregator(struct DeviceChannels *) at state-aggregator.c:58,PC = 0x2001AF50 FP = 0x200216F8
    6 StateAggregatorThread(void *) at state-aggregator-thread.c:9,PC = 0x2001B5C8 FP = 0x20021700
    7 _pthread_runStub$43(unsigned int, unsigned int) at pthread.c:721,PC = 0x200198B8 FP = 0x20021710
    8 ti_sysbios_knl_Task_exit__E() at Task.c:481,PC = 0x20013B30 FP = 0x20021728

    We have already validated that the inputs to the ti_sysbios_knl_Mailbox_pend__E method are NOT NULL and are correct.This issue does not appear to occur every time, but appears to happen ~50% of the time when we start the debugger in Code Composer Studio. We previously had no problems with mailboxes prior to this issue.

    Thanks,

    Chris and Tom

  • We simply added some sleeps to our code, and now a different ti library is throwing exceptions:
    0 ti_sysbios_heaps_HeapMem_getStats__E(struct ti_sysbios_heaps_HeapMem_Object *, struct xdc_runtime_Memory_Stats *) at HeapMem.c:492,PC = 0x200152A6 FP = 0x200215F8
    1 xdc_runtime_IHeap_getStats(struct xdc_runtime_IHeap___Object *, struct xdc_runtime_Memory_Stats *) at IHeap.h:160,PC = 0x2001B93C FP = 0x20021610
    2 xdc_runtime_Memory_getStats__E(struct xdc_runtime_IHeap___Object *, struct xdc_runtime_Memory_Stats *) at Memory.c:73,PC = 0x2001A7A4 FP = 0x20021618
    3 monitorSystem(void *) at system-monitor.c:16,PC = 0x20019B20 FP = 0x20021628
    4 RunOnInterval(error* (*)(), unsigned int, void *) at run-task-on-interval.c:14,PC = 0x20018318 FP = 0x20021648
    5 RunSystemMonitor(void *) at system-monitor.c:26,PC = 0x2001AC2A FP = 0x20021668
    6 SystemMonitorThread(void *) at system-monitor-thread.c:6,PC = 0x2001B504 FP = 0x20021670
    7 _pthread_runStub$43(unsigned int, unsigned int) at pthread.c:721,PC = 0x20019560 FP = 0x20021678
    8 ti_sysbios_knl_Task_exit__E() at Task.c:481,PC = 0x2001384C FP = 0x20021690
  • Hello Vincent!

    > What device are you using?

    cc3220s

    > We recommend using TI Compiler, but the decision is of course up to you.

    We are using the TI Compiler.

    > What example are you running where you run into this issue? 

    We are not running an example, this is our own code.

  • One thing that sticks out to me this this:

    > Task name: {unknown-instance-name}, handle: 0x20020740.

    We don't have any instances named that in our code.

    Is this common?

  • We have resolved this issue. We believe using uniflash to reprogram our target device "magically" allowed the device to work correctly.
  • Hi,

    I suppose that this should be idle task and this is normal.

    Jan