ON Semiconductor RSL10 User manual

© SCILLC, 2019
Previous Edition © 2018
“All Rights Reserved”
Getting Started with RSL10
AND9697/D
June 2019, Rev. P5

GETTING STARTED WITH RSL10
www.onsemi.com
2
Page
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Setting Up the Hardware and Software . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Prerequisite Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Connecting the Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Preloaded Sample . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Prerequisite Software . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Getting Started with the Eclipse-Based ON Semiconductor IDE . . . . . . . . . . . . . . . . 7
3.1 ON Semiconductor IDE and RSL10 CMSIS-Pack Installation Procedures . . . . . . . . . . 7
3.2 Building Your First Sample Application with the ON Semiconductor IDE . . . . . . . . . . 9
3.2.1 Launching the ON Semiconductor IDE. . . . . . . . . . . . . . . . . . . . 9
3.2.2 Importing the Sample Code . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.3 Build the Sample Code. . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Debugging the Sample Code . . . . . . . . . . . . . . . . . . . . . . . .13
3.3.1 Debugging with the .elf File . . . . . . . . . . . . . . . . . . . . . . 13
3.3.2 Peripheral Registers View with the ON Semiconductor IDE . . . . . . . . . . . . 15
4. Getting Started with Keil . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
4.1 Prerequisite Software . . . . . . . . . . . . . . . . . . . . . . . . . .19
4.2 RSL10 CMSIS-Pack Installation Procedure . . . . . . . . . . . . . . . . . . .19
4.3 Building Your First Sample Application with the Keil uVision IDE . . . . . . . . . . . .20
4.3.1 Import the Sample Code . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.2 Build the Sample Code. . . . . . . . . . . . . . . . . . . . . . . . 22
4.3.3 Debugging the Sample Code . . . . . . . . . . . . . . . . . . . . . . 23
4.3.3.1 Preparing J-Link for Debugging . . . . . . . . . . . . . . . . . . . 23
4.3.3.2 Debugging Applications . . . . . . . . . . . . . . . . . . . . . 23
5. Getting Started with IAR . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
5.1 Prerequisite Software . . . . . . . . . . . . . . . . . . . . . . . . . .25
5.2 RSL10 CMSIS-Pack Installation Procedure . . . . . . . . . . . . . . . . . . .25
5.3 Building Your First Sample Application with the IAR Embedded Workbench . . . . . . . .26
5.3.1 Import the Sample Code . . . . . . . . . . . . . . . . . . . . . . . 26
5.3.2 Building the Sample Code. . . . . . . . . . . . . . . . . . . . . . . 28
5.3.3 Debugging the Sample Code . . . . . . . . . . . . . . . . . . . . . . 29
5.3.3.1 Debugging Applications . . . . . . . . . . . . . . . . . . . . . 29
6. Advanced Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
6.1 Printf Debug Capabilities . . . . . . . . . . . . . . . . . . . . . . . . .32
6.1.1 Adding Printf Debug Capabilities . . . . . . . . . . . . . . . . . . . . 32
6.2 Debugging Applications that Do Not Start at the Base Address of Flash . . . . . . . . . .32
6.3 Arm Cortex-M3 Core Breakpoints . . . . . . . . . . . . . . . . . . . . . .33
6.4 Debugging with Low Power Sleep Mode . . . . . . . . . . . . . . . . . . . .33
6.4.1 Downloading Firmware in Sleep Mode. . . . . . . . . . . . . . . . . . . 40
Table of Contents

ON Semiconductor
www.onsemi.com
3
7. More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1 Folder Structure of the RSL10 CMSIS-Pack Installation . . . . . . . . . . . . . . . 41
7.2 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.2.1 Documentation Included with the CMSIS-Pack . . . . . . . . . . . . . . . . 41
7.2.2 Documentation in the documentation.zip File . . . . . . . . . . . . . . . . . 46
A. Migrating to CMSIS-Pack . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
A.1 Migrating an Existing Eclipse Project to the CMSIS-Pack Method . . . . . . . . . . . 48
A.2 Using the Latest RSL10 Firmware in a Previous Version of the Eclipse-Based IDE . . . . . . 49
B. Arm Toolchain Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
B.1 Basic Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
B.2 Configuring the Arm Toolchain in the ON Semiconductor IDE . . . . . . . . . . . . . 50
B.3 Additional Settings . . . . . . . . . . . . . . . . . . . . . . . . . . 50

