Simple Peripheral OAD Off-chip

Table of Contents

Introduction

The simple_peripheral_oad_offchip project demonstrates off-chip OAD functionality with the simple_peripheral application. The application behavior is the same as the stock simple_peripheral project, with the exception that OAD is added.

OAD security has now been enabled by default. Non secure OAD can be switched to by using the _unsecure build configuration below

Note: The cc2640r2lp_bim_offchip project must also be flashed to the device when using off-chip OAD or the device will not function correctly

This project uses stack and app configurations that are summarized in the table below:

App Build Configuration Compatible Stack Configuration Description
cc2640r2lp_app FlashROM OAD off-chip application FlashROM configuration with security
cc2640r2lp_app FlashROM_unsecure OAD off-chip application FlashROM configuration without security

Warning: Be sure that all build configurations are aligned to use security or not. If security is to be enabled the BIM project, app project, and stack project must use a secure configuration. The same is true for non secure configurations

Following #define macros are used in BIM project.

BIM #defines Description
SECURITY BIM configuration with security,removing this defines removes all the image authentication code
FLASH_DEVICE_ERASE Use this define to erase external flash device
CACHE_AS_RAM This define can be used for enabling GPRAM as cache to create more RAM for application use
DEBUG This define can be used for debugging. When image is downloaded to the internal flash via JTAG the

| CRC and/or image signature is not available in the OAD binary image header. As the calculation of | CRC and image signing is done at post build step. The debug mode mode allows skipping of CRC and/or | authentication check. The LED indications are also available for visual feedback.

Following #define macro are used in Application and stack projects.

Stack & App #defines Description
SECURITY Application configuration with security, removing this defines removes all the image authentication

| code CACHE_AS_RAM | This define can be used for enabling GPRAM as cache to create more RAM for application use

FlashROM configurations use the split image configuration, which is explained here.

This document seeks to extend the simple_peripheral project documentation that is already in place, and explain how simple_peripheral can be used to demonstrate off-chip OAD. For an advanced discussion of OAD, and an in-depth explanation of this project, please see:

OAD Chapter of BLE-Stack User's Guide

Hardware Prerequisites

The default Simple Peripheral OAD-offchip configuration uses the LAUNCHXL-CC2640R2. This hardware configuration is shown in the below image:

For custom hardware, see the Running the SDK on Custom Boards section of the BLE-Stack User's Guide for Bluetooth 4.2.

Software Prerequisites

For information on what versions of Code Composer Studio and IAR Embedded Workbench to use, see the Release Notes located in the docs/blestack folder. For information on how to import this project into your IDE workspace and build/run, please refer to the BLE-Stack User's Guide.

Service/Profile Table

This project contains the simple service, which has 5 characteristics.

Note that BLE Scanner may report 128 bit UUIDs, but the project is generating 16 bit UUIDs.

Characterisitic UUID Format Properties Profile Source
1 FFF1 1 Byte Integer Read/Write simple_gatt_profile.c
2 FFF2 1 Byte Integer Read simple_gatt_profile.c
3 FFF3 1 Byte Integer Write simple_gatt_profile.c
4 FFF4 1 Byte Integer Notify simple_gatt_profile.c
5 FFF5 5 Byte Integer Read simple_gatt_profile.c

Additionally, this project contains the OAD profile, which has 5 characteristics.

See OAD Chapter of the BLE-Stack User's Guide for more information on the OAD service

Usage

This application uses the UART peripheral to provide an interface for the application. The UART is only used for display messages.

This document will use PuTTY to serve as the display for the output of the CC2640R2 LaunchPad, and it will use BLE Scanner as the phone app that will act as the central device that will connect to the Simple Peripheral device. Note that any other serial terminal and smart phone BLE application can be used. The following default parameters are used for the UART peripheral for display:

UART Param Default Values
Baud Rate 115200
Data length 8 bits
Parity None
Stop bits 1 bit
Flow Control None

For further guidance refer to Off-chip OAD User's Guide Section