Docker Setup Guide

This guide provides comprehensive instructions for installing and using the Docker in Windows, Linux and MacOS to build Synaptics Astra MCU SDK.

Docker Setup, Build & Image generation Instructions: Window

Docker Setup

WSL Setup

  • To check if WSL is installed, open PowerShell and run:

wsl –status

  • To install WSL (default Ubuntu), Open PowerShell as Administrator and run:

wsl –install

  • List Available Linux Distributions:

wsl –list –online

  • Install a Specific Distribution:

wsl –install -d <DistroName>

  • Set Ubuntu as Default Distribution:

wsl –set-default Ubuntu

  • To start WSL:

wsl or wsl -d <DistroName>

Install Docker Engine inside WSL (Ubuntu Terminal)

  • Install required packages:

*sudo apt-get install ca-certificates curl *

*sudo install -m 0755 -d /etc/apt/keyrings *

sudo curl -fsSLhttps://download.docker.com/linux/ubuntu/gpg*-o /etc/apt/keyrings/docker.asc *

sudo chmod a+r /etc/apt/keyrings/docker.asc

  • Add Docker repository:

echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]https://download.docker.com/linux/$(. /etc/os-release; echo “$ID”) $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  • Update and Install Docker:

sudo apt-get update (Make sure that correct GPG key is present)

  • If GPG key is missing or incorrect:

    • Remove the old Docker GPG key (cleanup):

sudo rm /etc/apt/keyrings/docker.gpg 2>/dev/null

  • Add Docker’s Official GPG Key:

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

  • Add the Docker Repository Properly:

echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  • Update Package List Again:

sudo apt-get update

  • Install Docker :

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

  • To verify Docker installation:

sudo docker run hello-world

  • Run Docker without sudo:

sudo groupadd docker

sudo usermod -aG docker $USER

Then restart WSL session and test again,

docker run hello-world

  • Verify docker installation:

docker –version

docker info

Build Docker Image and Run Container

  • To build the Docker image, navigate to the base directory of the SDK project.

  • Build the Docker Image:

docker build -t <container_name> .

  • Note: Replace <container_name> with preferred docker image name.

  • Check Docker Status

docker images

docker ps

  • Execute the following command to run the container in an interactive session and mount SDK root directory and the examples folder:

docker run –rm -it -v “<path_to_sdk_rootfolder>”:/workspace/srsdk -v “<path_to_examples_folder>”:/workspace/examples <container_name>

  • Example:

docker run –rm -it -v “/mnt/c/Users/priya/Downloads/srsdk”:/workspace/srsdk -v “/mnt/c/Users/priya/Downloads/examples”:/workspace/examples devcont:latest

  • Note: Use Linux path(/mnt/c/User/path) to mount your SDK, not Windows path(C:/Users/path).

Build the Project Inside Docker Container using GCC compiler

  • Inside the container (Interactive Mode), navigate to examples directory from your base SDK folder:

*cd examples *

  • To set environment variables, Run:

export MCU SDK_DIR=/workspace/srsdk

export GCC_TOOLCHAIN_13_2_1=/opt/gcc-arm-none-eabi/bin

source ~/.bashrc

  • To install and build the application along with sdk:

make <defconfigname> BOARD=<board> BUILD=MCU SDK

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK

  • To build using menuconfig interface:

make <defconfigname> BOARD=<board> BUILD=MCU SDK EDIT=1

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK EDIT=1

  • For building the already installed package (recurrent build):

*make build *

  • After successful build, out files will be written to /examples/out directory

  • For cleaning the build directory along with installed SDK package:

make clean all

  • For cleaning the build directory:

make clean

Build the Project Inside Docker Container using AC6 compiler

