CommunicationPlugin

Description

Host communication interface.

The Communication plugin provides an interface for implementing communication with a host device, such as a computer or a microcontroller.

Communication Protocol Implementations

Several plugins implement the communication interface, using different transports and protocols.

BGAPI UART DFU

By enabling the BGAPI communication plugin, the bootloader communication interface implements the UART DFU protocol using BGAPI commands. This plugin makes the bootloader compatible with the legacy UART bootloader that was previously released with the Silicon Labs Bluetooth stack.

EZSP-SPI

By enabling the EZSP-SPI communication plugin, the bootloader communication interface implements the EZSP protocol over SPI. This plugin makes the bootloader compatible with the legacy ezsp-spi-bootloader that was previously released with the EmberZnet and SL-Thread wireless stacks.

UART XMODEM

By enabling the UART XMODEM communication plugin, the bootloader communication interface implements the XMODEM-CRC protocol over UART. This plugin makes the bootloader compatible with the legacy serial-uart-bootloader that was previously released with the EmberZnet and SL-Thread wireless stacks.

Modules

Utils

Functions

void communication_init (void)
int32_t communication_start (void)
int32_t communication_main (void)
void communication_shutdown (void)

Function Documentation

void communication_init ( void )

Initialize hardware for the communication plugin.

int32_t communication_start ( void )

Initialize communication between the bootloader and external host. E.g. indicate to the external host that we're alive and kicking.

Returns
Error code indicating success or failure
Return values
BOOTLOADER_OK on success
BOOTLOADER_ERROR_COMMUNICATION_START on failure
int32_t communication_main ( void )

This function is not supposed to return until the host signals the end of the current session, or a new image has been flashed and verified.

Returns
Error code indicating sucess or failure
Return values
BOOTLOADER_OK when a new image was flashed
BOOTLOADER_ERROR_COMMUNICATION_ERROR on communication error
BOOTLOADER_ERROR_COMMUNICATION_DONE when no image was received
BOOTLOADER_ERROR_COMMUNICATION_IMAGE_ERROR when received image is invalid
void communication_shutdown ( void )

Stop communication between the bootloader and external host.