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/MSP-EXP430F5529: GateMutexPri_{construct, Params_init, etc} throw unresolved symbol errors.

Part Number: MSP-EXP430F5529
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

I'm using:

CCS v6.1.3

TI-RTOS for MSP43x v2.20.0.06

XDCtools v3.32.0.06

Per the recommendation of TIRTOS-1851.

I've successfully had the empty example blink a heartbeat LED using the example in "tirtos_msp43x_2_20_00_06/examples/MSP430/TI/MSP_EXP430F5529LP/empty". I used this as a template to start porting some basic functionality from a basic UART project written without RTOS.

All was going well until I started trying to implement Priority-inheritance mutexes to guard the USCI channels and found that using functions from <ti/sysbios/gates/GateMutexPri.h> :

While the datatypes associated with the primitive are defined at compile time (GateMutexPri_Struct, GateMutexPri_Handle), calling functions associated with the primitive (GateMutexPri_construct, GateMutexPri_Params_init) yield compiler error:

<Linking>

 undefined                                     first referenced           

  symbol                                           in file                

 ---------                                     ----------------           

 ti_sysbios_gates_GateMutexPri_Params__init__S ./SourceCode/SerialComm.obj

 ti_sysbios_gates_GateMutexPri_construct       ./SourceCode/SerialComm.obj

error #10234-D: unresolved symbols remain

error #10010: errors encountered during linking; "CapStoneTestbenchRTOS_Port.out" not built

>> Compilation failure

makefile:146: recipe for target 'CapStoneTestbenchRTOS_Port.out' failed

gmake: *** [CapStoneTestbenchRTOS_Port.out] Error 1

gmake: Target 'all' not remade because of errors.

Interestingly enough, other primitives like Semaphores and even GateMutex without priority inheritance compile successfully. I've ensured that I'm using the correct xdc toolkit and that the project is using the appropriate version of RTOS. I've also explicitly included the version of RTOS and XDC tools. See Screenshots below:

Attached is the Project Exported as an archive. If you have things installed as above, you'll likely be able to see that the primitives constructed in MAIN.c compile, whereas the primitives created in SerialComm.c will throw compile errors. These can be block-un-commented by defining 'foo' on line 14 of SerialComm.hHelpMe.zip

So, are priority-inherent mutexes not supported in this version of TI-RTOS? If so, why are they in the documentation included with the kernel? If they are supported, how can I get them to compile in my project?

**Attention** This is a public forum