Download AC6 Compiler:

  • Go to the Arm Compiler downloads index

  • Download version 6.19 for your target platform:

    • Windows: ARMCompiler6.19_standalone_win-x86_64.zip

    • Linux: ARMCompiler6.19_standalone_linux-x86_64.tar.gz or aarch64

    • Mac: ARMCompiler6.19_standalone_mac-x86_64.tar.gz

  • Place the downloaded file inside your SDK folder (e.g.,C:UsersUsernamesrsdk).

    1. Build the Docker Image, run container and mount sdk:

  • To build the Docker image, navigate to the base directory of the SDK project.

  • Build the Docker Image:

docker build -t <container_name> .

  • Note: Replace <container_name> with preferred docker image name.

  • Check Docker Status

docker images

docker ps

  • Execute the following command to run the container in an interactive session and mount SDK root directory and the examples folder:

docker run –rm -it -v “<path_to_sdk_rootfolder>”:/workspace/srsdk -v “<path_to_examples_folder>”:/workspace/examples <container_name>

  • Example:

docker run –rm -it -v “/mnt/c/Users/priya/Downloads/srsdk”:/workspace/srsdk -v “/mnt/c/Users/priya/Downloads/examples”:/workspace/examples devcont:latest

  • Note: Use Linux path(/mnt/c/User/path) to mount your SDK, not Windows path(C:/Users/path).

License Activation:

  • While running a container interactively:

export ARMLM_ONDEMAND_ACTIVATION=’HWSKT-EAC0@http://sjc1uvp-elict08.synaptics.com:7070’

Set AC6 as compiler and build SDK:

  • Navigate to base SDK folder. Open build configuration Menu. Inside docker container interactive shell:

make menuconfig

  • Navigate to Compiler Settings, Press Save & Exit: MCU SDK BUILD CONFIGURATION → Compiler → Select “AC6”

  • Inside the container (Interactive Mode), navigate to examples directory from your base SDK folder:

cd examples

  • To set environment variables, run:

export MCU SDK_DIR=/workspace/srsdk

export AC6_TOOLCHAIN_6_19_0=<path to AC6 compiler bin>

source ~/.bashrc

  • To install and build the application along with SDK:

make <defconfigname> BOARD=<board> BUILD=MCU SDK

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK

  • To build using menuconfig interface:

make <defconfigname> BOARD=<board> BUILD=MCU SDK EDIT=1

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK EDIT=1

  • For building the already installed package (recurrent build):

*make build *

  • After successful build, out files will be written to /examples/out directory

  • For cleaning the build directory along with installed SDK package:

make clean all

  • For cleaning the build directory:

make clean

Image generation steps

  • In MCU SDK Folder, inside container (interactive mode), go to the image generator tool directory:

cd /workspace/srsdk/tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator

  • In Release package, inside container (interactive mode), go to the image generator tool directory:

cd /workspace/srsdk/tools/srsdk_image_generator

  • Generate Flash Binary:

python srsdk_image_generator.py \     -B0 \     -flash_image \     -sdk_secured \     -spk “<path_to_spk_bin>” \     -apbl “<path_to_apbl_axf>” \     -m55_image “<path_to_m55_elf>” \     -model “<model_name_or_empty>” \     -flash_type “<flash_part_number>” \     -flash_freq “<flash_frequency_mhz>” \

*-single_slot *

  • Example:

python srsdk_image_generator.py \

-B0 \

-flash_image \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-model “” \

-flash_type “GD25LE128” \

-flash_freq “67” \

-single_slot

  • Generate Host Binary:

python srsdk_image_generator.py \
*    -B0 \*
*    -host_image \*
*    -sdk_secured \*
*    -spk “<path_to_spk_bin>” \*
*    -apbl “<path_to_apbl_axf>” \*
*    -m55_image “<path_to_m55_elf>” \*

-single_slot

  • Example:

python srsdk_image_generator.py \

-B0 \

-host_image \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-single_slot

  • Generate flash and host binary:

