Troubleshooting

TI-RTOS Based Example Compilation Fails During XDCtools Pre-Build Step

Symptom

In IAR EWARM or CCS, the XDCtools pre-build step for examples based on TI-RTOS fails with an error message that refers to the first part of a directory path containing spaces.

Cause

This happens if creation of 8.3 filename equivalents in Windows has been turned off ( NtfsDisable8dot3NameCreation ). XDCtools relies on these short names to support directories with spaces.

Workaround

In the Sensor Controller Studio Example Configuration dialog, output the example to a directory path that does not contain spaces. Then re-open the IAR EWARM or CCS project from that location.

Note that this does not fix the underlying problem.

TI-RTOS Based Example Compilation Fails When Using Overrides in the Example Configuration

Symptom

In IAR EWARM or CCS, the XDCtools pre-build step for examples based on TI-RTOS fails with error message “xdc.services.global.XDCException: xdc.MODULE_NOT_FOUND: xdc.module: no module named ‘Config’ in the package ti.drivers” or similar.

Cause

This happens if there are significant structural differences between the selected SDK release and the TI-RTOS version specified through overrides.

Solution

Close the IAR EWARM or CCS project.

In the Sensor Controller Studio Example Configuration dialog, select the best matching SDK release . See the Compatibility section in the Revision History for details.

Output the example and re-open the IAR EWARM or CCS project.

If the above does not help, install an SDK release that is listed as supported by the example configuration.

TI-RTOS Based CC13xx/CC26xx Application Stops Working When Using the SCIF Driver

Symptom

A TI-RTOS based application behaves correctly when it contains no SCIF (Sensor Controller Interface) driver, but stops working when a SCIF driver is used.

Cause

This will happen if the operating system selection in the Sensor Controller project (that produces the SCIF driver) is wrong. The application malfunctions because that SCIF driver’s OSAL (operating system abstraction layer) performs system operations that are in conflict with TI-RTOS.

Solution

Re-open the Sensor Controller project in Sensor Controller Studio, and select TI-RTOS as operating system in the Project Panel . Then re-generate the SCIF driver in the Code Generator Panel .

Note also that the TI-RTOS OSAL requires extra initialization. See the documentation of the generated driver for details (top of scif_osal_tirtos.h ).

CC13xx/CC26xx Application with Multi-Threaded Sensor Controller Task Control Malfunctions

Symptom

An application that performs Sensor Controller task control operations ( scifStartTasksNbl() , scifStopTasksNbl() , scifExecuteTasksOnceNbl() and scifWaitOnNbl() ) from multiple threads of execution does not behave correctly.

Cause

One logical sequence of task control operations interrupts another.

Solution

Follow these guidelines when controlling Sensor Controller tasks from multiple threads of execution:

  • Always check the return value from scifStartTasksNbl() , scifStopTasksNbl() , scifExecuteTasksOnceNbl() and scifWaitOnNbl() .
  • Do one of the following if scifWaitOnNbl() is called with non-zero timeout from multiple threads of execution:
    • Call scifWaitOnNbl() only after a successful call to scifStartTasksNbl() , scifStopTasksNbl() or scifExecuteTasksOnceNbl() , in the same thread of execution.
    • Use a semaphore or similar mechanism to ensure that only one thread of execution can perform task control operations at any time.
  • If possible, avoid controlling a single Sensor Controller task from multiple threads of execution. Otherwise, use a semaphore or similar mechanism to ensure that one sequence of task control operations cannot interrupt another.

SCIF Driver Compilation Fails with Error “Declaration May Not Appear After Executable Statement in Block” or Similar

Symptom

When compiling the generated SCIF driver with for example IAR EWARM, compilation fails with multiple error messages including “Declaration may not appear after executable statement in block” or similar for scif_framework.c .

Cause

The SCIF driver and also Driverlib and TI-RTOS must be compiled with C99 mode enabled.

Solution

Enable C99 mode in the compiler toolchain.

This is specified:

  • For IDEs, in the project options’ settings for the C compiler
  • For command line, as a switch when calling the C compiler for each source file

XDS200 JTAG Probe Is Not Detected

Symptom

After upgrading to Sensor Controller Studio 1.3.0 (or later), the XDS200 JTAG probe is no longer detected when starting a task testing session.

Cause

The XDS200 firmware might be outdated.

Sensor Controller Studio 1.2.x uses XDS Emulation Software Package version 6.0.83.1 . Sensor Controller Studio 1.3.0 uses XDS Emulation Software Package version 6.0.228.0 . The XDS200 firmware must be upgraded to be compatible with version 6.0.228.0 .

Solution

Follow these steps to update the XDS200 firmware:

  • Make sure only that only the failing XDS200 JTAG probe is connected to the computer.
  • Open a Windows Command Prompt in the drivers\common\uscif\xds2xx installation subdirectory (typically C:\Program Files (x86)\Texas Instruments\Sensor Controller Studio\drivers\common\uscif\xds2xx ).
  • Run the following command: update_xds2xx.bat xds200 .
  • After completion, disconnect and reconnect the XDS200 JTAG probe.

For more information about the XDS200 firmware update tool, see ReadMe.txt in the drivers\common\uscif\xds2xx installation subdirectory.

Examples with Operating System “None” Generate Linker Error in IAR EWARM 8.42.1

Symptom

IAR EWARM 8.42.1 generates linker error ” Fatal Error[Li014]: error when reading “cpu.o(driverlib.lib)”: More than one .iar.noinitinfo sections ” or similar, when compiling a Sensor Controller Studio example with operating system “None”.

Cause

The error is caused by the iobjmanip tool in IAR EWARM 8.42.1.

Solution

Use a different version of IAR EWARM, for example 8.40.1. The error will be fixed in a later version of IAR EWARM.

TI PIN Driver Cannot Operate I/O Pins Borrowed from the SCIF Driver

Symptom

When the System CPU application borrows I/O pins from the Sensor Controller for use with the TI PIN driver (supplied with TI-RTOS/SimpleLink SDKs), this does not work.

Cause

The TI PIN driver assumes that unused I/O pins are mapped to the GPIO module. That is not the case for I/O pins used by the Sensor Controller:

  • The scifInit() function maps all I/O pins used by the Sensor Controller to the AUX I/O controller.
  • The scifUninit() function returns all I/O pins used by the Sensor Controller to the GPIO module.

Solution

Add the following code to the System CPU application, after the I/O pin(s) have been opened with the TI PIN driver:

// For each affected I/O pin:
PINCC26XX_setMux(pinHandle, pin, PINCC26XX_MUX_GPIO);