Modules#

GPIO

Serial

Common#

Common bootloader definitions.

See bootloader-common.h for source code.

Bootloader Status Definitions#

These are numerical definitions for the possible bootloader status codes.

#define
BL_SUCCESS 0U

Numerical definition for a bootloader status code: Success.

#define
BL_CRC_MATCH 2U

Numerical definition for a bootloader status code: CRC match.

#define
BL_IMG_FLASHED 3U

Numerical definition for a bootloader status code: Image flashed.

#define
BL_ERR 1U

Numerical definition for a bootloader status code: serial error.

#define
BL_ERR_MASK 0x40U

Numerical definition for a bootloader status code: Error mask.

#define
BL_ERR_HEADER_EXP 0x41U

Numerical definition for a bootloader status code: Failed in header state. Header expected.

#define
BL_ERR_HEADER_WRITE_CRC 0x42U

Numerical definition for a bootloader status code: Failed write/CRC of header.

#define
BL_ERR_CRC 0x43U

Numerical definition for a bootloader status code: Failed file CRC.

#define
BL_ERR_UNKNOWN_TAG 0x44U

Numerical definition for a bootloader status code: Unknown tag.

#define
BL_ERR_SIG 0x45U

Numerical definition for a bootloader status code: EBL header error.

#define
BL_ERR_ODD_LEN 0x46U

Numerical definition for a bootloader status code: Trying to flash odd length bytes.

#define
BL_ERR_BLOCK_INDEX 0x47U

Numerical definition for a bootloader status code: Indexed past end of block buffer.

#define
BL_ERR_OVWR_BL 0x48U

Numerical definition for a bootloader status code: Attempt to overwrite bootloader flash.

#define
BL_ERR_OVWR_SIMEE 0x49U

Numerical definition for a bootloader status code: Attempt to overwrite Simulated EEPROM flash.

#define
BL_ERR_ERASE_FAIL 0x4AU

Numerical definition for a bootloader status code: Flash erase failed.

#define
BL_ERR_WRITE_FAIL 0x4BU

Numerical definition for a bootloader status code: Flash write failed.

#define
BL_ERR_CRC_LEN 0x4CU

Numerical definition for a bootloader status code: END tag CRC wrong length.

#define
BL_ERR_NO_QUERY 0X4DU

Numerical definition for a bootloader status code: Received data before query request/response.

#define
BL_ERR_BAD_LEN 0x4EU

Numerical definition for a bootloader status code: Invalid length detected.

#define
BL_ERR_TAGBUF 0x4FU

Numerical definition for a bootloader status code: Problem with tagBuf detected.

#define
BL_EBL_CONTINUE 0x50U

Numerical definition for a bootloader status code: processEbl deferred, call again to continue.

#define
BL_ERR_UNEXPECTED_TAG 0x51U

Numerical definition for a bootloader status code: A known tag was found in an unexpected location (eg. header tag found after data)

#define
BL_ERR_UNK_ENC 0x52U

Numerical definition for a bootloader status code: The specified encryption type is unknown to this bootloader.

#define
BL_ERR_INV_KEY 0x53U

Numerical definition for a bootloader status code: No valid encryption key found on the device (ie. It's all 0xFF's). Bootloader will not function until this key is set.

#define
BL_ERR_ENC 0x54U

Numerical definition for a bootloader status code: Generic error indicating that there was a problem with the encrypted file when decrypting.

#define
BL_IBR_ERR_CRC 0x55U

Numerical definition for a bootloader status code: Failed IBR crc.

#define
BL_IBR_ERR_VERS 0x56U

Numerical definition for a bootloader status code: Incorrect IBR version.

#define
BL_IBR_ERR_ADDR 0x57U

Numerical definition for a bootloader status code: Invalid ebl address in IBR.

#define
BL_IBR_ERR_HDR 0x58U

Numerical definition for a bootloader status code: Incorrect IBR header.

Bootloader State Flags#

These are numerical flags for the possible bootloader states. These values are used in the bootloader code for making the current state more verbose. The flags do not start at 0 so that they can be output via the serial port during debug and easily screened out of normal xmodem traffic which depends only on ACK (0x06) and NAK (0x15).

#define
TIMEOUT 0x16

Bootloader state flag.

#define
FILEDONE 0x17

Bootloader state flag.

#define
FILEABORT 0x18

Bootloader state flag.

#define
BLOCKOK 0x19

Bootloader state flag.

#define
QUERYFOUND 0x1A

Bootloader state flag.

#define
START_TIMEOUT 0x1B

Bootloader state flag.

#define
BLOCK_TIMEOUT 0x1C

Bootloader state flag.

#define
BLOCKERR_MASK 0x20

Bootloader state flag.

