Digi XBee(R) ANSI C Host Library
|
Support code for bootloader used on "Gen3" products (including S3B, S6, S6B, XLR, Cellular, SX, SX868, S8). More...
#include <stdio.h>
#include <stdlib.h>
#include "xbee/bl_gen3.h"
#include "xbee/byteorder.h"
#include "util/crc16buypass.h"
Data Structures | |
struct | xbee_gen3_page_ver0_t |
< XBEE_GEN3_CMD_UPLOAD_PAGE More... | |
struct | xbee_gen3_page_ver1_t |
< XBEE_GEN3_CMD_UPLOAD_PAGE More... | |
Macros | |
#define | XBEE_GEN3_CMD_BL_VERSION 'B' |
#define | XBEE_GEN3_CMD_EXTENDED_VER 'V' |
#define | XBEE_GEN3_CMD_REGION_CODE 'N' |
#define | XBEE_GEN3_CMD_INITIALIZE 'I' |
#define | XBEE_GEN3_CMD_PROTOCOL_VER 'L' |
#define | XBEE_GEN3_CMD_MAX_BAUDRATE 'X' |
#define | XBEE_GEN3_CMD_NEW_BAUDRATE 'R' |
#define | XBEE_GEN3_CMD_UPLOAD_PAGE 'P' |
#define | XBEE_GEN3_CMD_UPLOAD_FINISHED 'F' |
#define | XBEE_GEN3_CMD_VERIFY_FW 'C' |
#define | XBEE_GEN3_RSP_SUCCESS 'U' |
Successful responses from the bootloader end with XBEE_GEN3_RSP_SUCCESS. | |
#define | XBEE_GEN3_RSP_FAILURE '\x11' |
Generic failure response from bootloader. | |
#define | XBEE_GEN3_RSP_UPLOAD_CRC_ERR '\x12' |
Checksum/CRC invalid. | |
#define | XBEE_GEN3_RSP_UPLOAD_VERIFY_ERR '\x13' |
flash write failed | |
#define | _TIME_ELAPSED(x) (xbee_millisecond_timer() - source->timer > (x)) |
Functions | |
void | xbee_gen3_dump_extended_ver (const xbee_gen3_extended_ver_t *ver) |
int | xbee_bl_gen3_install_init (xbee_dev_t *xbee, xbee_gen3_update_t *source) |
Prepare to install new firmware on an attached XBee module. More... | |
uint16_t | xbee_bl_gen3_install_state (xbee_gen3_update_t *source) |
Return a unique value identifying the install state. More... | |
int | xbee_bl_gen3_install_tick (xbee_gen3_update_t *source) |
Install the firmware image stored in source. More... | |
const char * | xbee_bl_gen3_install_status (xbee_gen3_update_t *source, char buffer[XBEE_GEN3_STATUS_BUF_SIZE]) |
Return a string describing the current state of the firmware update. More... | |
Support code for bootloader used on "Gen3" products (including S3B, S6, S6B, XLR, Cellular, SX, SX868, S8).
Firmware updates use .ebin files.
For Cellular products, all XBee Cellular modules (Cat 1 Verizon and 3G Global) use this bootloader. XBee3 Cellular modules (Cat 1 AT&T and LTE-M/NB-IoT) with firmware versions (ATVR values) ending in 0C or lower do as well.
After installing firmware *0F (1140F or 3100F) on an XBee3 Cellular module, it will update the hardware to use the "Gecko bootloader" and .gbl files for further firmware updates. See xbee/firmware.h and xbee_firmware.c for .gbl and Gecko bootloader support.
Define XBEE_BL_GEN3_VERBOSE for debugging messages.