www.onsemi.com
4
CHAPTER 1
1.Introduction
1.1 OVERVIEW
RSL10 is a multi-protocol, Bluetooth® 5 certified, radio System on Chip (SoC), with the lowest power
consumption in the industry. It is designed to be used in devices that require high performance and advanced wireless
features, with minimal system size and maximized battery life. The RSL10 Software Development Kit (SDK) includes
firmware, software, example projects, documentation, and development tools. The Eclipse-based ON Semiconductor
Integrated Development Environment (IDE) is offered as a free download with optional support for Arm® Keil®
Vision® and IAR Embedded Workbench®.
Software components, device and board support information are delivered using the CMSIS-Pack standard.
Standard CMSIS-Drivers for peripheral interfaces and FreeRTOS sample applications are supported. With the
CMSIS-Pack standard, you can easily go beyond what is included in our software package and have access to a variety
of generic Cortex-M software components. If you have existing RSL10 projects and have not used the RSL10
CMSIS-Pack before, see Appendix A, “Migrating to CMSIS-Pack” on page 48 for more information.
The RSL10 SDK allows for rapid development of ultra-low power Bluetooth Low Energy applications. Convenient
abstraction decouples user application code from system code, allowing for simple modular code design. Features such
as FOTA (Firmware Over-the-Air) can easily be added to any application. Advanced debugging features such as
support for SEGGER® RTT help developers monitor and debug code. Sample applications, from Blinky to
ble_peripheral_server_bond and everything in between, help get software development moving quickly. An optional
Bluetooth mesh networking CMSIS-Pack quickly enables mesh networking for any application.
This document helps you to get started with the RSL10 SDK. It guides you through the process of connecting your
RSL10 Evaluation and Development Board, installing an IDE and the CMSIS-Pack, configuring your environment, and
building and debugging your first RSL10 application.
NOTE: RSL10 contains a low power DSP processor core; see RSL10 LPDSP32 Software Package.zip for
more information.
1.2 INTENDED AUDIENCE
This manual is for people who intend to develop applications for RSL10. It assumes that you are familiar with
software development activities.
1.3 CONVENTIONS
The following conventions are used in this manual to signify particular types of information:
monospace Commands and their options, file and path names, error messages, code samples and code
snippets.
mono bold A placeholder for the specified information. For example, replace filename with the actual
name of the file.
bold Graphical user interface labels, such as those for menus, menu items and buttons.
italics File names and path names, or any portion of them.

www.onsemi.com
5
CHAPTER 2
2.Setting Up the Hardware and Software
2.1 Prerequisite Hardware
The following items are needed before you can make connections:
• RSL10 Evaluation and Development Board and a micro USB cable
• A computer running Windows
2.2 CONNECTING THE HARDWARE
To connect the Evaluation and Development Board to a computer:
1. Check the jumper positions:
Ensure that the jumper CURRENT is connected and POWER OPTIONS is selected for USB. Also, connect the
jumpers TMS, TCK and SWD. Finally, connect the headers P7, P8, P9 and P10 to 3.3 V, as highlighted in
Figure 1.
Figure 1. Evaluation and Development Board with Pins and Jumpers for Connection Highlighted
2. Once the jumpers are in the right positions, you can plug the micro USB cable into the socket on the board.
The LED close to the USB connector flashes green during the first time plugging in, then turns a steady green
once the process is finished.

