Defines a platform abstraction layer for the Z-Wave bootloader. More...
Topics | |
Zpal-bootloader-info-version | |
Data Structures | |
struct | zpal_bootloader_info_t |
Information about the current bootloader. More... | |
Macros | |
#define | ZPAL_BOOTLOADER_CAPABILITY_STORAGE (1 << 0) |
Bootloader has the capability of storing data in an internal or external storage medium. | |
Enumerations | |
enum | zpal_bootloader_type_t { ZPAL_BOOTLOADER_NOT_PRESENT = 0 , ZPAL_BOOTLOADER_PRESENT = 1 } |
Type of bootloader. More... | |
Functions | |
void | zpal_bootloader_get_info (zpal_bootloader_info_t *info) |
Get information about the bootloader on this device. The information returned is fetched from the main bootloader information table. | |
zpal_status_t | zpal_bootloader_init (void) |
Initialize components of the bootloader so the app can use the interface. This typically includes initializing serial peripherals for communication with external SPI flashes, and so on. | |
void | zpal_bootloader_reboot_and_install (void) |
Reboot into the bootloader to install something. If there is a storage component and a slot is marked for bootload, install the image in that slot after verifying it. If a communication component is present, open the communication channel and receive an image to be installed. | |
zpal_status_t | zpal_bootloader_verify_image (void) |
Verify that the image is valid. | |
zpal_status_t | zpal_bootloader_write_data (uint32_t offset, uint8_t *data, uint16_t length) |
Writes a fragment of a firmware image to the bootloader storage. | |
bool | zpal_bootloader_is_first_boot (bool *updated_successfully) |
Returns whether the software is running on the first boot after a new firmware image was written. | |
void | zpal_bootloader_reset_page_counters (void) |
Resets the bootloader page counters. Used when initiating an upgrade to jump back to the start of the storage slot. | |
Defines a platform abstraction layer for the Z-Wave bootloader.
How to use the bootloader API
The ZPAL bootloader API is required if an application would like to store and use a new firmware image.
zpal_bootloader_init() and zpal_bootloader_get_info() must be implemented as Z-Wave always invokes these. The remaining API functions are optional in case a bootloader is not present in the ZPAL implementation.
The following outlines an example of use:
Requirements:
#define ZPAL_BOOTLOADER_CAPABILITY_STORAGE (1 << 0) |
Bootloader has the capability of storing data in an internal or external storage medium.
void zpal_bootloader_get_info | ( | zpal_bootloader_info_t * | info | ) |
Get information about the bootloader on this device. The information returned is fetched from the main bootloader information table.
//zpal-bootloader-info-version
[out] | info | Pointer to the bootloader information struct. |
zpal_status_t zpal_bootloader_init | ( | void | ) |
Initialize components of the bootloader so the app can use the interface. This typically includes initializing serial peripherals for communication with external SPI flashes, and so on.
bool zpal_bootloader_is_first_boot | ( | bool * | updated_successfully | ) |
Returns whether the software is running on the first boot after a new firmware image was written.
[in] | updated_successfully | Set to true if update was successful, false otherwise. Valid only when it's the first boot. |
void zpal_bootloader_reboot_and_install | ( | void | ) |
Reboot into the bootloader to install something. If there is a storage component and a slot is marked for bootload, install the image in that slot after verifying it. If a communication component is present, open the communication channel and receive an image to be installed.
void zpal_bootloader_reset_page_counters | ( | void | ) |
Resets the bootloader page counters. Used when initiating an upgrade to jump back to the start of the storage slot.
zpal_status_t zpal_bootloader_verify_image | ( | void | ) |
Verify that the image is valid.
zpal_status_t zpal_bootloader_write_data | ( | uint32_t | offset, |
uint8_t * | data, | ||
uint16_t | length ) |
Writes a fragment of a firmware image to the bootloader storage.
[in] | offset | Offset from the storage start. |
[in] | data | Pointer to fragment of firmware image. |
[in] | length | Length of firmware image fragment. |