OAD Image Header¶
Structure definition for image header and segments, these are prepended to the over the air images.
Defines
-
OAD_IMG_TYPE_PERSISTENT_APP
¶ OAD on-chip persistent application image
The persistent app is the permanently resident app used in on-chip OAD The persistent app is responsible for updating the user application
-
OAD_IMG_TYPE_APP
¶ OAD user application image
A user application of split app/stack type
-
OAD_IMG_TYPE_STACK
¶ OAD stack image
An OAD enabled stack image of split image type
-
OAD_IMG_TYPE_APP_STACK
¶ OAD app + stack merge
An OAD enabled image that is a merge of both app and stack that are of split image type.
-
OAD_IMG_TYPE_NP
¶ OAD network processor image
A network processor image. This image is intended to run an external processor
-
OAD_IMG_TYPE_FACTORY
¶ OAD network processor image
A network processor image. This image is intended to run an external processor
-
OAD_IMG_TYPE_BIM
¶ OAD Boot Image Manager (BIM) image
A BIM image
- Note
- BIM upgrade is not currently supported
-
OAD_IMG_TYPE_APPSTACKLIB
¶ OAD app + stack library image
An OAD enabled executable where the app and stack are built and linked together as one image.
- Note
- This is different than OAD_IMG_TYPE_APP_STACK which is a post build merge of two split images.
-
OAD_IMG_TYPE_USR_BEGIN
¶ OAD User defined image type begin
This is the beginning of the range of image types reserved for the user. OAD applications will not attempt to use or load images with this type
-
OAD_IMG_TYPE_USR_END
¶ OAD User defined image type end
This is the end of the range of image types reserved for the user. OAD applications will not attempt to use or load images with this type
-
OAD_IMG_TYPE_HOST_BEGIN
¶ OAD Host image type begin
An image for a host processor
-
OAD_IMG_TYPE_HOST_END
¶ OAD Host image type end
An image for a host processor
-
OAD_IMG_TYPE_RSVD_BEGIN
¶ OAD reserved image type begin
- Warning
- These fields are RFU
-
OAD_IMG_TYPE_RSVD_END
¶ OAD reserved image type end
- Warning
- These fields are RFU
-
OAD_WIRELESS_TECH_BLE
¶ Image built for BLE
-
OAD_WIRELESS_TECH_TIMAC_SUBG
¶ Image built for Sub1-GHz TI 15.4-Stack
-
OAD_WIRELESS_TECH_TIMAC_2_4G
¶ Image built for 2.4-GHz TI 15.4-Stack
-
OAD_WIRELESS_TECH_ZIGBEE
¶ Image built for Zigbee
-
OAD_WIRELESS_TECH_RF4CE
¶ Image built for RF4CE
-
OAD_WIRELESS_TECH_THREAD
¶ Image built for TI Open Thread
-
OAD_WIRELESS_TECH_EASYLINK
¶ Image built for EasyLink
-
OAD_IMG_ID_VAL
¶ Magic number to identify OAD image header. It is recommended that the customer adjust these to uniquely identify their device
This define will be filled in conditionally based on DeviceFamily_*
- DeviceFamily_CC26X2:
{'C', 'C', '2', '6', 'x', '2', 'R', '1'}
- DeviceFamily_CC13X2:
{'C', 'C', '1', '3', 'x', '2', 'R', '1'}
- DeviceFamily_CC26X0R2:
{'O', 'A', 'D', ' ', 'I', 'M', 'G', ' '}
- Else an error will be thrown
- DeviceFamily_CC26X2:
-
OAD_EXTFL_ID_VAL
¶ Magic number used by entries in the image header table at the beginning of external flash. Note this is different from OAD_IMG_ID_VAL so that the application can determine the difference between an entry in the header table and the start of an OAD image
- Note
- This is only used by off-chip OAD
-
CRC_OFFSET
¶ Offset in bytes of crc32 into the structure imgFixedHdr_t
-
BIM_VER_OFFSET
¶ Offset in bytes of bimVer into the structure imgFixedHdr_t
-
IMG_DATA_OFFSET
¶ Offset in bytes of bimVer into the structure imgFixedHdr_t. This is the start of data after the CRC bytes
-
IMG_INFO_OFFSET
¶ Offset in bytes of imgCpStat into the structure imgFixedHdr_t
-
IMG_COPY_STAT_OFFSET
¶ Offset in bytes of IMG_INFO_OFFSET into the structure imgFixedHdr_t
-
CRC_STAT_OFFSET
¶ Offset in bytes of CRC status into the structure imgFixedHdr_t
-
IMG_TYPE_OFFSET
¶ Offset in bytes of imgType into the structure imgFixedHdr_t
-
SEG_LEN_OFFSET
¶ Offset in bytes of the length field into the structure boundarySeg_t
-
SEG_HDR_LEN
¶ Length of boundarySeg_t in bytes
-
OAD_IMG_ID_LEN
¶ Length of OAD image ID field, this is the length of OAD_IMG_ID_VAL and OAD_EXTFL_ID_VAL
-
OAD_SW_VER_LEN
¶ Length of software version in bytes
-
OAD_IMG_HDR_LEN
¶ Length of imgFixedHdr_t, this is the length of the core header
-
IMG_BOUNDARY_SEG_ID
¶ Op code used to identify a boundary segment boundarySeg_t
-
IMG_PAYLOAD_SEG_ID
¶ Op code used to identify a contiguous image segment imgPayloadSeg_t
-
IMG_NONCOUNT_SEG_ID
¶ Op code used to identify a non-contiguous image segment.
-
IMG_SECURITY_SEG_ID
¶ Op code used to identify a security segment.
-
BIM_VER
¶ Version of BIM this image is intended to work with
- Warning
- This is not intended to be changed
-
META_VER
¶ Version of metadata that defined this image header
- Warning
- This is not intended to be changed
-
DEFAULT_STATE
¶ Default state of unprogrammed flash in an image header field
-
CRC_VALID
¶ Flag for crcStat indicating the CRC of the image is valid
-
CRC_INVALID
¶ Flag for crcStat indicating the CRC of the image is invalid
-
NEED_COPY
¶ FlagimgCpStat indicating the image should be copied
-
COPY_DONE
¶ FlagimgCpStat indicating the image is already copied
-
EFL_MATADATA_HDR_LEN
¶ Length of image external flash image header
-
INVALID_ADDR
¶ An invalid address as shown by unprogrammed flash
-
INVALID_LEN
¶ An invalid length as shown by unprogrammed flash.
-
DEFAULT_CRC
¶ An invalid address as shown by unprogrammed flash.
-
struct
imgFixedHdr_t
¶ - #include <oad_image_header.h>
OAD Core image header structure definition
- Note
- This header is required to be part of all OAD images
Public Members
-
uint8_t imgFixedHdr_t::imgID[8]
User-defined Image Identification bytes.
-
uint32_t
crc32
¶ Image’s 32-bit CRC value.
-
uint8_t
bimVer
¶ BIM version.
-
uint8_t
metaVer
¶ Metadata version.
-
uint16_t
techType
¶ Wireless protocol type BLE/TI-MAC/ZIGBEE etc.
-
uint8_t
imgCpStat
¶ Image copy status.
-
uint8_t
crcStat
¶ CRC status.
-
uint8_t
imgType
¶ Image Type.
-
uint8_t
imgNo
¶ Image number of ‘image type’.
-
uint32_t
imgVld
¶ This field is RFU.
-
uint32_t
len
¶ Image length in bytes.
-
uint32_t
prgEntry
¶ Program entry address.
-
uint8_t imgFixedHdr_t::softVer[4]
Software version of the image.
-
uint32_t
imgEndAddr
¶ Address of the last byte of a contiguous image.
-
uint16_t
hdrLen
¶ Total length of the image header.
-
uint16_t
rfu
¶ Reserved bytes.
-
struct
imgPayloadSeg_t
¶ - #include <oad_image_header.h>
OAD continuous image payload segment
This segment is used to describe a contiguous region of an image The code data in this blob will be flashed to sequential addresses
-
struct
boundarySeg_t
¶ - #include <oad_image_header.h>
OAD boundary segment
This segment is used to describe the RAM and Flash boundaries in a split image system.
- Note
- This segment is optional and not required if app and stack are linked together as one image.
Public Members
-
uint8_t
segTypeBd
¶ Segment type - for boundary segment.
-
uint16_t
wirelessTech
¶ Wireless technology type.
-
uint8_t
rfu
¶ Reserved byte.
-
uint32_t
boundarySegLen
¶ Boundary segment length.
-
uint32_t
stackStartAddr
¶ Start address of stack image on internal flash.
-
uint32_t
stackEntryAddr
¶ Stack start address.
-
uint32_t
ram0StartAddr
¶ RAM entry start address.
-
uint32_t
ram0EndAddr
¶ RAM entry end address.
-
struct
imgHdr_t
¶ - #include <oad_image_header.h>
OAD Image Header
This structure represents the complete header to be prepended to an OAD image
It is an amalgamation of the structures defined above, and must contain a core header
Public Members
-
imgFixedHdr_t
fixedHdr
¶ Required core image header.
-
imgPayloadSeg_t
imgPayload
¶ Required contiguous image segment.
-
imgFixedHdr_t