CycloneBOOT 2.6.6
Secure Bootloader for ARM Cortex-M MCU
Loading...
Searching...
No Matches
image_format.h File Reference

CycloneBOOT on-flash image format. More...

#include <stdint.h>
#include <stddef.h>

Go to the source code of this file.

Classes

struct  IMAGE_PACK_ATTR
 Image version (8 bytes) More...
 

Macros

#define IMAGE_PACK_BEGIN
 
#define IMAGE_PACK_END
 
#define IMAGE_PACK_ATTR
 
#define IMAGE_FORMAT_STATIC_ASSERT_CAT_(a, b)   a ## b
 
#define IMAGE_FORMAT_STATIC_ASSERT_CAT(a, b)   IMAGE_FORMAT_STATIC_ASSERT_CAT_(a, b)
 
#define IMAGE_FORMAT_STATIC_ASSERT(cond, msg)    typedef char IMAGE_FORMAT_STATIC_ASSERT_CAT(image_format_static_assert_, __LINE__)[(cond) ? 1 : -1]
 

Enumerations

enum  ImageType { IMAGE_TYPE_APP = 0 , IMAGE_TYPE_BOOT , IMAGE_TYPE_NONE }
 Image type.
 

Functions

IMAGE_PACK_END IMAGE_FORMAT_STATIC_ASSERT (sizeof(ImageVersion)==8, "ImageVersion on-flash layout changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageVersion, major)==0, "ImageVersion.major offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageVersion, minor)==1, "ImageVersion.minor offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageVersion, revision)==2, "ImageVersion.revision offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageVersion, buildNum)==4, "ImageVersion.buildNum offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (sizeof(ImageHeader)==64, "ImageHeader on-flash layout changed (must stay 64 bytes)")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, headVers)==0, "ImageHeader.headVers offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, imgIndex)==4, "ImageHeader.imgIndex offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, imgType)==8, "ImageHeader.imgType offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, dataPadding)==9, "ImageHeader.dataPadding offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, dataSize)==13, "ImageHeader.dataSize offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, binarySize)==17, "ImageHeader.binarySize offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, dataVers)==21, "ImageHeader.dataVers offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, imgTime)==29, "ImageHeader.imgTime offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, reserved)==37, "ImageHeader.reserved offset changed")
 
 IMAGE_FORMAT_STATIC_ASSERT (offsetof(ImageHeader, headCrc)==60, "ImageHeader.headCrc offset changed")
 

Detailed Description

CycloneBOOT on-flash image format.

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2021-2026 Oryx Embedded SARL. All rights reserved.

Description

Image layout on flash: [ header (64 bytes) ][ padding ][ firmware ][ runtime check data ][ CRC32 ] Encrypted image in external memory: [ header (64 bytes) ][ IV (16 bytes) ][ magic block (16 bytes) ][ data ][ CRC32 ]