Getting Started with RSL10
www.onsemi.com
6
2.2.1 Preloaded Sample
The Evaluation and Development Boards come with one of the following preloaded sample applications:
• “Peripheral Device with Sleep Mode” is on boards with a serial number lower than 1741xxxxx.
• “Peripheral Device with Server” is on boards with a serial number higher than 1741xxxxx.
For more information about sample applications, refer to the RSL10 Sample Code User’s Guide.
2.3 PREREQUISITE SOFTWARE
Install the latest version of J-Link. It is available from the SEGGER website. Make sure to run the J-Link DLL
updater, as shown in Figure 2, to update the J-Link DLL inside your IDE and confirm that the version used by the IDE
has been updated.
Figure 2. J-Link DLL Updater

www.onsemi.com
7
CHAPTER 3
3.Getting Started with the Eclipse-Based ON
Semiconductor IDE
3.1 ON SEMICONDUCTOR IDE AND RSL10 CMSIS-PACK INSTALLATION PROCEDURES
If you have a previous version of the ON Semiconductor IDE (formerly known as the RSL10 Software
Development Kit (SDK)) installed:
1. Uninstall RSL10 Development Tools using Windows Control Panel.
2. Check if the RSL10 SDK folder is still there; if it is, delete it.
Install your new ON Semiconductor IDE by running ON_Semiconductor_IDE.msi. The ON Semiconductor IDE is
installed in this location by default: C:\Program Files (x86)\ON Semiconductor\IDE.
The release version and build number are stored in the REVISION text file at the root of the installed
ON Semiconductor IDE.
To install the RSL10 CMSIS-Pack:
1. Download the RSL10 CMSIS-Pack from www.onsemi.com/RSL10 and save it in any temporary folder.
2. Open the ON Semiconductor IDE and choose the desired location for your new workspace — for example,
c:\workspace — and click OK.
3. On the top right corner, click on the Open Perspective icon, select CMSIS Pack Manager, and click OK (see
Figure 3).
Figure 3. Opening the CMSIS Pack Manager Perspective
4. Click on the Import existing packs icon, select your pack file ONSemiconductor.RSL10.version.pack,
where version is a number such as 2.3.27, and click Open (see Figure 4).

Getting Started with RSL10
www.onsemi.com
8
Figure 4. Installing the RSL10 CMSIS-Pack
5. The IDE prompts you to read and accept our license agreement, and then installs the RSL10 CMSIS-Pack in
the specified pack root folder.
6. The RSL10 CMSIS-Pack now appears in the list of installed packs. In the Devices tab, if you expand All
Devices > ONSemiconductor > RSL10 Series you can see RSL10 listed there. You can manage your
installed packs in the Packs tab. Expanding ONSemiconductor.RSL10 makes the Pack Properties tab display
the details of the RSL10 CMSIS-Pack. Figure 5 on page 9 illustrates what the Pack Manager perspective looks
like after installation.

ON Semiconductor
www.onsemi.com
9
Figure 5. Pack Manager Perspective after RSL10 CMSIS-Pack is Installed
3.2 BUILDING YOUR FIRST SAMPLE APPLICATION WITH THE ON SEMICONDUCTOR IDE
This section guides you through importing and building your first sample application, named blinky. This
application makes the LED (DIO6) blink on the Evaluation and Development Board.
For more information about the sample applications, see the RSL10 Sample Code User’s Guide.
3.2.1 Launching the ON Semiconductor IDE
To use the IDE for the first time, follow the steps below:
1. To start the IDE, go to the Windows Start menu, and select ON Semiconductor > ON Semiconductor IDE.
2. When you open the IDE for the first time, you are prompted to select a workspace for the session. The
workspace is the work area for all your IDE projects.
3.2.2 Importing the Sample Code
Import the sample code as follows:
1. In the Pack Manager perspective, click on the Examples tab to list all the example projects included in the
RSL10 CMSIS-Pack.
2. Choose the example project called blinky, and click the Copy button to import it into your workspace (see
Figure 6 on page 10).
IMPORTANT: Create a new workspace for your version of the ON Semiconductor IDE. Re-using an existing
workspace originally created with another Eclipse-based IDE might not be compatible.

