Application PropertiesApplication Interface

Description

Properties of the application that can be accessed by the bootloader.

Applications must contain an ApplicationProperties_t struct declaring the application version and capabilities, and so on. The metadata contained in this struct will be extracted from the application by the Simplicity Commander tool and placed in the EBL upgrade file. If such a struct is not present in the application image, it will be added to the EBL file by the Simplicity Commander.

The struct is also used to declare whether the application image is signed and what type of signature is used. If no ApplicationProperties_t struct is present, the bootloader will assume that the application image is signed using APPLICATION_SIGNATURE_ECDSA_P256.

For the bootloader to easily locate the ApplicationProperties_t struct, if not already done by the linker, Simplicity Commander will modify word 13 of the application to insert a pointer to the ApplicationProperties_t struct.

Data Structures

struct  ApplicationData
 Application Data.
 
struct  ApplicationCertificate
 Application Certificate.
 
struct  ApplicationProperties_t
 Application Properties struct.
 

Macros

#define APPLICATION_PROPERTIES_MAGIC
 Magic value declaring the existence of an ApplicationProperties_t struct.
 
#define APPLICATION_PROPERTIES_REVERSED
 Byte-reversed version of APPLICATION_PROPERTIES_MAGIC.
 
#define APPLICATION_PROPERTIES_VERSION_MAJOR   (1UL)
 Major version number of the AppliationProperties_t struct.
 
#define APPLICATION_PROPERTIES_VERSION_MINOR   (1UL)
 Minor version number of the AppliationProperties_t struct.
 
#define APPLICATION_CERTIFICATE_VERSION   (1UL)
 Version number of the ApplicationCertificate_t struct.
 
#define APPLICATION_SIGNATURE_NONE   (0UL)
 The application is not signed.
 
#define APPLICATION_SIGNATURE_ECDSA_P256   (1UL << 0UL)
 The SHA-256 digest of the application is signed using ECDSA with the NIST P-256 curve.
 
#define APPLICATION_SIGNATURE_CRC32   (1UL << 1UL)
 The application is not signed, but has a CRC-32 checksum.
 
#define APPLICATION_TYPE_ZIGBEE   (1UL << 0UL)
 The application contains a Zigbee wireless stack.
 
#define APPLICATION_TYPE_THREAD   (1UL << 1UL)
 The application contains a Thread wireless stack.
 
#define APPLICATION_TYPE_FLEX   (1UL << 2UL)
 The application contains a Flex wireless stack.
 
#define APPLICATION_TYPE_BLUETOOTH   (1UL << 3UL)
 The application contains a Bluetooth wireless stack.
 
#define APPLICATION_TYPE_MCU   (1UL << 4UL)
 The application is an MCU application.
 
#define APPLICATION_TYPE_BLUETOOTH_APP   (1UL << 5UL)
 The application contains a Bluetooth application.
 
#define APPLICATION_TYPE_BOOTLOADER   (1UL << 6UL)
 The application contains a bootloader.
 
#define APPLICATION_TYPE_ZWAVE   (1UL << 7UL)
 The application contains a Zwave wireless stack.
 

Typedefs

typedef struct ApplicationData ApplicationData_t
 Application Data.
 
typedef struct ApplicationCertificate ApplicationCertificate_t
 Application Certificate.
 

Macro Definition Documentation

#define APPLICATION_PROPERTIES_MAGIC
Value:
{ \
0x13, 0xb7, 0x79, 0xfa, \
0xc9, 0x25, 0xdd, 0xb7, \
0xad, 0xf3, 0xcf, 0xe0, \
0xf1, 0xb6, 0x14, 0xb8 \
}

Magic value declaring the existence of an ApplicationProperties_t struct.

Definition at line 48 of file application_properties.h.

#define APPLICATION_PROPERTIES_REVERSED
Value:
{ \
0xb8, 0x14, 0xb6, 0xf1, \
0xe0, 0xcf, 0xf3, 0xad, \
0xb7, 0xdd, 0x25, 0xc9, \
0xfa, 0x79, 0xb7, 0x13 \
}

Byte-reversed version of APPLICATION_PROPERTIES_MAGIC.

Definition at line 56 of file application_properties.h.