Migration Guide¶
SimpleLink CC13x0 SDK Migration Guide¶
Introduction to SimpleLink CC13x0 SDK¶
The SimpleLink CC13x0 Software Development Kit (SDK) is a set of software development tools that enables engineers to develop software applications on the SimpleLink CC13x0 ULP devices. This powerful software toolkit provides a cohesive and consistent software experience for all SimpleLink CC13x0 users by packaging essential software components such as TI-RTOS, peripheral drivers, TI 15.4-Stack, RF-Proprietary examples in one easy-to-use software package along with exhaustive documentation.
Scope of the Document¶
This document explains developers how to port existing applications for CC13x0 platform based on TI 15.4-Stack and Proprietary-RF examples to the new SimpleLink CC13x0 SDK release.
Benefits of the SimpleLink CC13x0 SDK¶
The SimpleLink CC13x0 SDK brings users into a software development framework that allows for a consistent look and feel among multiple TI embedded products. The following are key advantages of the SDK:
- The SDK is a standalone product that can be built without any external dependencies.
- Device Header files required for the software components are now included within the SDK. This keeps all dependencies for TI-provided embedded software in a single place. The components of the SDK do not rely on the IDE-provided copy of device header files.
- The SDK delivers, via TI-RTOS, easy-to-use peripheral drivers named “TI Drivers” that allow quick setup of functional use cases for most peripherals. TI Drivers supports multiple 32-bit products, thereby ensuring that developers can abstract hardware-level decisions that are required to implement peripheral functionality and can instead focus on application development.
- Components that are used by multiple software tools are centralized. For example all TI-provided libraries such as Graphics library, DSPLib etc. use the same version of Driver Library, making it easier for customers to maintain and port software. All SDK software is well-tested together to ensure a better developer experience when using multiple TI-provided embedded software components in a single project.
SimpleLink CC13x0 SDK Overview¶
This section serves as a quick introduction to the SDK file structure and key components. To understand the details about the core components delivered by TI-RTOS please refer to the TI-RTOS User’s Guide.
The Simplelink CC13x0 SDK is a single installer that delivers the following key components:
- Examples: A wide range of examples are provided for TI 15.4-Stack, RF-Proprietary, drivers, and more. Their purpose is to make it easy to start writing applications in the context of the SDK. The examples take advantage of the other components in the SDK to implement meaningful and representative functionality. Each example comes with its own documentation and project files for a selection of the supported IDEs and code generation tools.
- TI Drivers API: This API layer exposes functionality of the hardware-specific drivers in the same way across all TI SimpleLink devices. For example, though the hardware implementation of the UART may be different on different devices, the TI Drivers API used to access its common functionality is the same.
- CC13x0 Driver Library: For the CC13x0 platform the SDK provides hardware specific drivers.
- TI-RTOS: The kernel provides services such as timing and scheduling of tasks. All TI SimpleLink SDKs come with the TI-RTOS Kernel.
- Middleware: Add functionality on top of drivers.
Understanding the SDK directory structure helps to easily locate the above components. The SDK directory structure is organized as follows:
- docs: This folder contains all the software documentation relevant to understanding and using the CC13x0 SimpleLink SDK. This includes User Guides, API Guides as well as release notes.
- source: This folder contains the device specific header files, TI Driver API, CC13xx Driver Library, other peripheral libraries such as grlib, middleware files which add functionality on top of drivers and files for the TI-15.4-Stack.
- kernel: This folder contains the source for TI-RTOS and components required to support FreeRTOS
- examples: The example folder provides code examples that are implemented within the framework of TI-RTOS. This includes example applications for the TI-15.4-Stack, Proprietary RF, and Easylink examples.
- tools: This folder includes the tools for various software examples released with this SDK.
Migrating TI 15.4-Stack Application¶
This section describes how migrate existing TI-15.4-Stack-2.0.0 based projects to the new TI-15.4-Stack-2.0.1 release included within the SimpleLink CC13x0 SDK.
What’s different in the new release?
The key feature changes between the TI 15.4-Stack 2.0.0 and TI 15.4-Stack-2.0.1 are:
- Major Change to notice for developers is that the application task and the stack task are now combined into single image in the TI 15.4-Stack-2.0.1 release. This allows for Flash space savings, as the two images (application and stack) which had to be page aligned in the previous release caused some flash memory to remain unused for example in the stack side. The change has been implemented in a way so that it is very straightforward for developers to take their applications and migrate to the new TI 15.4-Stack-.2.0.1 release as illustrated in Steps for Porting the TI 15.4-Stack-2.0.0 application to the TI 15.4-Stack-2.0.1 below.
- Inclusion of TI-RTOS, TI Driver API, Middleware in the same root folder. This allows for better integration of various application features. Developers would need to know where to find various software components such as drivers, middleware, etc in the new release. Please refer to the SimpleLink CC13x0 SDK Overview above to understand the SimpleLink CC13x0 SDK directory structure.
- Ability to compile in or out required or non-required network operation mode features, for example, when using the network always in non-beacon mode, developers can compile out features for beacon mode and Frequency hopping mode allowing for considerable Flash and RAM savings, please refer to Configuring Stack for more details.
- Please refer to the TI 15.4-Stack Release notes to get a comprehensive list of all the changes in this release.
Steps for Porting the TI 15.4-Stack-2.0.0 application to the TI 15.4-Stack-2.0.1¶
This section describes porting an application, that was originally written for v2.0.0 of the stack, to the newer stack, v.2.0.1. The next section describes porting from v.2.0.1 to 2.1.0 (the current latest version). If you are porting from v2.0.0 to 2.1.0, please read through both the sections. If you are porting from 2.0.1, you may skip this section and go straight to the next section.
Follow the steps described below to port your TI 15.4-Stack star network end node application and PAN Coordinator (Embedded and Linux based) to the TI 15.4-Stack 2.0.1 release. Also refer to the wiki link TI
Download the latest SimpleLink CC13x0 SDK from www.ti.com/tool/ti-15.4-stack
Porting your embedded end node application, it is expected that the developers would have started with the out of box sensor example application as a starting point for end node applications based on TI 15.4-Stack-2.0.0. And primarily would add their application specific functionality to the files jdllc.c/h, sensor.c/h, and ssf.c/h in addition to their application specific implementation additions to the out of box example application. Also, customers would do their board specific changes. To port your applications to the new release import the out of box sensor example application into your CCS workspace from the new SimpleLink CC13x0 SDK (Please find the supported CCS version in the TI 15.4-Stack release notes at /docs/ti154stack/ and refer to TI 15.4-Stack Developers guide at /docs/ti154stack/ on how to import the TI 15.4-Stack example projects in CCS). Figure 97. highlights the key project files into which the developers can either bring their application specific changes into (preferred) or replace with their implementation. List below provides more details on how to port the end node application to the latest TI 15.4-Stack-2.0.1 release.
- “config.h”: Port your application configuration settings into the new file. The new file has changes that allow to better use the application and 15.4-Stack features and it is recommended to use this latest file.
- “Jdllc.c/h”, “sensor.c/h”: Port/bring in changes specific to your application into these files; there are various optimizations to improve flash usage and also bug fixes. It is preferred to use the latest file and port your application specific changes into the new release.
- “ssf.c/h”: Port/bring in changes specific to your application into this file; this release brings the support for the UART logging in addition to the LCD display of the network information over the last release.
- “features.h”: this is a new file in the TI 15.4-Stack-2.0.1, it allows to compile in and out, desired and non-desired network operation mode functionality, allowing for Flash/RAM savings. Configure the settings in this file as required by your application.
- Perform the board specific changes as done on the TI 15.4-Stack 2.0.0 release. The board files are included with in the folder Launchpad in the application workspace.
- TI 15.4-Stack: TI 15.4-Stack is now integrated into one image along with the application and TI-RTOS. Stack files are now inside the folder MAC as seen in Figure 97.. Developers do not need to do anything other than use the new workspace and the stack functionality will get included with the application and TI-RTOS image. So with TI 15.4-Stack 2.0.1 release developers do not need to program the stack and application independently.
- If you need more details on the sensor example application which can help to port your application to the new release please refers to the TI 15.4-Stack Developers guide at /docs/ti154stack/.
Porting your Embedded PAN-Coordinator application, it is expected that the developers would start with the out of box collector example application as a starting point, and primarily add their application specific functionality to the files cllc.c/h, collector.c/h, and csf.c/h in addition to the their application specific implementations additions to the out of box example application. Also, customers would do their board specific changes. To port your applications to the new release import the collector example application into your CCS workspace from the new SimpleLink CC13x0 SDK (Please find the supported CCS version in the TI 15.4-Stack release notes at /docs/ti154stack/ and refer to TI 15.4-Stack Developers guide at /docs/ti154stack/ on how to import the TI 15.4-Stack example projects in CCS). Figure 98. highlights the key project files that the developers can either bring their application specific changes into (preferred) or replace with their implementation. List below provides more details on how to port the PAN Coordinator application to the latest TI 15.4-Stack-2.0.1 release.
- “config.h”: Port your application configuration settings into the new file. The new file has changes that allow to better use the application and 15.4-Stack features and it is recommended to use the latest file.
- “cllc.c/h”, “collector.c/h”: Port/bring in changes specific to your application into these files; there are various optimizations to improve flash usage and also bug fixes. It is preferred to use the latest file and port your application specific changes into the new release
- “csf.c/h”: Port/bring in changes specific to your application into this file; this release brings the support for the UART logging in addition to the LCD display of the network information over the last release.
- “features.h”: this is a new file in the TI 15.4-Stack-2.0.1, it allows to compile in and out, desired and non-desired network operation mode functionality, allowing for Flash/RAM savings. Configure the settings in this file as required by your application.
- Perform the board specific changes as done on the TI 15.4-Stack 2.0.0 release. The board files are included with in the folder Launchpad in the application workspace.
- TI 15.4-Stack: TI 15.4-Stack is now integrated into one image along with the application and TI-RTOS. Stack files are now inside the folder MAC as seen in Figure 98.. Developers do not need to do anything other than use the new workspace and the stack functionality will get included with the application and TI-RTOS image. So with TI 15.4-Stack 2.0.1 release developers do not need to program the stack and application independently.
- If you need more details on the collector example application which can help to port your application to the new release please refers to the TI 15.4-Stack Developers guide at /docs/ti154stack/.
Porting Linux host + MAC CoP based PAN Coordinator application: when using the Linux host + MAC CoP as PAN Coordinator developers can just upgrade the MAC CoProcessor application to the TI 15.4-Stack 2.0.1 MAC CoProcessor application without any application changes. The MAC CoP interface has not changed between the two releases.
Porting the TI 15.4-Stack-2.1.0 applications to the TI 15.4-Stack-2.2.0¶
This sections describes things you should be aware of when porting your application from v2.1.0 of the stack, to the newer stack, v.2.2.0.
Port your changes Start by porting your application changes the new stack codebase. For example, in the provided Sensor and Collector examples, the application files that normally include user modifications that should be ported are the following:
config.h
,features.h
jdllc.c
,ssf.c
(for Sensor only)cllc.c
,csf.c
(for Collector only)- board-specific changes – files located in the Launchpad folder
For more details, please see the previous section (porting from 2.0.0)
Preamble Change Previous versions of the stack used an RF preamble value that was not compatible with the IEEE 802.15.4g standard. In order to be compatible to this standard, v2.1.0+ of the stack uses the correct preamble as it is defined by IEEE. This means that devices running applications that were built with earlier versions of the stack will not be able to communicate with devices running applications that were built with the current stack version using the default configuration. In order to maintain compatibility with previously built applications, the user can force using the older preamble value by defining
PREAMBLE_COMPATIBILITY
. Note that by doing so, the application will no longer be fully compliant to the 802.15.4g standard.
Migrating Proprietary-RF based Applications¶
Please refer to the wiki page https://processors.wiki.ti.com/index.php/Proprietary_RF_MCU_SDK_Porting_Guide for details on how to migrate your application based on the Proprietary-RF examples from TI to the new SimpleLink CC13x0 SDK release.
Additional Information¶
Please refer to the following web-links for more information:
- TI 15.4-Stack Software Stack (https://www.ti.com/tool/ti-15.4-stack)
- TI 15.4-Stack Wiki (https://www.ti.com/ti154stack-wiki)
- Proprietary-RF Software (https://processors.wiki.ti.com/index.php/SimpleLink-EasyLink)
- Support (http://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/)