python srsdk_image_generator.py \
*    -B0 \*
*    -sdk_secured \*
*    -spk “<path_to_spk_bin>” \*
*    -apbl “<path_to_apbl_axf>” \*
*    -m55_image “<path_to_m55_elf>” \*
*    -model “<model_name_or_empty>” \*
*    -flash_type “<flash_part_number>” \*
*    -flash_freq “<flash_frequency_mhz>”* \

-single_slot

  • Example:

python srsdk_image_generator.py \

-B0 \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-model “” \

-flash_type “GD25LE128” \

-flash_freq “67” \

-single_slot

Copy the output file to a native directory

  • Note: Exit the Docker container’s interactive shell before copying the required files to the host system.

  • The generated build file (.elf/.axf) will be located inside the /workspace/examples/out/sr110_cm55_fw/release directory within the SDK.

  • Copy it to a native (host) directory:

cp /path/to/sdk/examples/out/sr110_cm55_fw/release /path/to/native/destination/

  • In MCU SDK Folder, the generated binary image (.bin) will be located inside

tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator/Output/B0_<image_type>

cp /path/to/sdk/tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator/Output/B0_<image_type>/ /path/to/destination

  • In Release package, the generated binary image (.bin) will be located inside srsdk/tools/srsdk_image_generator/ Output/B0_<image_type>

cp /path/to/sdk/tools/srsdk_image_generator/Output/B0_<image_type>/ /path/to/destination

Docker Setup, Build & Image generation Instructions: Linux

Docker Setup

  • Run:

uname -m

If output is x86_64 → Intel/AMD 64-bit (supported).

If output is aarch64 → ARM64 (supported)

Otherwise → Architecture not supported

  • Remove any old Docker versions:

sudo apt-get remove -y docker docker-engine docker.io containerd runc

  • Update Package Index and install required dependencies:

sudo apt-get update -y

sudo apt-get install -y ca-certificates curl gnupg lsb-release

  • Add Docker’s Official GPG Key:

sudo install -m 0755 -d /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo “$ID”)/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg && sudo chmod a+r /etc/apt/keyrings/docker.gpg

  • Add Docker repository:

echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release; echo “$ID”) $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  • Install Docker Engine, CLI, and Compose Plugin:

sudo apt-get update -y

apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

  • To use docker without sudo:

sudo usermod -aG docker “$USER”

  • After this, log out and log back in, or use:

newgrp docker

  • Enable and start docker service:

sudo systemctl enable docker

sudo systemctl start docker

  • Verify Docker installation:

docker –version

docker info

Build Docker Image and Run Container


  • To build the Docker image, navigate to the base directory of the SDK project.

  • Build the Docker Image:

docker build -t <container_name> .

  • Note: Replace <container_name> with preferred docker image name.

  • Check Docker Status

docker images

docker ps

  • Execute the following command to run the container in an interactive session and mount SDK root directory and the examples folder:

docker run –rm -it -v “<path_to_sdk_rootfolder>”:/workspace/srsdk -v “<path_to_examples_folder>”:/workspace/examples <container_name>

  • Example:

docker run –rm -it -v “/mnt/c/Users/priya/Downloads/srsdk”:/workspace/srsdk -v “/mnt/c/Users/priya/Downloads/examples”:/workspace/examples devcont:latest

  • Note: Use Linux path(/mnt/c/User/path) to mount your SDK, not Windows path(C:/Users/path).

Build the Project Inside Docker Container using GCC compiler

  • Inside the container (Interactive Mode), navigate to examples directory from your base SDK folder:

*cd examples *

  • To set environment variables, Run:

export MCU SDK_DIR=/workspace/srsdk

export GCC_TOOLCHAIN_13_2_1=/opt/gcc-arm-none-eabi/bin

source ~/.bashrc

  • To install and build the application along with sdk:

make <defconfigname> BOARD=<board> BUILD=MCU SDK

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK

  • To build using menuconfig interface:

make <defconfigname> BOARD=<board> BUILD=MCU SDK EDIT=1

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK EDIT=1

  • For building the already installed package (recurrent build):

