AIROC™ BTSDK v4.6 - Documentation | ||||
Data Structures | |
struct | BltFwuConfig_ |
struct | BleFwuState_ |
struct | FwReportHeader_ |
Structure of the firmware upgrade header. More... | |
Typedefs | |
typedef struct BltFwuConfig_ | BltFwuConfig |
typedef struct BleFwuState_ | BleFwuState |
typedef PACKED struct FwReportHeader_ | FwReportHeader |
struct { | |
UINT8 commandId | |
} | FwCommandHeader |
Enumerations | |
enum | { DEFAULT_WATCHDOG_VALUE = 10 } |
BleAppFwu implements firmware update. More... | |
enum | { DEFAULT_ID_ENABLE_FWU = 0x70, DEFAULT_ID_SETUP_READ = 0x71, DEFAULT_ID_READ = 0x72, DEFAULT_ID_ERASE = 0x73, DEFAULT_ID_WRITE = 0x74, DEFAULT_ID_LAUNCH = 0x75 } |
enum | { RESTART_WATCHDOG_TIMER = 0, PET_WATCHDOG_ONLY } |
enum | { INDIRECT_MEM_MAP_MASK = 0xFF000000, INDIRECT_MEM_MAP_EEPROM = 0xFF000000, INDIRECT_MEM_MAP_PF = 0xFC000000, INDIRECT_MEM_MAP_SF = 0xF8000000 } |
enum | { LEFWU_SUCCESS = 0x00, LEFWU_ERR_NOT_READY = 0x01, LEFWU_ERR_INVALID_CMD = 0x02, LEFWU_ERR_UNSUPPORTED_REQ = 0x03, LEFWU_ERR_INVALID_PARAM = 0x04, LEFWU_ERR_UNKNOWN = 0x0E, LEFWU_ERR_FATAL = 0x0F } |
anonymous enum |
anonymous enum |
anonymous enum |
BleAppFwu implements firmware update.
This provides a few methods to be called from the App to implement the Firmware Upgrade protocol.
The protocol is very simple:
As soon ENABLE_FWU was enabled, a watchdog timer is started (default 10 seconds). Every accepted FWU command restarts it; if it's let expire, we reset the system to get out of any issue (e.g. the host hangs or we lose the link).
Based on these primitives, the host can perform almost any update.