3. SDK Contents
This section describes the SDK directory structure, gives explanation about folders and their content, and what the main new/removed folders are compared to the previous SDK.
3.1. binaries
This directory (Figure 1) holds the executable binaries of the PC applications stored in the host directory, as well as the binary file of the production test tool firmware. These binaries are provided so that the developer can run/test the applications without the need to compile the projects.
Figure 1 The Binaries Folder Structure
3.2. config
This directory (Figure 2) contains the DA14531 and DA14585/586 configuration file for the SmartSnippets™ toolbox.
Figure 2 The config Folder Structure
3.3. doc
This directory (Figure 3) contains the SDK license files.
Figure 3 The doc Folder Structure
3.4. projects
This directory (Figure 4) contains the various SDK example projects. The projects directory is divided into two main directories:
host_apps
target_apps
Figure 4 The Project Folder Structure
3.4.1. host_apps
This directory holds example applications that run on an external processor (PC or other CPU). And holds the proximity, SPOTA and SUOTA initiator applications that run on PCs and the application example for the proximity reporter over the proprietary SPI interface.
3.4.2. target_apps
This directory holds example applications that run on the DA1453x and DA14585/586 SoC. Each project directory contains Keil µVision® project files, along with the specific project’s source code and configuration files.
The ble_examples directory has DA1453x and DA14585/586 SoC BLE application examples for “Integrated processor” or “External processor” configuration. The BLE application examples demonstrate the BLE functionality of the DA14585/586 SoC. Figure 4 shows the available BLE examples.
The peripheral_examples directory has DA1453x and DA14585/586 SoC peripheral examples. The examples demonstrate some of the non-BLE functionality of the DA1453x and DA14585/586 SoC. Figure 4 shows the peripheral examples.
3.5. sdk
This directory holds the core files of the SDK. The directory structure of the core SDK6 modules is shown in Figure 5.
Figure 5 The SDK Folder Structure
3.5.1. app_modules
This directory (Figure 5) holds the application source and header files.
api has the application header files
src has applications project-specific code for some BLE profiles and functions to handle BLE operations, like advertising, connection, security/encryption, et cetera
3.5.2. ble_stack
This directory contains BLE stack related files.
3.5.3. common_project_files
da1458x_periph_setup.h: This header file contains the necessary declarations and configurations for setting up the peripherals in the DA1458x chips. It includes the configuration of GPIOs, clock settings, and other critical hardware initialization parameters essential for the operation of the microcontroller.
da1458x_scatter_config.h: This file defines the memory layout for the DA1458x chip, specifying how the code, data, heap, and stack are organized in memory. It is crucial for ensuring that the firmware adheres to the memory constraints of the chip and that different sections of the program are correctly allocated in memory.
da1458x_stack_config.h: This file contains the configurations for the Bluetooth stack used by the DA1458x chips. It includes settings for stack size, memory allocations, and specific Bluetooth protocol configurations, ensuring the proper functioning of Bluetooth Low Energy (BLE)
IAR: This folder contains files related to the IAR Embedded Workbench, an integrated development environment (IDE) used for embedded system development. It includes project files, workspace settings, and configurations specific to the IAR IDE, such as linker files, project configurations, and IDE-specific settings necessary for building and debugging firmware on the DA1458x platform.
ldscripts: This folder holds linker scripts, which are used during the build process to precisely define how the program’s code and data are organized in memory. These scripts are critical in embedded systems to ensure that the firmware’s memory layout is correctly configured, directly affecting the operation and reliability of the firmware on the DA1458x chips.
misc: The misc folder contains miscellaneous files that are essential for the development process but do not fit into other specific categories. This may include various configuration files, utility scripts, or documentation needed for building and maintaining the project.
scatterfiles: This folder contains scatter files that define the memory layout for the firmware, dictating how different sections of the code and data are allocated in the memory of the microcontroller. These files are crucial for ensuring that the firmware operates within the memory constraints of the DA1458x chip and that all components are correctly placed in
Figure 6 The common_project_file Folder Structure
3.5.4. platform
This directory has platform-specific files for the Arm Cortex M0/M0+ processor and its supported peripherals (BLE, serial interfaces, GPIOs, etc.).
arch contains the system files and the main() application function
core_modules contains core system modules, like the kernel that implements the message handling, the GTL implementation, the non-volatile data storage manipulation, RF drivers, et cetera
driver contains all the supported drivers for the ARM Cortex-M0/M0+ peripherals
include has header files of the core source files
system_library has the object files of the patched ROM functions and the code for the RF calibration. For more information on the patched functions, see the Release Notes of the SDK distribution
Content of sdk/platform/utilities/fsp
In the “FSP External Processor Application,” two key files manage versioning and command handling between the external processor and the DA1453x SoC. The file fsp_ext_task.c
is responsible for handling various external processor commands, such as generating random numbers, retrieving firmware version information, and managing transmit (TX) power settings. It manages these operations through task-specific handlers that ensure seamless communication between the external processor and the DA1453x SoC, allowing for efficient control of system behavior.
On the other hand, fsp_ext_sdk_version.h
provides crucial versioning information for the SDK used in the application. This file, automatically populated by the build script, defines the SDK’s major, minor, and patch versions, along with the build number. These version details are embedded in the firmware and help with version tracking.

Figure 7 The sdk/platform/utilities/fsp Folder structure
3.6. third_party
This directory holds any third-party source files that are used within the SDK6.
Figure 8 The third_party Folder Structure
3.7. utilities
This directory holds utilities and tools that supplement the SDK6.
Figure 9 The utilities Folder Structure
3.7.1. flash_programmer
Flash programmer (flash_programmer) is a target-side application used to upload and read back the application code that runs on platforms powered by the DA1453x and DA14585/586 series integrated circuit. After the flash programmer application is booted, the platform communicates over UART or the JTAG interface with the host application and allows to read or write application code to the FLASH, EEPROM or OTP memory. Both sides exchange messages containing operation codes, statuses and payload with respect to the defined protocol.
3.7.2. mkimage
The mkimage tool is a command line Windows application to format non-volatile memory according to the memory map specified by the dual image bootloader.
3.7.3. prod_test
This folder contains the production test utility.
3.7.4. secondary_bootloader
This folder contains the secondary bootloader utility.