*make build *

  • After successful build, out files will be written to /examples/out directory

  • For cleaning the build directory along with installed SDK package:

make clean all

  • For cleaning the build directory:

make clean

Build the Project Inside Docker Container using AC6 compiler

Download AC6 Compiler:

  • Go to the Arm Compiler downloads index

  • Download version 6.19 for your target platform:

    • Windows: ARMCompiler6.19_standalone_win-x86_64.zip

    • Linux: ARMCompiler6.19_standalone_linux-x86_64.tar.gz or aarch64

    • Mac: ARMCompiler6.19_standalone_mac-x86_64.tar.gz

  • Place the downloaded file inside your SDK folder (e.g.,C:UsersUsernamesrsdk).

    1. Build the Docker Image, run container and mount sdk:

  • To build the Docker image, navigate to the base directory of the SDK project.

  • Build the Docker Image:

docker build -t <container_name> .

  • Note: Replace <container_name> with preferred docker image name.

  • Check Docker Status

docker images

docker ps

  • Execute the following command to run the container in an interactive session and mount SDK root directory and the examples folder:

docker run –rm -it -v “<path_to_sdk_rootfolder>”:/workspace/srsdk -v “<path_to_examples_folder>”:/workspace/examples <container_name>

  • Example:

docker run –rm -it -v “/mnt/c/Users/priya/Downloads/srsdk”:/workspace/srsdk -v “/mnt/c/Users/priya/Downloads/examples”:/workspace/examples devcont:latest

  • Note: Use Linux path(/mnt/c/User/path) to mount your SDK, not Windows path(C:/Users/path).

License Activation:

  • While running a container interactively:

export ARMLM_ONDEMAND_ACTIVATION=’HWSKT-EAC0@http://sjc1uvp-elict08.synaptics.com:7070’

Set AC6 as compiler and build SDK:

  • Navigate to base SDK folder. Open build configuration Menu. Inside docker container interactive shell:

make menuconfig

  • Navigate to Compiler Settings, Press Save & Exit: MCU SDK BUILD CONFIGURATION → Compiler → Select “AC6”

  • Inside the container (Interactive Mode), navigate to examples directory from your base SDK folder:

cd examples

  • To set environment variables, run:

export MCU SDK_DIR=/workspace/srsdk

export AC6_TOOLCHAIN_6_19_0=<path to AC6 compiler bin>

source ~/.bashrc

  • To install and build the application along with SDK:

make <defconfigname> BOARD=<board> BUILD=MCU SDK

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK

  • To build using menuconfig interface:

make <defconfigname> BOARD=<board> BUILD=MCU SDK EDIT=1

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK EDIT=1

  • For building the already installed package (recurrent build):

*make build *

  • After successful build, out files will be written to /examples/out directory

  • For cleaning the build directory along with installed SDK package:

make clean all

  • For cleaning the build directory:

make clean

Image generation steps

  • In MCU SDK Folder, inside container (interactive mode), go to the image generator tool directory:

cd /workspace/srsdk/tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator

  • In Release package, inside container (interactive mode), go to the image generator tool directory:

cd /workspace/srsdk/tools/srsdk_image_generator

  • Generate Flash Binary:

python srsdk_image_generator.py \     -B0 \     -flash_image \     -sdk_secured \     -spk “<path_to_spk_bin>” \     -apbl “<path_to_apbl_axf>” \     -m55_image “<path_to_m55_elf>” \     -model “<model_name_or_empty>” \     -flash_type “<flash_part_number>” \     -flash_freq “<flash_frequency_mhz>” \

*-single_slot *

  • Example:

python srsdk_image_generator.py \

-B0 \

-flash_image \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-model “” \

-flash_type “GD25LE128” \

-flash_freq “67” \

-single_slot

  • Generate Host Binary:

