Sensor Controller Studio
Revision History
Overview
This page lists all relevant changes for all public releases of Sensor Controller Studio:
- Sensor Controller Studio (SCS)
- Command line interface (CLI)
- Code generator (CODE)
- Driver and Sensor Controller framework (FWK)
- Sensor Controller task code procedures (PROC)
- Sensor Controller task functionality (TASK)
- Project examples (EXMP)
- Tool documentation (DOC)
- Installer (INST)
Version 1.4.0.42970
Release date: December 16, 2016
New Features and Improvements
- [SCS] Added support for CC2640R2F. Examples for CC2640R2 LaunchPad will be provided in a patch (Updates menu -> Check for Updates).
- [SCS] Task testing panel improvements:
- Added graph color indicators for array-type members in the data structure member tree (to the right in the Task Testing panel).
- Added preference setting for graph line width.
- The currently selected data structure member (if any) is drawn on top with a thicker line in the graph.
- Added more task testing iteration actions:
- More conditional execution conditions: Event trigger occurred, and not event trigger occurred.
- Wait for the event trigger to occur, with 10 ms, 100 ms or 1 second timeout.
- Wait for 10 ms, 100 ms or 1 second.
- Improved X-axis: Added labels to indicate task iteration index (starting at 0).
- Improved Y-axis: Maximized number of labels/lines and ensured that all labels are integers.
- Made possible to view all data structure values at a point in the graph area by clicking and holding the left mouse button.
- The mouse scroll wheel can be used to zoom and scroll in the graph:
- While pressing no keys: Scroll vertically
- While pressing Shift: Zoom vertically
- While pressing Ctrl: Scroll horizontally
- While pressing Ctrl + Shift: Zoom horizontally
- [SCS] Sensor Controller project files (*.scp) can optionally be associated with Sensor Controller Studio, allowing these files to be opened directly from Windows Explorer. File association is enabled or disabled during installation.
- [SCS] Task code editor panel improvements:
- Added help button in the constant and data structure member pop-up windows.
- Added button for adding constants in the data structure member pop-up window. For array data structure members, the array size must be a named constant.
- Added guidelines for the value field in the constant and data structure member pop-up windows.
- [CODE] Added support for chaining IF-ELSE and IFNOT-ELSE statements, allowing for more compact and more readable code:
if (output.value < min) {
...
} else if (output.value > max) { // Now supported
...
} else {
...
}
[CODE] Added support for accessing data structure arrays using constant index:
// The index can either be a numeric value ...
U16 x = output.pValue[0];
// ... or a constant expression
output.pValue[ARRAY_SIZE - 1] = x;
[TASK] ADC resource: Added COMPA and GPIO triggers.
[TASK] COMPA and ISRC resource documentation: Improved ISRC part of the block diagram.
[PROC] Delay Insertion resource: Added procedure fwDelayInstrCycles() that inserts short delays of exactly the number of instruction cycles specified (1-255 instruction cycles of 1/12 microseconds).
[TASK/PROC] I2C Master resource: Improved I2C interface speed by removing excessive delays in the bit-banging code. For 400 kHz SCL frequency this reduces the SCL clock period from approximately 3.6 microseconds to approximately 2.7 microseconds (measured on the I2C Light Sensor example).
[FWK] Added SCIF driver functions scifSwTriggerExecutionCodeNbl() and scifSwTriggerEventHandlerCode() for triggering a task's Execution code and Event Handler code manually from the System CPU application.
[FWK] Added SCIF driver functions scifSetWakeOnAlertInt(), scifOsalDisableTaskAlertInt() and scifOsalEnableCtrlReadyInt() for deferring ALERT interrupt handling. This makes it possible to minimize the number of System CPU wake-ups, and to avoid static current consumption caused by the ALERT interrupt's wake-up signal.
[FWK/DOC] Several minor SCIF driver documentation improvements.
[DOC] Task Resources help document: Added resource and procedure overview. The document was previously empty.
[DOC] Start Page panel: Added link to SimpleLink Academy.
Changes
- [TASK/PROC] ADC resource: The numeric values of the ADC_TRIGGER_XYZ constants have changed in order to support AUX I/O triggers. The adcEnableAsync() and adcEnableSync() procedures have been changed to match the new constant values.
- [SCS] There can now only be one active Sensor Controller Studio session per installation.
- [EXMP] IAR .custom_argvars files are no longer used in IAR example projects.
Bug-Fixes
- [SCS] Fixed multiple issues related to task testing:
- Triggering the Next Panel (Alt + Down) command during task testing would cause crash if already in the last panel (Task Testing or Task Debugging).
- Single-stepping continuously, for example by holding down F11, could cause crash.
- In the graph, I/O mapping look-up tables (cfg.pAuxio...) were displayed incorrectly, with only one point "nan" (not a number) on the Y-axis.
- Project selection could be invalid and potentially cause crash when closing a project while in the Task Testing panel (using the "X" buttons in the project tree).
- Pre-iteration vector input would no longer be applied after clearing post-iteration vectors.
- [SCS] Task code editor panel: Fixed multiple issues related to code completion and pop-up documentation:
- Pressing AltGr or the equivalent Ctrl + Alt no longer causes code completion or procedure pop-up documentation to disappear.
- Open bracket [ would not trigger word completion when an item is selected in the completion list.
- Pressing the left and right keys within a word no longer causes the code completion list to disappear.
- When pressing backspace or delete, the code completion list is now updated.
- When editing a procedure name, the procedure pop-up documentation now disappears if the name no longer matches a procedure name.
- [SCS] At Sensor Controller Studio startup the status bar at the bottom of the main window could sometimes be red or blue without any text.
- [CODE] Fixed missing error message: Setting a register variable in multiple but not all execution paths of a nested selection or iteration statement does not count as initialization of the variable. This now generates an error.
U16 x;
if ( ... ) {
x = 1; // This assignment might not be executed ...
} else {
if ( ... ) {
x = 2; // ... and this statement might also not be executed, and if so ...
} else {
...
}
}
output.value = x; // ... the value read here is undetermined
[EXMP] Fixed warning message regarding the linker command file when importing example projects into CCS.
[TASK/DOC] I2C Master resource documentation: The maximum SCL stretch timeout is 20 milliseconds, not 100 milliseconds.
[SCS] Improved Sensor Controller Studio application behavior when using Windows font scaling and when using high-DPI displays.
[SCS] The splash screen displayed at startup now appears on the same screen as the Sensor Controller Studio application.
[SCS] Fixed issues related to the Windows task bar on computers with multiple displays.
Known Issues
- [SCS] There are multiple stability issues in the currently used XDS Emulation Software Package version, 6.0.228.0. The following issues have been observed during Sensor Controller task testing:
- XDS100v3 JTAG probe enumeration/connection can fail, and a subsequent enumeration/connection attempt can cause Sensor Controller Studio to freeze.
- XDS110 JTAG probe enumeration/connection, disconnection and firmware update can cause Sensor Controller Studio to freeze. In this case, unplug the USB cable to resolve the issue.
- [EXMP] The Capacitive Touch Data Logger example's I/O mapping has a conflict between one of the slider nodes and UART RX on the Debug Devpack.
The following common problems are described in the Troubleshooting help document:
- TI-RTOS based example compilation fails during XDCtools pre-build step
- TI-RTOS based example compilation fails when using overrides in the example configuration
- TI-RTOS based CC13xx/CC26xx application stops working when using the SCIF driver
- CC13xx/CC26xx application with multi-threaded Sensor Controller task control malfunctions
- SCIF driver compilation fails with error "Declaration may not appear after executable statement in block" or similar
- XDS200 JTAG probe is not detected
- Cannot use UART terminal window while debugging in IAR EWARM
Compatibility
Sensor Controller Studio can only open project files (*.scp) created/saved using the current or previous versions.
The generated SCIF driver is compatible with the software components included in these SDK releases:
- SimpleLink CC13x0 SDK 1.00.00.13.
- TI-RTOS for CC13xx and CC26xx 2.21.00.06.
- TI-RTOS for CC13xx and CC26xx 2.20.01.08.
- TI-RTOS for CC13xx and CC26xx 2.20.00.06.
- TI-RTOS for CC13xx and CC26xx 2.18.01.04.
- TI-RTOS for CC13xx and CC26xx 2.18.00.03.
- TI-RTOS for CC13xx and CC26xx 2.16.00.08.
- TI-RTOS for CC13xx and CC26xx 2.15.00.17.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.02.22.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.01.20.
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- Register field AUX_WUC_MODCLKEN0_SOC_M has been renamed to AUX_WUC_MODCLKEN0_ANAIF_M.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
The generated SCIF driver will normally also be compatible with future SDK releases, since it depends only on basic SDK functionality.
Note that there can be issues in SDK releases that affect use of the Sensor Controller. Please refer to SDK release notes for known and fixed issues.
The example application project files, source code and configuration files for TI-RTOS are compatible with:
- SimpleLink CC13x0 SDK 1.00.00.13.
- There are major changes in this SDK release. Make sure to select the best matching SDK release if using overrides in the Sensor Controller Studio Example Configuration window.
- TI-RTOS for CC13xx and CC26xx 2.21.00.06.
- TI-RTOS for CC13xx and CC26xx 2.20.01.08.
- TI-RTOS for CC13xx and CC26xx 2.20.00.06.
- TI-RTOS for CC13xx and CC26xx 2.18.01.04.
- TI-RTOS for CC13xx and CC26xx 2.18.00.03.
- TI-RTOS for CC13xx and CC26xx 2.16.00.08.
- TI-RTOS for CC13xx and CC26xx 2.15.00.17.
- There are major changes in this SDK release. Make sure to select the best matching SDK release if using overrides in the Sensor Controller Studio Example Configuration window.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.02.22.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.01.20.
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
Patches will be used to add support for new SDK releases between Sensor Controller Studio releases. See Update Service for more information.
The example application project files have been tested using the following IDEs:
- IAR EWARM 7.80.1.
- TI CCS 7.0.0.
Version 1.3.1.42689
Release date: September 28, 2016
New Features and Improvements
- [CODE] The iteration count in for loops can now be specified as a constant expression, for example:
for (U16 n = 0; n < (ARRAY_SIZE - 1); n++) {
output.pArray[n] = ...;
}
Bug-Fixes
- [CODE] Fixed incorrect code generation: Register variable assignment statements (write or read-modify-write) could erroneously be optimized away at the end of FOR, WHILE or DO-WHILE loops. The error would occur if the first access to the variable in the loop was a write inside of an IF or WHILE block. The error would not occur if the variable was read after the loop.
U16 x = 0;
U16 y = 0;
while (y < 5) {
if (y == 1) {
x = 1; // This operation causes ...
}
y += x;
x += 1; // ... this operation to be optimized away
}
[CODE] Fixed incorrect code generation: Register variable assignment in a WHILE loop (write) could result in the variable's value before the loop to be overwritten by other variables. The error would have no effect if the WHILE loop would always run one or more times.
U16 x = 0;
U16 y = 1;
state.value = y; // The y variable can overwrite the current value of x
while ( ... ) {
x = 2;
}
state.value = x; // x could be 1 instead of 0
[CODE] Fixed incorrect code generation: Very large positive numeric values, that is 0x80000000 or higher, would be interpreted as 0 with no warning:
// Condition would be false
if (0x80000000 & 0x80000000) {
...
}
[CODE] Fixed crash when a macro declaration had not been terminated with a closing brace (or there is a brace mismatch inside the macro declaration):
macro xyz() {
// Some code, but no "}" to end the macro declaration
[CODE] Fixed potential crash when calling a macro that contains more than one line of code. The crash would happen depending on the number of lines in the macro and the number of lines before and after the macro call.
[CODE] Fixed invalid error message when macro parameter names match other symbol names (procedures, constants etc.).
[CODE] Fixed invalid error message when passing data structure names or data structure member names as macro parameters:
macro incr(struct, member) {
struct.member += 1;
}
incr(output, x);
[CODE] Fixed invalid error message when having whitespace around dots:
output . value = 42;
[CODE] Fixed invalid or missing error message when using negative defined constants in expressions:
U16 x = 42;
output.a = NEGATIVE_CONST + x; // This would generate a compile error
output.b = (x) NEGATIVE_CONST; // This would not generate a compile error
[CODE] Fixed invalid error message when subtracting a variable from a constant greater than 32768, or when subtracting a constant greater than 32768 from a variable:
U16 x = 50000 - output.value;
U16 y = output.value - 50000;
[CODE] Fixed missing error message: Setting a register variable in an IF or WHILE block does not count as initialization of the variable. This now generates an error, except when the IF block has a corresponding ELSE block that also initializes the variable.
U16 x;
if ( ... ) {
x = 1; // This assignment might not be executed, and if so ...
}
output.value = x; // ... the value read here is undetermined
[CODE] Fixed missing error message when comparing a variable against an out-of-range constant or numeric value, for example:
// Pointless condition because x cannot be less than 0
U16 x = ...;
if (x > (-50)) {
...
}
// Pointless condition because y cannot be greater than 32767
S16 y = ...;
if (y > (35000)) {
...
}
[CODE] Fixed certain error messages being masked by previous error messages.
[CODE] Fixed incorrect line number in error messages regarding DO-WHILE loop conditions:
do { // <- Error message would indicate condition error at this line
...
} while (... condition with error ...);
[CODE] Fixed missing line number in error messages regarding illegal character $.
[CODE] Fixed missing line number in error messages for errors at line 1.
[CODE] Fixed incorrect or confusing error messages for:
- Certain parameter and return value errors in procedure calls.
- Name conflicts between variable and macro declarations and other symbols (procedures, constants etc.).
- Out of range constants and numeric values.
[DOC] Task Code Language Reference: Fixed issues and clarified behavior:
- Variable Types: Data structure variables are not specified with minimum/maximum values, but as signed or unsigned.
- Variable Assignment: Compare operations can be used in sub-expressions that only contain numeric/constant values. These evaluate to 1 if true and 0 if false.
- Variable Assignment: Described in detail the criteria for whether the result of a sub-expression is signed or unsigned.
- Variable Assignment: Fixed typo "Variable precedence" (changed to "Operator precendence").
- Variable Assignment: Added sub-section Constant Operands, which explains how numeric/constant values are treated in sub-expressions.
- Conditional Execution: Conditions can contain constant sub-expressions as operands (as in variable assignment).
- Conditional Execution: Described in detail the criteria for whether a comparison operation is signed or unsigned. This is not always determined by the left operand.
- Conditional Execution: Conditions that only contain numeric/constant operands are not limited to comparison and bit-test operations.
- Conditional Execution: Fixed error in example + other minor improvements.
Known Issues
- [SCS] There are multiple stability issues in the currently used XDS Emulation Software Package version, that is 6.0.228.0. The following issues have been observed during Sensor Controller task testing:
- XDS100v3 JTAG probe enumeration/connection can fail, and a subsequent enumeration/connection attempt can cause Sensor Controller Studio to freeze.
- XDS110 JTAG probe enumeration/connection, disconnection and firmware update can cause Sensor Controller Studio to freeze. In this case, unplug the USB cable to resolve the issue.
- [EXMP] When importing example projects into CCS 6.1.3.00034, there is a warning message regarding the linker command file. Please ignore this message.
- [EXMP] The Capacitive Touch Data Logger example's I/O mapping has a conflict between one of the slider nodes and UART RX on the Debug Devpack.
- [SCS] Task testing graph features are currently limited:
- No X-axis labels
- No legend for graph array members
- Zoom functionality is not fully functional
- Settings are not stored between Sensor Controller Studio sessions
The following common problems are described in the Troubleshooting help document:
- TI-RTOS based example compilation fails during XDCtools pre-build step
- Project/file paths containing spaces
- IAR Only: After changing the TI-RTOS release setting in the example configuration
- TI-RTOS based example compilation fails when using overrides in the example configuration
- TI-RTOS based CC13xx/CC26xx application stops working when using the SCIF driver
- CC13xx/CC26xx application with multi-threaded Sensor Controller task control malfunctions
- SCIF driver compilation fails with error "Declaration may not appear after executable statement in block" or similar
- XDS200 JTAG probe is not detected
- Cannot use UART terminal window while debugging in IAR EWARM
- Cannot debug SmartRF06EB-based examples in CCS
Version 1.3.0.42428
Release date: July 22, 2016
New Features and Improvements
- [EXMP] Added new examples for the CC1310, CC1350 and CC2650 LaunchPads:
- ADC Data Logger: Demonstrates ADC sampling at 10 Hz with application wake-up at every 10 seconds. The application outputs ADC data and statistics over UART.
- LED Blinker: Demonstrates basic I/O operations and data exchange with the System CPU.
- [TASK/PROC] Added resources COMPB and COMPB Event Trigger, which provide access to the low-power clocked comparator peripheral. The comparator can typically be used to monitor signals in the background and wake up the Sensor Controller.
- [TASK/PROC] Added resource Timer 0, which allows for flexible use of AUX Timer 0 within a task code block. It is possible to:
- Enable the timer for single or periodical event generation.
- Wait for the next upcoming timer event.
- Check whether the timer is running (the single event has not yet occurred).
- Disable the timer.
- [TASK/PROC] Enabled for dynamic configuration of digital I/O pins:
- Use new procedures gpioEnableInputBuf() and gpioDisableInputBuf() to enable or disable a pin's input buffer, respectively.
- Use new procedure gpioCfgMode() to change the pin mode between output, input, open-drain and open-source.
- [TASK] The SPI Data Transfer resource now supports two data rates, maximum and balanced. In the new balanced data rate, the TX/RX only operations have the same timing as the TX+RX operations.
- [SCS] The Task panel now displays warning icons and a status bar message when potentially conflicting resources are enabled. There are for example several recources that use AUX Timer 0, with risk of overlapping use.
- [SCS] Added update service, which can be accessed through new Manage Updates window via the Start Page panel, or through the command line interface updater_cli.exe. The update service provides:
- Information about the latest available Sensor Controller Studio release, with easy access to installer and revision history.
- Patches for the current Sensor Controller Studio installation.
- Patches are made available between installer releases to fix bugs, add support for new TI-RTOS releases, add new resources and procedures, improve documentation and so on.
- Patches can easily be added and removed without need for running an installer.
- [SCS] Task code editor panel improvements:
- Code completion has been reimplemented, and is now more similar to other source code editors (with a pop-up list and documentation displayed on the side).
- In the constant list, user-defined constants are listed first and resource-defined constants last.
- [CODE] Added support for macro declarations and macro calls. This allows Sensor Controller task code fragments to be encapsulated and reused, in order to make the task code more readable and reduce source code duplication. See the Task Code Language Reference for details.
- [CODE] Improved compiler error messages for parameter/return value related issues in procedure calls.
- [CODE] Computer name, date and time are appended as a comment at the end of all generated files.
- [CODE] Lists of user-provided resource and procedure definitions are added to the driver setup header file scif.h (below the driver information).
- [SCS] Added Alt+<Letter> shortcuts for buttons in the Project, Preferences and Code Generator panels.
- [SCS] Improved tool-tips for tool bar buttons.
- [SCS] Code generator panel improvements:
- The View -> Code Generator shortcut now also selects project in the Code Generator panel. This can be disabled in the Preferences panel.
- Driver source file output can be triggered automatically upon successful code generation. This can be enabled in the Code Generator and Preferences panels.
- [SCS] Added I/O mapping board definitions for:
- CC1350 SensorTag
- CC2650 SensorTag without skins
- CC2650RC (Remote Control)
- CC2650 BoosterPack
- [SCS] Minor task testing performance improvement.
- [SCS] Task Testing panel: Improved error messages when the target connection fails.
- [CLI] Added operation --v for printing the Sensor Controller Studio version and list of currently used patches.
- [TASK/DOC] Added examples to documentation for all resources.
- [TASK] ADC, COMPA and ISRC resource documentation: Added block diagrams.
- [TASK] Clarified that the ISRC output pin is selected by compaSelectGpioInput(), and that the ISRC output is temperature dependent.
- [TASK] RTC-Based Execution Scheduling documentation: Clarified what happens if the configured RTC tick period is too short (ticks are skipped silently).
- [TASK] Task Event Handling resources: Added description of trigger timing, that is the delay from the trigger event until the Event Handler Code starts running.
- [DOC] Getting Started Guide and Introduction help document: Added a brief overview of the Sensor Controller and AUX domain hardware.
- [DOC] Assembly Language Reference: Improved section I/O Access to Module Registers.
- [DOC] Task Code Language Reference: Added section Shift Operation Limitations to clarify the range of shift operations.
- [FWK/DOC] Added guidelines for Sensor Controller task control from multiple threads of execution. See the SCIF driver sample documentation or the Troubleshooting document for details.
Changes
- [PROC] Reduced gpioSetOutput() and gpioClearOutput() execution time from 10 instruction cycles to 1 when the auxio parameter is specified by a constant value (rather than a variable).
- [CLI] The application header (name, version and copyright) is now only printed together with the help text, for example when no parameters have been specified. Use the new --v operation to print the version number for logging purposes.
- [SCS] Switched from using XDS Emulation Software Package version 6.0.83.1 to version 6.0.228.0. As a result it might be necessary to manually upgrade the firmware on the XDS200 JTAG probe. See Troubleshooting for details.
- [TASK] The SPI Data Transfer RX and TX+RX operations' maximum data rates have been reduced from 2 MHz to 1.7 MHz and from 1.2 MHz to 1.1 MHz, respectively. The added delay (one nop instruction per bit) ensures that MISO is not sampled before the corresponding SCLK edge is observed.
- [FWK] The scifWaitOnNbl() function can now also return SCIF_ILLEGAL_OPERATION when used in an unsupported way. When using TI-RTOS, overlapping calls with non-zero timeout are not allowed.
Compatibility
Sensor Controller Studio can only open project files (*.scp) created/saved using the current or previous versions.
The generated SCIF driver is compatible with the software components included in these TI-RTOS releases:
- TI-RTOS for CC13xx and CC26xx 2.20.00.06.
- TI-RTOS for CC13xx and CC26xx 2.18.01.04.
- TI-RTOS for CC13xx and CC26xx 2.18.00.03.
- TI-RTOS for CC13xx and CC26xx 2.16.00.08.
- TI-RTOS for CC13xx and CC26xx 2.15.00.17.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.02.22.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.01.20.
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- Register field AUX_WUC_MODCLKEN0_SOC_M has been renamed to AUX_WUC_MODCLKEN0_ANAIF_M.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
The generated SCIF driver will normally also be compatible with future TI-RTOS releases, since it depends only on basic CC13XXWARE/CC26XXWARE and TI-RTOS functionality.
Note that there can be issues in TI-RTOS releases that affect use of the Sensor Controller. Please refer to TI-RTOS release notes for known and fixed issues.
The example application project files, source code and configuration files for TI-RTOS are compatible with:
- TI-RTOS for CC13xx and CC26xx 2.20.00.06.
- TI-RTOS for CC13xx and CC26xx 2.18.01.04.
- TI-RTOS for CC13xx and CC26xx 2.18.00.03.
- TI-RTOS for CC13xx and CC26xx 2.16.00.08.
- TI-RTOS for CC13xx and CC26xx 2.15.00.17.
- There are major changes in this TI-RTOS release. Make sure to select the best matching TI-RTOS release if using overrides in Sensor Controller Studio Example Configuration window.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.02.22.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.01.20.
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
Patches will be used to add support for new TI-RTOS releases between Sensor Controller Studio releases. See Update Service for more information.
The example application project files have been tested using the following IDEs:
- IAR EWARM 7.50.2 or later.
- TI CCS 6.1.2 or later.
Bug-Fixes
- [CODE] Fixed code generator crash when a user-specified constant matched the name of a procedure or a reserved keyword (for example U16 or adcDisable).
- [CODE] Fixed invalid error message from the assembler when accessing a data structure variable with all upper-case name:
output.VOLTAGE = 0;
[CODE] Fixed invalid error message from the compiler when having whitespace around brackets:
output.pValue [ n ] = 0;
[CODE] Fixed code generator crash when the while(...) condition of a DO-WHILE loop referred to a variable declared in the DO-WHILE loop:
do {
U16 done = ...
} while (done == 0);
[CODE/SCS] Fixed crash at start of task debugging when the assembler repairs more than one relative branch instruction (due to out of range target address). The repair is needed when the task code contains large IF/ELSE/FOR/WHILE/DO blocks.
[FWK] Fixed multiple issues in the SCIF driver when using TI-RTOS:
- Calling scifOsalInit() after calling scifInit() would cause the application to hang.
- Calling scifUninit() and then scifInit() to switch driver setup would cause the application to hang.
[SCS] Fixed invalid I/O mapping entries in the task code editor's code completion:
- AUXIO_XYZ constant (for I/O usage "xyz") appeared even if I/O usage access is by look-up table.
- cfg.pAuxioXyz data structure member (for I/O usage "xyz") appeared even if I/O usage access is by constant. Accessing such data structure member would generate an assembler error rather than a compiler error.
[SCS] Fixed multiple task testing issues:
- When preference setting Log and display initial data structure values is No:
- Data structure modifications made in the Initialization Code would incorrectly be reverted.
- Only the first input vector from a CSV file would be loaded.
- The post-iteration data no longer contains a zero vector at the end after target connection failure.
- The task testing session is no longer disconnected silently after a failed Restart command.
- The CSV file separation character preference setting now takes effect immediately also when saving post-iteration test data.
- Changed incorrect Task Testing menu command title Clear Post-Iteration Vector Input to Clear Pre-Iteration Vector Input.
[SCS] Task code editor: Fixed issues with the comment/uncomment commands when the cursor is at the start of a line.
[SCS] Task code editor: Fixed wrong indentation when pressing Enter between an open brace { and a close brace }.
[SCS] Task Debugging panel: Fixed the memory editor cursor background color for the Light grey theme.
[SCS] Fixed incorrect size of some GUI (graphical user interface) elements when using 125% or 150% global font scaling.
[SCS] Fixed minor issues related to saving project files:
- If the destination directory does not exist, it is now automatically created.
- Improved error message when saving fails, now shown in the status bar.
[SCS] The example configuration Output base directory setting would behave incorrectly if modified and then cleared, until restarting Sensor Controller Studio.
[CLI] Fixed wrong (random) return value from sensor_controller_studio_cli.exe after successful operations. The return value should be 0.
[TASK] RTC-Based Execution Scheduling: Fixed typo in the scifStartRtcTicksNow() documentation. The first wake-up occurs after approximately 128 us, not 128 ms.
[TASK] Multi-Buffered Output Data Exchange: Improved error message when this resource is enabled and the output data structure is empty.
[INST] Fixed missing installation of XDS110 DFU (device firmware upgrade) driver. This error would have no effect on computers with CCS or IAR EWARM installed.
[SCS] Fixed overlapping button placement in the example configuration window at lower screen resolutions (for example 1366 x 768 pixels).
[EXMP] Removed empty example from the RTC Multi-Event Capture resource documentation.
[FWK] Fixed incorrect documentation of the bit field ranges in the internally used look-up table pScifTaskDataStructInfoLut[].
[PROC] Added missing information to the tdcArm() procedure documentation (no functional changes).
[EXMP] Fixed potential stack overflow issue in the Shared IO Pins example when compiled with CCS. As a preventive action, the TI-RTOS task stacks have been set to 1024 bytes as a minimum for all examples.
Known Issues
- [EXMP] When importing example projects into CCS 6.1.3.00034, there is a warning message regarding the linker command file. Please ignore this message.
- [EXMP] The Capacitive Touch Data Logger example's I/O mapping has a conflict between one of the slider nodes and UART RX on the Debug Devpack.
- [SCS] Task testing graph features are currently limited:
- No X-axis labels
- No legend for graph array members
- Zoom functionality is not fully functional
- Settings are not stored between Sensor Controller Studio sessions
The following common problems are described in the Troubleshooting help document:
- TI-RTOS based example compilation fails during XDCtools pre-build step
- Project/file paths containing spaces
- IAR Only: After changing the TI-RTOS release setting in the example configuration
- TI-RTOS based example compilation fails when using overrides in the example configuration
- TI-RTOS based CC13xx/CC26xx application stops working when using the SCIF driver
- CC13xx/CC26xx Application with multi-threaded Sensor Controller task control malfunctions
- SCIF driver compilation fails with error "Declaration may not appear after executable statement in block" or similar
- XDS200 JTAG probe is not detected
- Cannot use UART terminal window while debugging in IAR EWARM
- Cannot debug SmartRF06EB-based examples in CCS
Version 1.2.1.40829
Release date: March 17, 2016
New Features and Improvements
- [DOC] Assembly Language Reference: Documented instruction timing.
Bug-Fixes
- [PROC] UART Emulator: Fixed an error in UART event clearing that caused false RX_BYTE_TIMEOUT and RX_BREAK_OR_FRAMING_ERROR events if these were enabled in the event mask. Calling scifUartSetEventMask() during ALERT interrupt handling could prevent or hide the issue.
Version 1.2.0.40562
Release date: February 29, 2016
New Features and Improvements
- [EXMP] Added new examples:
- ADC Data Streamer: Demonstrates high-rate ADC sampling with storage in a circular buffer.
- Button Debouncer: Demonstrates use of GPIO and timer event triggers and event handler code to implement a low-power button debouncer.
- Shared IO Pins: Demonstrates how to switch between operating an I/O interface from the Sensor Controller and from MCU domain peripherals, using the same physical I/O pins.
- [EXMP] Improved existing examples:
- ADC Data Logger: Samples now at 10 Hz with application wake-up at every 10 seconds. The application now performs simple data processing and outputs basic statistics.
- ADC Window Monitor: Added TI-RTOS based application. LEDs are now constantly lit when the ADC value is outside the configurable window.
- LED Blinker: Added TI-RTOS based application.
- Capacitive Touch Data Logger: Added TI-RTOS based application.
- For all examples using UART output: Added carriage return at all line endings for better behavior in terminal windows.
- [SCS] Added support for creating custom board definition files to ease I/O mapping in the I/O Mapping panel.
- Added board definitions for CC1310, CC1350 and CC2650 LaunchPad kits.
- [SCS] The I/O Mapping panel now displays for each I/O function the board function that matches the selected I/O pin.
- [SCS] Added support for changing task execution order in the Project panel.
- [SCS] Added search and replace functionality to the task code editor.
- [SCS] Added line commenting and uncommenting functionality to the task code editor.
- [SCS] Added support for updating XDS110 JTAG debug probe firmware from within Sensor Controller Studio. If needed when starting a task testing session, the Target Selection window will appear and allow the update.
- [SCS] Multiple new breakpoint related features in the Task Debugging panel:
- Added command for removing all breakpoints, available through menu bar and code view context menu.
- Added command for running to the selected line, available through menu bar and code view context menu.
- Breakpoint toggling can now also be triggered through tool bar and code view context menu, or simply by double-clicking on code view lines.
- [TASK/PROC/FWK] Improved overflow handling when using the Multi-Buffered Output Data Exchange resource:
- The scifGetTaskIoStructAvailCount() driver function now:
- Returns 0 if the Sensor Controller task has generated output buffer overflow that has not yet been indicated through scifGetAlertEvents()).
- Returns the total output buffer count if all buffers are available for processing.
- Added new procedure fwCheckOutputBuffer() that checks whether writing to the current output buffer will cause overrun.
- Added resource configuration settings (found in the Task panel resource list) for the following (default match previous behavior):
- Whether fwSwitchOutputBuffer() shall indicate overflow if attempting to switch to an unavailable buffer.
- Whether fwCheckOutputBuffer() shall indicate overflow if the current buffer is unavailable.
- Whether fwSwitchOutputBuffer() shall switch or abort if the next buffer is unavailable.
- [EXMP] Example applications will now generate compile time error if the Sensor Controller project's target chip package setting has been changed to an unsupported value.
- [EXMP] Example IAR project files now have default reset type "Board reset".
- [PROC] Added procedure fwGenQuickAlertInterrupt() to allow continuously running task code to generate ALERT interrupts.
- [FWK] Added driver function scifReinitTaskIo(). This allows the System CPU application to stop Sensor Controller tasks and borrow associated I/O pins temporarily.
- [TASK] Added UART Emulator SCIF driver functions for setting RX/TX FIFO thresholds.
- [FWK] Clarified in the scifWaitOnNbl() documentation that the READY event does not generate MCU domain/System CPU wake-up.
- [TASK/PROC] Clarified that event handler triggers are one-shot, that is the event trigger setup procedure must be called for each new trigger to be enabled.
- [DOC] Assembly Language Reference: Added new section "Immediate Value Range and Value Masking" that explains when and why the result from immediate value expressions must be masked in order to avoid out-of-range error.
Changes
- [EXMP] Removed all references to the DISABLE_LOW_POWER definition in all main_tirtos.c application source files.
- [EXMP] Removed Capacitive Touch Data Logger example application code (main.c and corresponding IAR/CCS projects) for operating system "None".
- [TASK] UART Emulator driver function scifTemplateUartGetEvents() no longer returns masked-out events.
- [TASK] UART Emulator input and output data structures now only contain the TX and RX data buffers. It is therefore no longer necessary to reset these data structures when restarting the UART Emulator.
Compatibility
- [SCS] Sensor Controller Studio can only open project files (*.scp) created using the current or previous versions.
- [FWK] The generated driver is compatible with the software components included in:
- TI-RTOS for CC13xx and CC26xx 2.16.00.08.
- TI-RTOS for CC13xx and CC26xx 2.15.00.17.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.02.22.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.01.20.
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- Register field AUX_WUC_MODCLKEN0_SOC_M has been renamed to AUX_WUC_MODCLKEN0_ANAIF_M.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
- [EXMP] The example application project files, source code and configuration files for TI-RTOS are compatible with:
- TI-RTOS for CC13xx and CC26xx 2.16.00.08.
- TI-RTOS for CC13xx and CC26xx 2.15.00.17.
- There are major changes in this TI-RTOS release. Make sure to select the best matching TI-RTOS release if using overrides in Sensor Controller Studio Example Configuration window.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.02.22.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.01.20.
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
- [EXMP] The example application project files require one of the following:
- IAR EWARM 7.40.3 or later.
- TI CCS 6.1.0 or later.
Bug-Fixes
- [FWK] Fixed race condition (modification of AUX_EVCTL:VECCFG1) between event handler functionality running on the Sensor Controller and ALERT interrupt acknowledgment running on the System CPU.
- [FWK] Fixed calculation error in scifGetTaskIoStructAvailCount() that was triggered by having large output data structure and/or high output buffer count.
- [FWK] Fixed potential race condition between tdcSetCntSource() and tdcEnable() when selecting counter source TDC_CNTSRC_48M_RCOSC or TDC_CNTSRC_48M_XOSC.
- [FWK] Fixed incorrect behavior when using the following SCIF driver functions on data structures larger than 255 words:
- scifHandoffTaskStruct() (only when using multi-buffered output data exchange).
- scifGetTaskIoStructAvailCount() (only when using multi-buffered output data exchange).
- scifResetTaskStructs().
- [CODE] Fixed invalid error message from the task code compiler when performing a unary operation (-, @ or ~) on a sub-expression enclosed in parentheses.
U16 x = 42;
// The following operations would not compile:
U16 y = @(x);
U16 z = ~(x + 5);
[CODE] Fixed invalid error message from the assembler when having a data structure variable with initial value -1.
[CODE] Fixed incorrect code generation for the # (address-of) operator when used on a multi-buffered output data structure. The resulting pointer would always point to the first buffer.
[SCS] Fixed issues when maximizing, minimizing or restoring Sensor Controller Studio or the Help Viewer on a screen other than the primary.
[SCS] If example configuration was performed for a currently open Sensor Controller project file, the project would not be reopened.
[SCS] In the Start Page panel's recent project list, if there were multiple project files with identical project name the last entry would be selected rather than the first.
[SCS] In the Task Code Editor panel's constant and data structure editors, hexadecimal constants and variables would change to decimal if the value was specified as an expression (for example SOME_CONSTANT + 1).
[SCS] In the Task Testing panel, clearing the output vectors displayed in the graph no longer restarts the application of input vectors.
[SCS] In the Task Testing panel when saving test vectors to CSV file, signed data structure members would be treated as unsigned (for example the value -1 would be saved as 65535).
[SCS] Fixed project tree selection jumping unexpectedly when removing a task from a project or closing a project.
[SCS] Task debugging would fail to start at the first instruction of the debugged task code block if that instruction had prefix.
[PROC] Fixed gpioGenPulseTrain() not working with #activeDuration less than 4 or #inactiveDuration less than 6.
[PROC] Fixed multiple issues related to the UART Emulator resource:
- The UART Emulator could potentially malfunction if stopped and restarted, due to missing reset of internal state machine at startup.
- No event flags or ALERT interrupts would be generated if RX was disabled.
- At 115200 baud, timing would be broken when having configured large UART RX and TX FIFO sizes (for example 200 bytes each).
- Enabling UART RX/TX FIFO events with scifUartSetEventMask() no longer generates false event flags based on previous FIFO status.
[PROC] Fixed code generation error message "Immediate value out of range" when using AUXIO 7 or 15 with gpioGenDiffOutput() or gpioDisableDiffOutput().
[INST] Fixed XDS100v3, XDS110 and XDS200 JTAG debug probe driver installation.
[INST] Fixed Sensor Controller Studio potentially not starting due to missing file ftd2xx.dll if Drivers has been unselected during installation. On some computers this DLL may already exist under the Windows directory, and this issue would then go unnoticed.
[TASK] Fixed incorrect procedure names in the Task Event Handling resources documentation.
[TASK] Fixed incorrect constant names in the examples in the I2C Master resource documentation.
Known Issues
- [EXMP] The Capacitive Touch Data Logger example's I/O mapping has a conflict between one of the slider nodes and UART RX on the Debug Devpack.
- [SCS] Task testing graph features are currently limited:
- No X-axis labels
- No legend for graph array members
- Zoom functionality is not fully functional
- Settings are not stored between Sensor Controller Studio sessions
The following common problems are described in the Troubleshooting help document:
- TI-RTOS based example compilation fails during XDCtools pre-build step
- TI-RTOS based example compilation fails when using overrides in the example configuration
- TI-RTOS based application stops working when using the SCIF driver
- SCIF driver compilation fails with error "Declaration may not appear after executable statement in block" or similar
Version 1.1.0.38192
Release date: September 30, 2015
New Features and Improvements
- [TASK] Added new Event Handler Code task code block, which can be triggered by edge or level on a single AUX I/O pin, or after a variable delay with 4 kHz resolution:
- The Event Handler Code can be implemented by one task per project. The code block appears when enabling the GPIO Event Trigger and/or Timer Event Trigger resource(s).
- The I2C Light Sensor example now uses this functionality to read out the result as soon as it is ready.
- [SCS/EXMP] Examples are no longer hard-coded for a specific target chip and a specific release of TI-RTOS for SimpleLink Wireless MCUs. Instead, when opening an example from the Start Page panel, a configuration dialog is displayed:
- It is possible to configure the following parameters:
- Output location for the example files, that is the base directory where the Sensor Controller project, application source and application project files shall be stored. The directory path is divided into a base example directory (common for all examples) and a subdirectory (name of the example).
- Which operating system to use as default (can be modified). Note that for most examples the application source code has only been implemented for one operating system, and in these cases only one selection is available.
- The target chip, specified by name, revision, package and memory option. Note that the available choices are limited to what is supported by development kit hardware.
- Specification of the TI-RTOS for SimpleLink Wireless MCUs installation, which is required to run the Sensor Controller examples:
- Installation base directory.
- TI-RTOS release version number, from a list of known compatible releases.
- Overrides for version numbers and sub-directories of the TI-RTOS installation.
- When completing the configuration, the example files are patched and written to the output location, and the Sensor Controller project is opened. The Sensor Controller project can easily be re-opened from the list of recent projects in the Start Page panel.
- [SCS] New and improved Task Testing functionality:
- Support for the XDS110 and XDS200 JTAG probes, in addition to existing support for the XDS100. Additional improvements are:
- When connecting to the target, a selection window is displayed if multiple JTAG probes are attached to the PC.
- When connected to a target, the JTAG probe type and serial number will be displayed in the project tree.
- Task testing no longer requires downloading a "task testing application" firmware to chip flash before starting a session. Instead, Sensor Controller Studio will automatically run startup code in chip RAM and perform task-specific configuration through JTAG.
- Added task testing workflow diagram to the Task Testing panel, with option to select between the existing low-level flow and a new simplified flow. The simplified flow eases task iteration testing (Execution Code and Event Handler Code) by running the Initialization Code and Termination Code automatically.
- The Task Testing panel now runs task iterations rather than iterations of the Execution Code:
- The events that will occur during a normal iteration of the Sensor Controller task must be specified in order to allow task testing and debugging in Sensor Controller Studio. This is done by listing a sequence of actions, which include:
- Running the Execution Code or Event Handler Code. The Event Handler Code runs only after the specified trigger has occurred.
- Conditional execution of actions, based on a small set of relevant criteria.
- Repeated execution of actions, based on a small set of relevant criteria.
- When debugging a task iteration that runs multiple task code blocks, the blocks are debugged in order. The title bar in the Task Debugging panel displays which task code block is currently being debugged.
- The iteration action sequence list is saved for each task in the project file.
- New preference settings, which are accessible through File -> Preferences (Ctrl+P):
- Whether or not to display data structure values after initialization in the Task Testing panel graph.
- Maximum task code execution time before triggering debug mode (to allow debugging when the task code is stuck).
- Minimum interval when running task iterations continuously in the Task Testing panel. The maximum interval is determined by computer, JTAG probe type and total size of the task data structures.
- Optimized communication over JTAG and reduced timing variation when running task iterations continuously.
- Data structure selection (for graph display) is stored between task testing sessions in the project file.
- [TASK] TDC start and stop triggers can now include AUX I/O pins.
- [TASK] Added resource Differential Output Pins, which can typically be used to drive or trigger external differential analog circuitry.
- [TASK] Added resource Analog Open-Source Pins, which provides analog GPIO pins that can be clamped to VDDS. To clamp analog pins to GND, use the existing Analog Open-Drain Pins resource.
- [PROC] Added procedure tdcCheckDoneEv(), which can be used to check whether the last TDC measurement succeeded or ended with a timeout. This is useful when the start trigger is generated by an external device that is not 100% reliable.
- [PROC] Added procedure gpioGenPulseTrain(), which can be used to generate a precise high-frequency pulse train on an AUX I/O pin.
- [TASK] Enabling the RTC Multi-Event Capture resource will cause the AUX domain to run at 32 kHz when the Sensor Controller is in standby mode. This is needed for the counting and capturing to function properly.
- [SCS] Added "close project" buttons (marked X) to Project panel entries in the project tree.
- [TASK] Added guidelines on minimizing current consumption in the RTC-Based Execution Scheduling resource documentation.
Changes
- [DOC] The Quick Start Guide has been renamed to Getting Started Guide, which better matches the format.
- [SCS] Switched from using XDS Emulation Software Package version 5.1.641.0 to version 6.0.14.0. As a result it may be necessary to upgrade the firmware on the XDS110 JTAG probe (used on the CC2650 SensorTag). See Troubleshooting for details.
- [PROC] Names of several chip voltages have been renamed to match updated register definitions and documentation:
- VDD1P2V has been renamed to DCOUPL (1.27 V regulated digital-supply decoupling capacitor)
- VSSA has been renamed to VSS (ground)
- VDDA(3P3V) has been renamed to VDDS (1.8 V to 3.8 V chip supply voltage)
- [TASK] The numeric values of the TDC_STOPTRIG_XYZ constants have been changed to support use of AUX I/O pins as triggers. The tdcSetTriggers() procedure has been updated accordingly.
- [FWK] Replaced ARMCC compiler identifiers with recommended __CC_ARM.
- [FWK] The examples user directory is no longer automatically updated when upgrading Sensor Controller Studio. It is however still used as default output location when example project files are generated.
- [TASK] Enabling the RTC Multi-Event Capture will cause the AUX domain to run at 32 kHz while the Sensor Controller is in standby mode. This is to allow AUX Timer 1 to run in the background and get more precise RTC captures.
- [FWK] Removed unused variables bvTaskDoneAlert and bvTaskStopReq from the framework data structures, and removed all references to these.
Compatibility
- [SCS] Sensor Controller project files (*.scp) created using Sensor Controller Studio version 1.0.x can be opened using version 1.1.0. Project files created by version 1.1.0 can not be opened using version 1.0.x.
- [FWK] The generated driver is compatible with the software components included in:
- TI-RTOS for SimpleLink Wireless MCUs 2.14.02.22.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.01.20.
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- Register field AUX_WUC_MODCLKEN0_SOC_M has been renamed to AUX_WUC_MODCLKEN0_ANAIF_M.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
- [EXMP] The example application project files, source code and configuration files for TI-RTOS are compatible with:
- TI-RTOS for SimpleLink Wireless MCUs 2.14.02.22.
- TI-RTOS for SimpleLink Wireless MCUs 2.14.01.20.
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
- [EXMP] The example application project files require one of the following:
- IAR EWARM 7.40.3 or later.
- TI CCS 6.1.0 or later.
Bug-Fixes
Known Issues
- [FWK] The generated driver must be compiled with C99 mode enabled, due to variable declarations in the middle of functions. Note that CC13XXWARE and CC26XXWARE also require C99 mode to compile without errors.
- [EXMP] In the Capacitive Touch Data Logger example, the application's I/O mapping of the UART (for data logging) does not work with the SensorTag. The current I/O mapping matches instead SmartRF06EB + CC2650EM-7ID. It is recommended to run this example through the Task Testing panel in Sensor Controller Studio.
- [SCS] Task testing graph features are currently limited:
- No X-axis labels
- No legend for graph array members
- Zoom functionality is not fully functional
- Settings are not stored between Sensor Controller Studio sessions
- [SCS] Window handling is incorrect when maximizing, minimizing or restoring Sensor Controller Studio or the Help Viewer on a screen other than the primary.
- [SCS] In Task Testing, clearing the output vectors will restart the application of input vectors.
- [SCS] Project tree selection can jump unexpectedly when removing a task from a project or closing a project.
- [SCS] Depending on system settings, some computers may fail to compile example applications in the default directory under "My Documents". See Troubleshooting for details.
Version 1.0.1.36452
Release date: May 20, 2015
New Features and Improvements
- [DOC/FWK] The generated Sensor Controller Interface driver can now be compiled also with Keil/ARMCC and GCC. This is in addition to existing support for IAR EWARM and CCS.
- [CODE] The generated Sensor Controller Interface driver now contains user-specified constants and I/O mapping constants (DIO number).
- [EXMP] CCS project specification files are now provided for all examples.
- [SCS] Added support for the CC1310 and CC1350 devices. Example projects are currently provided only for the CC26XX devices, but these can be modified to support CC13XX by changing target chip in the Sensor Controller and System CPU application projects.
- [SCS] The task code editor now supports code completion for constants, data structure members, procedures and language keywords. Proposed text is cycled using Tab or Shift+Tab. Code completion can be enabled/disabled in the Preferences panel (enabled by default).
- [PROC] Added procedures for disabling/enabling ADC input scaling.
- [DOC/EXMP] Added a note on operating system selection in the Quick Start Guide tutorial. Also, the examples will now generate a readable compile error message if the operating system selection does not match the example application.
- [TASK] Added new scifStartRtcTicksNow() function to the RTC-Based Execution Scheduling resource API. This function takes no tickStart parameter, but rather enables RTC tick generation as quickly as possible.
- [FWK] The OSAL documentation included in the generated driver source code has been improved.
Changes
- [EXMP] Bare-metal examples with low-power operation (analog_light_sensor and adc_window_monitor), using main_low_power.c rather than main.c, have been removed. Low-power operation of CC26XX/CC13XX requires several house-keeping procedures, which are automated when using TI-RTOS, but were not performed by these examples.
Compatibility
- [FWK] The generated driver is compatible with the software components included in:
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- Register field AUX_WUC_MODCLKEN0_SOC_M has been renamed to AUX_WUC_MODCLKEN0_ANAIF_M.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
- [EXMP] The example application source code and configuration files for TI-RTOS are compatible with:
- TI-RTOS for SimpleLink Wireless MCUs 2.13.00.06.
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
- [EXMP] The example project files for IAR and CCS are hard-coded, in the custom_argvars and projectspec files, respectively, for:
- TI-RTOS for SimpleLink Wireless MCUs 2.11.01.09.
Bug-Fixes
- [CODE] Fixed incorrect code generatation for the ELSE block of an IF-ELSE selection statement. The block state (IF or ELSE) would be reset by a nested selection statement (for example IF) or iteration statement (for example DO-WHILE) in the ELSE block. Any subsequent statements in the ELSE block would instead be appended to the IF block:
// For the following code ...
U16 x = state.x;
if (x == 1) {
state.y = 1;
} else {
if (x == 2) {
state.y = 2;
}
state.y += 4;
}
// ... the code generator would produce machine code equivalent to:
U16 x = state.x;
if (x == 1) {
state.y = 1;
state.y += 4; // Erroneously moved
} else {
if (x == 2) {
state.y = 2;
}
}
[CODE] Fixed invalid register assignment for register variables used in the condition of a WHILE loop (but not FOR or DO-WHILE loops). In the following code, y would be assigned the same register as x because variables read in the condition were not kept live throughout the WHILE loop:
U16 x = 1;
while (x == 1) {
U16 y = state.y;
state.y = y;
}
[CODE] Fixed crash when running code generation on task code that contains an IF/IFNOT statement with a constant condition that is true, and no code in the corresponding sub-block:
if (2 > 1) {
}
[CODE] Fixed crash when running code generation on task code that erroneously uses the pointer dereferencing operator * on a regular variable.
U16 x = 0;
U16 y = 0;
// Any of the following statements would cause the crash due to "*y"
x = *y;
if (x == *y) {
...
}
adcSelectGpioInput(*y);
[CODE] Fixed invalid error message from the assembler when generating an abs, neg or inv instruction with R0 as operand.
[CODE] Fixed invalid error message from the task code compiler when using:
- Constant or variable expressions containing parentheses as parameter(s) in procedure call statements.
- Constant expressions containing parentheses in conditions of IF, IFNOT, WHILE and DO-WHILE statements.
[CODE] Fixed invalid code generation of compare operations with constant/immediate left-side in conditions of IF, IFNOT, WHILE and DO-WHILE statements:
- A < comparison would behave as <=
- A <= comparison would behave as <
- A >= comparison would behave as >
- A > comparison would behave as >=
[CODE] Fixed missing description of I/O mapping look-up tables in the cfg data structure.
[CODE] Fixed invalid error message from the task code compiler when reading or modifying a pointer variable (U16* or S16*). The error message referred to uninitialized temporary variables being read/modified.
U16* pX = #state.pX;
// The following operations would fail:
pX += 5;
if (pX & 0x04) {
...
}
[CLI] Fixed missing description in error messages during code generation.
[SCS] The graphical user interface will now adjust to Windows font scaling.
[SCS] In the task code editor, when the procedure documentation pop-up is displayed, clicking mouse buttons or scrolling the mouse wheel one step closes the pop-up, as expected, but would also consume this mouse click or scrolling.
[SCS] The pop-up window for adding and editing constants and data structure members would not prevent creating a constant or data structure member without a name. Also, closing the pop-up window using the Esc key or X button in the top right corner would behave as either OK (when valid input) or Cancel (when invalid input).
[SCS] Fixed multiple task code editor issues:
- The procedure documentation pop-up would not appear when pressing Ctrl+Space between the () of an existing procedure call without parameters or return values. Neither would it appear when re-typing the (.
- The procedure documentation pop-up would not disappear when pressing Enter.
- When pressing Enter inside an already existing indentation, the auto-indentation would not account for any spaces to the right of the cursor. Resulting behavior was that the white-space would increase per Enter by the number of spaces to the right of the cursor.
- When pressing Enter, the editor would not auto-scroll to the current line.
[TASK] ADC resource: Fixed typo in the examples (adccompbSelectGpioInput() changed to adcSelectGpioInput()).
[TASK] SPI Chip Select and SPI Data Transfer resources: Fixed typo in the examples (spiTx8Bit() and spiRx16Bit() changed to spiTx8bit() and spiRx16bit(), respectively).
[TASK] UART Emulator resource: Fixed CCS compile issue in the API that this resource adds to the SCIF driver.
[SCS] Fixed example prerequisites pop-up not being displayed when opening an example project through the Examples list in the Start Page panel.
[EXMP] Changed example application scifStartRtcTicks() calls to scifStartRtcTicksNow(). When copying and pasting example code into larger applications, this prevents the first tick from being scheduled in the past.
[CODE] When the generated driver is used with TI-RTOS, the I/O pins used by the Sensor Controller are not reserved through the PIN driver. This has now been documented in the OSAL section of the generated driver. It is possible to manually implement compile-time or run-time checking of I/O mapping by using the generated I/O mapping definitions.
[FWK] Made the scifInit() and scifUninit() functions thread-safe wrt. accesses to the AON_WUC:AUXCTL and AON_EVENT:MCUWUSEL registers.
[SCS] In the Task Debugging panel it is no longer possible to enable a breakpoint at the last instruction of a zero-overhead loop (using the loop instruction). Doing this would previously corrupt the program flow.
Alpha Functionality
The following procedures for use in Sensor Controller task code are included in the installation, but have not been tested:
- adcDisableInputScaling()
- adcEnableAsync()
- adcFlushFifo()
- adcGetFifoStatus()
- adcSelectIntInput()
- adcStartAuxTimer0Trigger()
- adcStopAuxTimer0Trigger()
- compaEnable()
- compaGetOutput()
- compaSelectGpioRef()
- compaSelectIntRef()
- spiTx16bit()
- spiTxRx16bit()
- spiTxRx8bit()
- spiRx8bit()
Known Issues
- [EXMP] In the Capacitive Touch Data Logger example, the application's I/O mapping of the UART (for data logging) does not work with the SensorTag. The current I/O mapping matches instead SmartRF06EB + CC2650EM-7ID. It is recommended to run this example through the Task Testing panel in Sensor Controller Studio.
- [SCS] Task testing execution speed is slow and unpredictable. The achieved speed depends on task code execution time, size of task data structure, the host PC etc.
- [SCS] Task testing graph features are currently limited:
- No X-axis labels
- No legend for graph array members
- Zoom functionality is not fully functional
- Settings are not stored between Sensor Controller Studio sessions
Version 1.0.0.34897
Release date: February 23, 2015
Alpha Functionality
The following procedures for use in Sensor Controller task code are included in the installation, but have not been tested:
- adcEnableAsync()
- adcFlushFifo()
- adcGetFifoStatus()
- adcSelectIntInput()
- adcStartAuxTimer0Trigger()
- adcStopAuxTimer0Trigger()
- compaEnable()
- compaGetOutput()
- compaSelectGpioRef()
- compaSelectIntRef()
- spiTx16bit()
- spiTxRx16bit()
- spiTxRx8bit()
- spiRx8bit()
- utilIncrAndSat()
- utilSwapEndianess()
Known Issues
- [SCS] In the task code editor, the procedure documentation pop-up does not appear when pressing Ctrl+Space between the "()" of an existing procedure call without parameters or return values. Neither does it appear when re-typing the "(".
- [SCS] In the task code editor, when pressing Enter inside an already existing indentation, the auto-indentation does not account for any spaces to the right of the cursor. It seems that it only checks leading white-space on the previous line, and adds this white-space on the next line. Resulting behavior is that the white-space will increase per "Enter" by the number of spaces to the right of the cursor.
- [SCS] In the task code editor, when pressing Enter repeatedly in the task code editor, the editor does not auto-scroll to the current line. Instead the cursor disappears below the bottom of the editor viewport.
- [EXMP] The examples currently call scifStartRtcTicks() with a hardcoded value for the tickStart parameter. This will not work in a typical application where the Sensor Controller is initialized (and reinitialized) after a random period of time. Currently, there is no common function in DriverLib/TI-RTOS for reading RTC SEC+SUBSEC atomically.
- [SCS] Parts of the graphical user interface do not scale properly with Windows font scaling.
- [FWK] When the generated driver is used with TI-RTOS, the I/O pins used by the Sensor Controller are not reserved through the PIN driver.
- [SCS] Task testing execution speed is slow and unpredictable. The achieved speed depends on task code execution time, size of task data structure, the host PC etc.
- [SCS] Task testing graph features are currently limited:
- No X-axis labels
- No legend for graph array members
- Zoom functionality is not fully functional
- Settings are not stored between Sensor Controller Studio sessions
- [SCS] In the Task Debugging panel, enabling a breakpoint at the last instruction of a zero-overhead loop (using the loop instruction) will cause incorrect execution flow. This action should be prevented, but is currently not.