133 #include "hal_types.h" 134 #include <ti/sysbios/knl/Queue.h> 146 #ifdef OAD_BLE_SECURITY 147 #define OAD_WRITE_PERMIT GATT_PERMIT_AUTHEN_WRITE 149 #define OAD_WRITE_PERMIT GATT_PERMIT_WRITE 150 #endif //OAD_SECURITY 155 #define OAD_IMG_ID_RETRIES 3 168 #define OAD_QUEUE_EVT Event_Id_01 175 #define OAD_DL_COMPLETE_EVT Event_Id_02 182 #define OAD_OUT_OF_MEM_EVT Event_Id_03 197 #define OAD_SERVICE_UUID 0xFFC0 202 #define OAD_IMG_IDENTIFY_UUID 0xFFC1 207 #define OAD_IMG_BLOCK_UUID 0xFFC2 213 #define OAD_IMG_COUNT_UUID 0xFFC3 220 #define OAD_IMG_STATUS_UUID 0xFFC4 225 #define OAD_EXT_CTRL_UUID 0xFFC5 237 #define OAD_IDX_IMG_IDENTIFY 0 242 #define OAD_IDX_IMG_BLOCK 1 247 #define OAD_IDX_EXT_CTRL 2 255 #define OAD_ATT_OVERHEAD 3 260 #define OAD_BLK_NUM_HDR_SZ 4 267 #define OAD_DEFAULT_BLOCK_SIZE 20 274 #define OAD_MAX_BLOCK_SIZE 244 279 #define OAD_IMAGE_ID_RSP_LEN 0x01 291 #define OAD_EXT_CTRL_GET_BLK_SZ 0x01 298 #define OAD_EXT_CTRL_IMG_CNT 0x02 305 #define OAD_EXT_CTRL_START_OAD 0x03 312 #define OAD_EXT_CTRL_ENABLE_IMG 0x04 318 #define OAD_EXT_CTRL_CANCEL_OAD 0x05 324 #define OAD_EXT_CTRL_DISABLE_BLK_NOTIF 0x06 330 #define OAD_EXT_CTRL_GET_SW_VER 0x07 336 #define OAD_EXT_CTRL_GET_IMG_STAT 0x08 342 #define OAD_EXT_CTRL_GET_PROF_VER 0x09 348 #define OAD_EXT_CTRL_GET_DEV_TYPE 0x10 355 #define OAD_EXT_CTRL_GET_IMG_INFO 0x11 361 #define OAD_EXT_CTRL_BLK_RSP_NOTIF 0x12 367 #define OAD_EXT_CTRL_ERASE_BONDS 0x13 376 #define OAD_EXT_CTRL_CMD_NOT_SUPPORTED 0xFF 384 #define OAD_IMG_INFO_ONCHIP 0x01 392 #define OAD_DEFAULT_INACTIVITY_TIME 10000 398 #define OAD_MIN_INACTIVITY_TIME 4000 403 #define OAD_CHAR_CNT 3 408 #define OAD_CCCD_CNT OAD_CHAR_CNT 415 #define OAD_SUCCESS 0 416 #define OAD_CRC_ERR 1 417 #define OAD_FLASH_ERR 2 418 #define OAD_BUFFER_OFL 3 419 #define OAD_ALREADY_STARTED 4 420 #define OAD_NOT_STARTED 5 421 #define OAD_DL_NOT_COMPLETE 6 422 #define OAD_NO_RESOURCES 7 423 #define OAD_IMAGE_TOO_BIG 8 424 #define OAD_INCOMPATIBLE_IMAGE 9 425 #define OAD_INVALID_FILE 10 426 #define OAD_INCOMPATIBLE_FILE 11 427 #define OAD_AUTH_FAIL 12 428 #define OAD_EXT_NOT_SUPPORTED 13 429 #define OAD_DL_COMPLETE 14 430 #define OAD_CCCD_NOT_ENABLED 15 431 #define OAD_IMG_ID_TIMEOUT 16 435 #if defined(DeviceFamily_CC26X2) || defined(DeviceFamily_CC13X2) 437 #define BIM_START 0x56000 439 #define BIM_START 0x1F000 446 #define OAD_IMG_PG_INVALID 0xFF 449 #define OAD_SEC_ECDSA_P256 0x01 450 #define OAD_SEC_AES_128_CBC 0x02 456 #define OAD_EFL_MAX_META 4 465 #define EXT_CTRL_OP_CODE(pData)(pData[0]) 474 PACKED_TYPEDEF_STRUCT
490 PACKED_TYPEDEF_STRUCT
501 PACKED_TYPEDEF_STRUCT
509 PACKED_TYPEDEF_STRUCT
511 uint8_t securityVersion;
562 PACKED_TYPEDEF_STRUCT
571 PACKED_TYPEDEF_STRUCT
580 PACKED_TYPEDEF_STRUCT
589 PACKED_TYPEDEF_STRUCT
601 PACKED_TYPEDEF_STRUCT
613 PACKED_TYPEDEF_STRUCT
628 PACKED_TYPEDEF_STRUCT
686 extern uint8_t
OAD_open(uint32_t oadTimeout);
773 extern void OAD_getProgressInfo(imgProgressInfo_t* pImgInfo);
uint8_t imgCpStat
Image copy status bytes.
Definition: oad.h:479
uint8_t oadCreateFactoryImageBackup(void)
uint8_t crcStat
Image CRC status flag.
Definition: oad.h:504
uint8_t cmdID
External control op-code.
Definition: oad.h:492
External Control Command received.
Definition: oad.h:523
uint8_t imgCpStat
Image copy flag.
Definition: oad.h:503
uint8_t imgType
Image Type.
Definition: oad.h:619
OAD peer timed out.
Definition: oad.h:524
uint16_t len
Length of data received.
Definition: oad.h:535
uint8_t imgCpStat
Image copy status.
Definition: oad.h:617
uint32_t requestedBlk
Requested block number.
Definition: oad.h:494
uint8_t profVer
OAD profile version.
Definition: oad.h:574
oadEvent_e event
Event that occurred.
Definition: oad.h:533
uint8_t hardwareRev
Hardware revision Field from ChipInfo module.
Definition: oad.h:606
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:573
uint8_t crcStat
CRC status.
Definition: oad.h:480
uint8_t bimVer
BIM version.
Definition: oad.h:477
uint8_t imgNo
Image number flag.
Definition: oad.h:506
uint8_t imgType
Image Type.
Definition: oad.h:481
uint16_t OAD_getBlockSize(void)
bool OAD_getSWVersion(uint8_t *swVer, uint8_t len)
uint8_t imgType
Image type flag.
Definition: oad.h:505
uint8_t OAD_processQueue(void)
uint8_t OAD_open(uint32_t oadTimeout)
uint8_t imgNo
Image Number.
Definition: oad.h:632
uint8_t chipType
Chip Type Field from ChipInfo module.
Definition: oad.h:604
Image block request/response event.
Definition: oad.h:521
uint32_t len
Image length in octets.
Definition: oad.h:483
uint16_t techType
Wireless technology type.
Definition: oad.h:633
oadState_e
Definition: oad.h:543
uint8_t imgType
Image Type.
Definition: oad.h:631
uint8_t prevBlkStat
Status of previous block write.
Definition: oad.h:493
OAD module is configuring for a download.
Definition: oad.h:547
void OAD_register(oadTargetCBs_t *pfnOadCBs)
uint8_t OAD_setBlockSize(uint16_t mtuSize)
OAD module is not performing any action.
Definition: oad.h:545
OAD module is validating an received image.
Definition: oad.h:549
uint16_t connHandle
Connection event was received on.
Definition: oad.h:534
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:582
oadWriteCB_t pfnOadWrite
The peer has written to the OAD service.
Definition: oad.h:669
uint8_t rsvd
RFU.
Definition: oad.h:607
uint8_t * pData
Pointer to data received.
Definition: oad.h:537
uint16_t oadBlkSz
OAD block size.
Definition: oad.h:583
uint8_t imgNo
Image number of 'image type'.
Definition: oad.h:482
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:591
OAD module is receiving an image.
Definition: oad.h:548
OAD module is checking an image.
Definition: oad.h:546
uint16_t offset
GATT offset into blob.
Definition: oad.h:536
uint8_t chipFamily
Chip Family Field from ChipInfo module.
Definition: oad.h:605
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:564
#define OAD_SW_VER_LEN
OAD software version length in bytes.
Definition: oad_image_header.h:455
uint8_t crcStat
Image CRC status.
Definition: oad.h:618
uint16_t OAD_getactiveCxnHandle()
void(* oadWriteCB_t)(uint8_t event, uint16_t arg)
Definition: oad.h:662
bool OAD_isUsrAppValid(void)
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:615
uint8_t status
Status of command.
Definition: oad.h:565
Image identify received.
Definition: oad.h:520
uint8_t metaVer
Metadata version.
Definition: oad.h:478
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:630
oadEvent_e
Definition: oad.h:518
uint8_t numImages
Number of images.
Definition: oad.h:616
OAD complete.
Definition: oad.h:522
uint8_t imgNo
Image Number.
Definition: oad.h:620
OAD module has completed a download.
Definition: oad.h:550
Queue_Elem _elem
New queue element to contain write evt info.
Definition: oad.h:532
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:603
bool OAD_evenBitCount(uint32_t value)