python srsdk_image_generator.py \
*    -B0 \*
*    -host_image \*
*    -sdk_secured \*
*    -spk “<path_to_spk_bin>” \*
*    -apbl “<path_to_apbl_axf>” \*
*    -m55_image “<path_to_m55_elf>” \*

-single_slot

  • Example:

python srsdk_image_generator.py \

-B0 \

-host_image \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-single_slot

  • Generate flash and host binary:

python srsdk_image_generator.py \
*    -B0 \*
*    -sdk_secured \*
*    -spk “<path_to_spk_bin>” \*
*    -apbl “<path_to_apbl_axf>” \*
*    -m55_image “<path_to_m55_elf>” \*
*    -model “<model_name_or_empty>” \*
*    -flash_type “<flash_part_number>” \*
*    -flash_freq “<flash_frequency_mhz>”* \

-single_slot

  • Example:

python srsdk_image_generator.py \

-B0 \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-model “” \

-flash_type “GD25LE128” \

-flash_freq “67” \

-single_slot

Copy the output file to a native directory

  • Note: Exit the Docker container’s interactive shell before copying the required files to the host system.

  • The generated build file (.elf/.axf) will be located inside the /workspace/examples/out/sr110_cm55_fw/release directory within the SDK.

  • Copy it to a native (host) directory:

cp /path/to/sdk/examples/out/sr110_cm55_fw/release /path/to/native/destination/

  • In MCU SDK Folder, the generated binary image (.bin) will be located inside

tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator/Output/B0_<image_type>

cp /path/to/sdk/tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator/Output/B0_<image_type>/ /path/to/destination

  • In Release package, the generated binary image (.bin) will be located inside srsdk/tools/srsdk_image_generator/ Output/B0_<image_type>

cp /path/to/sdk/tools/srsdk_image_generator/Output/B0_<image_type>/ /path/to/destination

Docker Setup, Build & Image generation Instructions: macOS

Docker Setup

Install Homebrew (If not already installed)

  • Run:

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”

  • Add Homebrew to your shell:

echo ‘eval “$(/opt/homebrew/bin/brew shellenv)”’ >> ~/.zprofile

eval “$(/opt/homebrew/bin/brew shellenv)”

  • Verify Installation:

brew –version

Install Colima and Docker CLI

  • Run:

brew install colima docker docker-compose

  • Verify Installation:

colima –version

docker –version

docker-compose –version

Prepare colima directories and start colima with docker runtime

  • Run:

mkdir -p ~/.colima/tmp

mkdir -p ~/.colima/config

chmod -R 777 ~/.colima

export TMPDIR=”$HOME/.colima/tmp”

  • Start colima:

colima start –cpu 4 –memory 8 –disk 60 –runtime docker

  • To display the current status of colima virtual machine:

colima status

  • To connect to the colima virtual machine via ssh to build docker image:

colima ssh

Build Docker Image and Run Container

  • To build the Docker image, navigate to the base directory of the SDK project.

  • Build the Docker Image:

docker build -t <container_name> .

  • Note: Replace <container_name> with preferred docker image name.

  • Check Docker Status

docker images

docker ps

  • Execute the following command to run the container in an interactive session and mount SDK root directory and the examples folder:

docker run –rm -it -v “<path_to_sdk_rootfolder>”:/workspace/srsdk -v “<path_to_examples_folder>”:/workspace/examples <container_name>

  • Example:

docker run –rm -it -v “/Users/priya/Downloads/srsdk”:/workspace/srsdk -v “/Users/priya/Downloads/examples”:/workspace/examples devcont:latest

  • Note: Use Standard Unix-style path (/Users/path) to mount your SDK, not the other ones.

Build the Project Inside Docker Container using GCC compiler

  • Inside the container (Interactive Mode), navigate to examples directory from your base SDK folder:

*cd examples *

  • To set environment variables, Run:

export MCU SDK_DIR=/workspace/srsdk

