Application Properties#

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 GBL upgrade file. If this struct is not in the application image, it will be added to the GBL 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.

To ensure that the bootloader can 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.

Modules#

ApplicationData_t

ApplicationCertificate_t

ApplicationProperties_t

Macros#

#define

Magic value declaring the existence of an ApplicationProperties_t struct.

#define
#define

Major version number of the AppliationProperties_t struct.

#define

Minor version number of the AppliationProperties_t struct.

#define

Version number of the ApplicationCertificate_t struct.

#define

The application is not signed.

#define

The SHA-256 digest of the application is signed using ECDSA with the NIST P-256 curve.

#define

The application is not signed, but has a CRC-32 checksum.

#define

The application contains a Zigbee wireless stack.

#define

The application contains a Thread wireless stack.

#define

The application contains a Flex wireless stack.

#define

The application contains a Bluetooth wireless stack.

#define

The application is an MCU application.

#define

The application contains a Bluetooth application.

#define

The application contains a bootloader.

#define

The application contains a Zwave wireless stack.

Macro Definition Documentation#

APPLICATION_PROPERTIES_MAGIC#

#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.


APPLICATION_PROPERTIES_REVERSED#

#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.


APPLICATION_PROPERTIES_VERSION_MAJOR#

#define APPLICATION_PROPERTIES_VERSION_MAJOR
Value:
(1UL)

Major version number of the AppliationProperties_t struct.


APPLICATION_PROPERTIES_VERSION_MINOR#

#define APPLICATION_PROPERTIES_VERSION_MINOR
Value:
(2UL)

Minor version number of the AppliationProperties_t struct.


APPLICATION_CERTIFICATE_VERSION#

#define APPLICATION_CERTIFICATE_VERSION
Value:
(1UL)

Version number of the ApplicationCertificate_t struct.


APPLICATION_SIGNATURE_NONE#

#define APPLICATION_SIGNATURE_NONE
Value:
(0UL)

The application is not signed.


APPLICATION_SIGNATURE_ECDSA_P256#

#define APPLICATION_SIGNATURE_ECDSA_P256
Value:
(1UL << 0UL)

The SHA-256 digest of the application is signed using ECDSA with the NIST P-256 curve.


APPLICATION_SIGNATURE_CRC32#

#define APPLICATION_SIGNATURE_CRC32
Value:
(1UL << 1UL)

The application is not signed, but has a CRC-32 checksum.


APPLICATION_TYPE_ZIGBEE#

#define APPLICATION_TYPE_ZIGBEE
Value:
(1UL << 0UL)

The application contains a Zigbee wireless stack.


APPLICATION_TYPE_THREAD#

#define APPLICATION_TYPE_THREAD
Value:
(1UL << 1UL)

The application contains a Thread wireless stack.


APPLICATION_TYPE_FLEX#

#define APPLICATION_TYPE_FLEX
Value:
(1UL << 2UL)

The application contains a Flex wireless stack.


APPLICATION_TYPE_BLUETOOTH#

#define APPLICATION_TYPE_BLUETOOTH
Value:
(1UL << 3UL)

The application contains a Bluetooth wireless stack.


APPLICATION_TYPE_MCU#

#define APPLICATION_TYPE_MCU
Value:
(1UL << 4UL)

The application is an MCU application.


APPLICATION_TYPE_BLUETOOTH_APP#

#define APPLICATION_TYPE_BLUETOOTH_APP
Value:
(1UL << 5UL)

The application contains a Bluetooth application.


APPLICATION_TYPE_BOOTLOADER#

#define APPLICATION_TYPE_BOOTLOADER
Value:
(1UL << 6UL)

The application contains a bootloader.


APPLICATION_TYPE_ZWAVE#

#define APPLICATION_TYPE_ZWAVE
Value:
(1UL << 7UL)

The application contains a Zwave wireless stack.