#define
BLOCKERR_SOH 0x21

Bootloader state flag: Start Of Header not received.

#define
BLOCKERR_CHK 0x22

Bootloader state flag: Sequence of bytes don't match.

#define
BLOCKERR_CRCH 0x23

Bootloader state flag: CRC High byte failure.

#define
BLOCKERR_CRCL 0x24

Bootloader state flag: CRC Low byte failure.

#define
BLOCKERR_SEQUENCE 0x25

Bootloader state flag: Block received out of sequence.

#define
BLOCKERR_PARTIAL 0x26

Bootloader state flag: Partial block received.

#define
BLOCKERR_DUPLICATE 0x27

Bootloader state flag: Duplicate of previous block.

Enumerations#

enum
@0 {
PRIORITIZE_BEACONS_BASED_ON_PARENT_CLASSIFICATION = 0x0001
PRIORITIZE_BEACONS_BASED_ON_TC_CONNECTVITY = 0x0002
TC_CONNECTIVITY = 0x0010
LONG_UPTIME = 0x0020
BAD_PARENT_CONNECTIVITY = 0x0040
EMBER_OUTGOING_MESSAGES = 0x0001
EMBER_INCOMING_MESSAGES = 0x0002
EMBER_RADIO_IS_ON = 0x0004
EMBER_TRANSPORT_ACTIVE = 0x0008
EMBER_APS_LAYER_ACTIVE = 0x0010
EMBER_ASSOCIATING = 0x0020
EMBER_ZLL_TOUCH_LINKING = 0x0040
EMBER_NETWORK_TIMEOUT_REQUEST = 0x0200
EMBER_SEND_ORPHAN_NOTIFICATION = 0x0400
EMBER_MAC_DATA_POLL_SUPER_RETRY = 0x0800
INITIAL = 0x0000
SCAN_FOR_TOUCH_LINK = 0x0001
SCAN_FOR_DEVICE_INFORMATION = 0x0002
SCAN_FOR_IDENTIFY = 0x0004
SCAN_FOR_RESET = 0x0008
TARGET_NETWORK_FOUND = 0x0010
ABORTING_TOUCH_LINK = 0x0020
SCAN_COMPLETE = 0x0040
TOUCH_LINK_TARGET = 0x0080
FORMING_NETWORK = 0x0100
RESETTING_TO_FACTORY_NEW = 0x0200
ADC_REF_INT = 42U
TOKEN_COUNT
COMM_SERIAL = 0x01
COMM_RADIO = 0x02
}

Typedefs#

typedef uint8_t

Define the bootloader status type.

Bootloader Status Definitions Documentation#

Bootloader State Flags Documentation#

Enumeration Documentation#

@0#

@0
Enumerator
PRIORITIZE_BEACONS_BASED_ON_PARENT_CLASSIFICATION
PRIORITIZE_BEACONS_BASED_ON_TC_CONNECTVITY
TC_CONNECTIVITY
LONG_UPTIME
BAD_PARENT_CONNECTIVITY
EMBER_OUTGOING_MESSAGES

There are messages waiting for transmission.

EMBER_INCOMING_MESSAGES

One or more incoming messages being processed.

EMBER_RADIO_IS_ON

The radio is currently powered on. On sleepy devices, the radio is turned off when not in use. On non-sleepy devices (EMBER_COORDINATOR, EMBER_ROUTER, or EMBER_END_DEVICE), the radio is always on.

EMBER_TRANSPORT_ACTIVE

The transport layer has messages awaiting an ACK.

EMBER_APS_LAYER_ACTIVE

The ZigBee APS layer has messages awaiting an ACK.

EMBER_ASSOCIATING

The node is currently trying to associate with a ZigBee PRO network.

EMBER_ZLL_TOUCH_LINKING

The node is currently touch linking.

EMBER_NETWORK_TIMEOUT_REQUEST

Network Timeout Request Event.

EMBER_SEND_ORPHAN_NOTIFICATION

Sending Orphan Notification Event.

EMBER_MAC_DATA_POLL_SUPER_RETRY

MAC Data Poll Super Retry Event .

INITIAL
SCAN_FOR_TOUCH_LINK
SCAN_FOR_DEVICE_INFORMATION
SCAN_FOR_IDENTIFY
SCAN_FOR_RESET
TARGET_NETWORK_FOUND
ABORTING_TOUCH_LINK
SCAN_COMPLETE
TOUCH_LINK_TARGET
FORMING_NETWORK
RESETTING_TO_FACTORY_NEW
ADC_REF_INT

Internal reference.

TOKEN_COUNT
COMM_SERIAL
COMM_RADIO

Typedef Documentation#

BL_Status#

typedef uint8_t BL_Status

Define the bootloader status type.