export GCC_TOOLCHAIN_13_2_1=/opt/gcc-arm-none-eabi/bin

source ~/.bashrc

  • To install and build the application along with sdk:

make <defconfigname> BOARD=<board> BUILD=MCU SDK

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK

  • To build using menuconfig interface:

make <defconfigname> BOARD=<board> BUILD=MCU SDK EDIT=1

  • Example:

make cm55_demo_sample_app_defconfig BOARD=SR110_RDK BUILD=MCU SDK EDIT=1

  • For building the already installed package (recurrent build):

*make build *

  • After successful build, out files will be written to /examples/out directory

  • For cleaning the build directory along with installed SDK package:

make clean all

  • For cleaning the build directory:

make clean

Image generation steps

  • In MCU SDK Folder, inside container (interactive mode), go to the image generator tool directory:

cd /workspace/srsdk/tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator

  • In Release package, inside container (interactive mode), go to the image generator tool directory:

cd /workspace/srsdk/tools/srsdk_image_generator

  • Generate Flash Binary:

python srsdk_image_generator.py \     -B0 \     -flash_image \     -sdk_secured \     -spk “<path_to_spk_bin>” \     -apbl “<path_to_apbl_axf>” \     -m55_image “<path_to_m55_elf>” \     -model “<model_name_or_empty>” \     -flash_type “<flash_part_number>” \     -flash_freq “<flash_frequency_mhz>” \

*-single_slot *

  • Example:

python srsdk_image_generator.py \

-B0 \

-flash_image \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-model “” \

-flash_type “GD25LE128” \

-flash_freq “67” \

-single_slot

  • Generate Host Binary:

python srsdk_image_generator.py \
*    -B0 \*
*    -host_image \*
*    -sdk_secured \*
*    -spk “<path_to_spk_bin>” \*
*    -apbl “<path_to_apbl_axf>” \*
*    -m55_image “<path_to_m55_elf>” \*

-single_slot

  • Example:

python srsdk_image_generator.py \

-B0 \

-host_image \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-single_slot

  • Generate flash and host binary:

python srsdk_image_generator.py \
*    -B0 \*
*    -sdk_secured \*
*    -spk “<path_to_spk_bin>” \*
*    -apbl “<path_to_apbl_axf>” \*
*    -m55_image “<path_to_m55_elf>” \*
*    -model “<model_name_or_empty>” \*
*    -flash_type “<flash_part_number>” \*
*    -flash_freq “<flash_frequency_mhz>”* \

-single_slot

  • Example:

python srsdk_image_generator.py \

-B0 \

-sdk_secured \

-spk “B0_Input_examples/spk_rc3_0_secure_otpk_0605.bin” \

-apbl “B0_Input_examples/sr100_b0_bootloader_ver_0x012F_ASIC.axf” \

-m55_image “/workspace/examples/out/sr110_cm55_fw/release/sr110_cm55_fw.elf” \

-model “” \

-flash_type “GD25LE128” \

-flash_freq “67” \

-single_slot

Copy the output file to a native directory

  • Note: Exit the Docker container’s interactive shell before copying the required files to the host system.

  • The generated build file (.elf/.axf) will be located inside the /workspace/examples/out/sr110_cm55_fw/release directory within the SDK.

  • Copy it to a native (host) directory:

cp /path/to/sdk/examples/out/sr110_cm55_fw/release /path/to/native/destination/

  • In MCU SDK Folder, the generated binary image (.bin) will be located inside

tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator/Output/B0_<image_type>

cp /path/to/sdk/tools/syna_toolkit/syna_gui/syna_main_gui_app/srsdk_image_generator/Output/B0_<image_type>/ /path/to/destination

  • In Release package, the generated binary image (.bin) will be located inside srsdk/tools/srsdk_image_generator/ Output/B0_<image_type>

cp /path/to/sdk/tools/srsdk_image_generator/Output/B0_<image_type>/ /path/to/destination