SimpleLink Gen1 to Gen2 SDK Migration Guide
Table of Contents
Appendicies
- Appendix I. Reference porting code
- Appendix I-1. Simplelink API porting code (sl_compat.h)
- Appendix I-2. OS API porting code
- Appendix I-2.1 OS adaption header (osi.h)
- Appendix I-2.2 OS adaption source (os_posix.c)
List of Figures
- Fig. 1: Top level SDK structure
- Fig. 2: Top level folder structure
- Fig. 3: Examples folder structure
List of Tables
- Table 1: Host driver API changes
1. Introduction
CC31xx SimpleLink Wi-Fi Network Processor and CC32xx SimpleLink Wi-Fi Wireless MCU are the second generation devices in the SimpleLink Wi-Fi and Internet-of-Things family. These devices introduce some new features and capabilities that further simplify the connectivity of things to the internet.
Among the new capabilities are:
- AP supporting up to 4 stations
- Improved provisioning
- Improved power consumption
- Increased number of secure sockets with a new ability to upgrade TCP socket to secure during connection
- IPv6 addressing scheme
- Return to factory defaults or Factory image
- Bundle protection to allow keeping the system integrity during OTA
- Security aspects:
- Secure file system
- Cloning protection
- Software tamper detection
- Trusted root certificate catalog for authentication
- Access control using tokens
- Other utilities such as secure content delivery
This document intends to guide users who already have experience with the CC3100/CC3200 devices and need to port their software to the new CC31xx/CC32xx family of devices. The document describes the new SDK structure and highlights the software components that require attention including host driver, OS layers, board drivers, and external libraries.
2. SDK Structure
2.1 Overview
The new SDK structure for CC31xx/CC32xx intends to create a common software development platform across all TI chipsets. Its main target is to emphasize the ease of use and specifically highlight:
- New folder structure which is easy to access and follow through
- Same look and feel for all documents and modules
- Simple migration between TI MCUs
- Simple migration between operating systems
2.2 High level view of SDK
Figure 1 illustrates the top level SDK structure. The SDK software abstracts the specific hardware (in this case, CC31xx/CC32xx) to the application.
The main target of the hardware abstraction layer is to simplify access to device modules. Each device or family of devices implements its device-specific implementation. In the previous SDK, this was also known as the driverlib module.
The RTOS layer implements the operating system. The SDK includes implementations for SYS/BIOS (TI-RTOS) and FreeRTOS. In case a different OS is desired, its implementation goes under the RTOS block. POSIX layer is used for OS abstraction. If a new OS is implemented, it needs to fit the POSIX layer. DPL (Driver Porting Layer) is used by the Drivers layer whenever OS services are required. The DPL abstracts the drivers similarly to how the POSIX layer abstracts the RTOS kernel functionality used by the application.
The Drivers layer is platform-independent. This layer bridges between the platform-dependent HAL layer and the application layer. This layer is common to all TI family of devices. In case OS services are required, the Drivers layer uses the DPL block.
The Middleware layer implements common libraries that may be used by the application. These components add additional functionality on top of the hardware-specific drivers. Examples of such common libraries include the graphic grlib, file system fatfs, and so forth.
Fig. 1: Top level SDK structure
2.3 Top level folder structure
Figure 2 illustrates the top level folder structure. The OS directory includes SYS/BIOS (TIRTOS) implementation as well as FreeRTOS implementation. The source
directory includes the third_party
directory for middleware implementation and ti
directory mainly for Drivers (/source/ti/drivers
directory) and HAL layers (/source/ti/devices/cc32xx/driverlib
directory). It also includes the net
directory for external libraries. Additional libraries may be added in future releases. For reference, the Wi-Fi host driver is located as one of the many drivers under /source/ti/drivers/net/wifi
directory. The examples
directory is detailed in section 2.4.
Fig. 2: Top level folder structure
2.4 Examples folder structure
Figure 3 illustrates the examples
folder structure. Every board flavor has a corresponding directory. As illustrated, CC32xxS and CC32xxSF implementations for the CC32xx secured and CC32xx secured flash devices are included. Each board has a sysbios
directory for TI-RTOS examples, drivers
directory for drivers examples, and demos
directory for a few full demos examples.