2. Getting Started

2.1. Dependencies

The following are required to build and use the SDL Project:

2.1.1. Code Generation Tools (CGT)

CGT is available with the Processor SDK J721E SDK. Alternatively, it can also be downloaded from here, and is also available with Code Composer Studio. SDL supports compilation with the TI ARM Clang Compiler Tools.

2.1.2. Processor SDK RTOS J721E

The SDL tests and examples depend on some modules from the SDK to build and run on the target. For J721E SDK, the tests/examples depend on modules from the PDK. The PDK is available in the Processor SDK release.

2.1.3. Code Composer Studio (CCS)

CCS is not required to load the application and test executables onto the target SoC, but it can be used for application debugging purposes. Find the latest download here: https://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html

2.2. Building the SDL

The SDL includes a top-level makefile at SDL_INSTALL_DIR/ that is used to build the SDL libraries, tests, and examples. Before building, the user needs to install the correct tool chains and update the paths in the SDL Rules.make file located at SDL_INSTALL_DIR/.

The path for the PDK and the CGT must be updated in the Rules.make file prior to building.

2.2.1. Usage

Use the following make command for instructions on building a module, example or test in this project:

make help

The following table lists some of the available build commands along with a description.

Build Command


make all PROFILE=release

Builds all libraries, tests and examples in release mode

make sdl_libs PROFILE=release

Builds the SDL core libraries

make test PROFILE=release

Builds the SDL unit tests

make examples PROFILE=release

Builds the SDL Safety Examples

make allclean

Clean all libraries and executables

Additional build options which can be used.


Options: debug, release
Default: debug


Options: baremetal, freertos, safertos
Default: baremetal
Note: Not all examples and tests support freertos and
safertos build

Individual examples can also be built using the example name. More information is given in the Safety Examples section.

2.2.2. Libraries

The following table lists the libraries that are built and their function

Build Command



Library providing the IP-level support for SDL. It is needed by sdl_api library.


Library providing the SDL API interface


Library providing the OSAL interface. It is needed by sdl_api library.


Library providing the core r5f functionalities needed to execute on R5F

2.3. Supported Boards/SOCs

This release supports execution on MCU R5F core only.

2.4. Loading and Running Examples

The provided tests and examples can be executed on the target using Secondary Bootloader (SBL) that is provided with PDK. The SDL applications need to first be converted into the appropriate format. This can be done using tools available in PDK. The following section gives an overview of how to convert an SDL test application into an “appimage” and load it to the target. Detailed information regarding the various supported bootmodes for the device is provided along with the PDK SBL documentation.

After building the executable (.xer5f file), the following commands can be run to create the .appimage file.

mono PDK_INSTALL_DIR/packages/ti/boot/sbl/tools/out2rprc/bin/out2rprc.exe test_app.xer5f MY_OUTPUT_DIR/test_app.rprc
PDK_INSTALL_DIR/packages/ti/boot/sbl/tools/multicoreImageGen/bin/MulticoreImageGen LE 55 MY_OUTPUT_DIR/test_app.appimage 4 MY_OUTPUT_DIR/test_app.rprc

Once the .appimage is created, it can be used along with Secondary Bootloader (SBL) to execute the application on the target.


For Linux machine, make can be used. In all below commands “gmake” can be replaced with “make” for Linux machine build. Also makefile internally uses some binaries like rm, mkdir echo from Cygwin.


To build different profiles, provide variable PROFILE=<release/debug> while invoking above commands


The executable will be generated under SDL_INSTALL_DIR/binary/<test/example> folder.


The library will be generated under SDL_INSTALL_DIR/binary/<path_to_source>/lib/<soc>/<core>/<debug/release>/ folder.


For Windows machine, in the file Rules.make, change OS to Windows_NT.