Getting Started with RSL10
www.onsemi.com
10
Figure 6. Pack Manager Perspective: Examples Tab
3. The C/C++ perspective opens and displays your newly copied project. In the Project Explorer panel, you can
expand your project folder and explore the files inside your project. On the right side, the blinky.rteconfig file
displays software components. If you expand Device > Libraries, you can see the System library (libsyslib)
and the Startup (libcmsis) components selected for blinky (see Figure 7 on page 11).
NOTE: Sample projects are preconfigured with Release versions of RSL10 libraries, which are
distributed as object files. In the RTE configuration, you can switch to the Source variant to
include the source code of the library directly into your project (see Figure 7 on page 11).

ON Semiconductor
www.onsemi.com
11
Figure 7. RTE Configuration for the Blinky Example Project in the ON Semiconductor IDE
3.2.3 Build the Sample Code
Follow these steps to build the sample code:
1. Right click on the folder for blinky and click Build Project. Alternatively, you can select the project and click
the hammer icon shown in Figure 8.

Getting Started with RSL10
www.onsemi.com
12
Figure 8. Starting to Build a Project in the ON Semiconductor IDE
2. When the build is running, the output of the build is shown in the ON Semiconductor IDE C/C++
Development Tooling (CDT) Build Console, as illustrated in Figure 9.
Figure 9. Example of Build Output
3. The key resulting output in Project Explorer includes:
•blinky.hex: HEX file for loading into Flash memory
•blinky.elf: Arm® executable file, run from RAM, used for debugging
•blinky.map: map file of the sections and memory usage
These files are shown in Figure 10 on page 13.
NOTE: You might need to refresh the project to see the three built output files. To do so, right-click on
the project name blinky and choose Refresh from the menu.

ON Semiconductor
www.onsemi.com
13
Figure 10. Output Files from Building a Sample Project
NOTE: If the ON Semiconductor IDE has trouble finding the GNU toolchain, it might be caused by
having other GNU toolchains installed. See Appendix B, “Arm Toolchain Support” on page 50
for more information.
3.3 DEBUGGING THE SAMPLE CODE
3.3.1 Debugging with the .elf File
Debug the application using the .elf file as follows:
1. Within the Project Explorer, right-click on the blinky.elf file and select Debug As > Debug
Configurations…
2. When the Debug Configurations dialog appears, right-click on GDB SEGGER J-Link Debugging and
select New. A new configuration for blinky appears under the GDB SEGGER heading, with new
configuration details in the right side panel.
3. Change to the Debugger tab, and enter RSL10 in the Device field. Ensure that SWD is selected as the target
interface (as shown in Figure 11 on page 14).

Getting Started with RSL10
www.onsemi.com
14
Figure 11. Setting Up a GDB Launch Configuration, Debugger Tab
NOTE: If you want to debug an application that does not start at the first address of flash memory, see
Chapter 6, “Advanced Debugging” on page 32.
4. Once the updates to the configuration are completed, make sure the Evaluation and Development Board is
connected to the PC via a micro USB cable, and click Debug. J-Link automatically downloads the blinky
sample code to RSL10’s flash memory.
NOTE: If J-Link does not automatically write your program to RSL10’s flash memory, make sure you
are using the J-Link version specified in Section 2.3, “Prerequisite Software” on page 6.
If you are having trouble downloading firmware because an application with Sleep Mode is on the Evaluation
and Development Board, see Section 6.4.1, “Downloading Firmware in Sleep Mode” on page 40.
5. The ON Semiconductor IDE asks if you would like to open the Debug perspective. Answer Yes, and click on
Remember my decision so that the question is not asked again.
6. The Debug perspective opens and the application runs up to the first breakpoint in main, as shown in Figure 12
on page 15. You can press F6 multiple times to step through the code and observe that the LED changes its
state when the application executes the function Sys_GPIO_Toggle(LED_DIO).

ON Semiconductor
www.onsemi.com
15
Figure 12. Debug Perspective
3.3.2 Peripheral Registers View with the ON Semiconductor IDE
The ON Semiconductor IDE includes a peripheral register view plugin that enables you to visualize and modify all
of the RSL10 registers during a debug session. It can be configured by setting the path to the SVD file in the Debug
session.
The following steps demonstrate how to configure and use the Peripheral Registers View with the Blinky
application:
1. Right click on the blinky.elf file, select Debug As > Debug Configurations, and open your configuration
details set, as described in Section 3.3.1, “Debugging with the .elf File” on page 13.
2. Change to the SVD Path tab, and set the path to the rsl10.svd file as
C:\Users\<user_id>\ON_Semiconductor\PACK\ONSemiconductor\RSL10\<pack_version>svd (see
Figure 13). Click Debug.

Getting Started with RSL10
www.onsemi.com
16
Figure 13. SVD Path Tab Perspective
3. In the Debug perspective, when the application runs up to the first breakpoint in main, open the Peripherals
window view, by navigating to Window > Show View > Other > Debug > Peripherals and clicking Open.
Now you can see all the RSL10 peripherals displayed.
4. Select the peripheral that you need to monitor, and open the Memory window to show the RSL10 peripheral
registers. The read only registers are highlighted in green. If you wish, you can drag your Memory window and
place it side-by-side with your source code view (see Figure 15 on page 18).
5. Select DIO and CLK in the peripherals window. Now you can monitor the selected peripherals from the
Monitors tab and switch between them. To see or change the DIO register status, choose DIO and expand the
DIO > DIO_DATA register in the Memory window.
6. Press F6 to step through the code. You can observe that this register’s bit 6 toggles its state when
Sys_GPIO_Toggle(LED_DIO) is executed. The register turns yellow to indicate that you have activated
real-time monitoring for it. (see Figure 14).

Getting Started with RSL10
www.onsemi.com
18
Figure 15. Toggling RSL10 DIO Using the Peripheral Registers View

www.onsemi.com
19
CHAPTER 4
4.Getting Started with Keil
4.1 PREREQUISITE SOFTWARE
Download and install the Keil Vision IDE from the Keil website, using the vendor’s instructions.
4.2 RSL10 CMSIS-PACK INSTALLATION PROCEDURE
To install the RSL10 CMSIS-Pack:
1. Open the Keil Vision IDE and navigate to Project > Manage > Pack installer or click on the icon shown in
Figure 16.
Figure 16. Pack Installer Icon
2. Click on File > Import, select your pack file ONSemiconductor.RSL10.version.pack, and click Open
(see Figure 17). version is the RSL10 version, such as 2.2.347.
Figure 17. Installing the RSL10 CMSIS-Pack for the Keil Vision IDE
3. The IDE prompts you to read and accept our license agreement, then installs the RSL10 CMSIS-Pack in the
C:\Keil_v5 folder.
4. After installation, use File > Refresh as shown in Figure 18 to update your pack proprieties.

Getting Started with RSL10
www.onsemi.com
20
Figure 18. Refresh Pack after installation
5. The RSL10 CMSIS-Pack now appears in the list of installed packs. In the Devices tab, if you expand All
Devices > ONSemiconductor > RSL10 Series, you can see RSL10 listed there. You can manage your
installed packs in the Packs tab. Expanding ONSemiconductor.RSL10 makes the Pack Properties tab display
the details of the RSL10 CMSIS-Pack. Figure 19 on page 20 illustrates what the Pack Installer perspective
looks like after installation.
Figure 19. Pack Installer after RSL10 CMSIS-Pack is Installed in the Keil Vision IDE
4.3 BUILDING YOUR FIRST SAMPLE APPLICATION WITH THE KEIL UVISION IDE
This section guides you through importing and building your first sample application, named blinky. This
application makes the LED (DIO6) blink on the Evaluation and Development Board.
For more information about the sample applications, see the RSL10 Sample Code User’s Guide.
Other manuals for RSL10
11
Table of contents