Если я создаю проект SDK LPC51U68 по умолчанию с помощью MCUXpresso, для упомянутых структур и значений нет определений. Так что вам нужно сделать это самостоятельно.
//*****************************************************************************
//*****************************************************************************
#define IMAGE_SINGLE_ENH_SIG 0xEDDC9494
#define IMAGE_ENH_BLOCK_MARKER 0xFEEDA5A5
#define IMG_NORMAL 0
#define IMG_NO_CRC 1
typedef struct IMAGEHEADER_STRUCT
{
unsigned int header_marker;
unsigned int img_type;
unsigned int crc32_len;
unsigned int crc32_val;
unsigned int version;
} IMAGEHEADER_T;
/* Image header */
const IMAGEHEADER_T imageHeader = {
IMAGE_ENH_BLOCK_MARKER, /* Required marker for image header */
IMG_NO_CRC, /* No CRC, makes development easier */
0x00000000, /* crc32_len */
0x00000000, /* crc32_val */
0x00000000 /* version */
};
//*****************************************************************************
// The vector table.
// This relies on the linker script to place at correct location in memory.
//*****************************************************************************
extern void (* const g_pfnVectors[])(void);
extern void * __Vectors __attribute__ ((alias ("g_pfnVectors")));
__attribute__ ((used, section(".isr_vector")))
void (* const g_pfnVectors[])(void) = {
// Core Level - CM0P
&_vStackTop, // The initial stack pointer
ResetISR, // The reset handler
NMI_Handler, // The NMI handler
HardFault_Handler, // The hard fault handler
0, // Reserved
0, // Reserved
0, // Reserved
__valid_user_code_checksum, // LPC MCU checksum
0, // ECRP
(void*) IMAGE_SINGLE_ENH_SIG, // Enhanced image marker @0x24
(void*) &imageHeader, // Pointer to enhanced image header @0x28
SVC_Handler, // SVCall handler
0, // Reserved
0, // Reserved
PendSV_Handler, // The PendSV handler
SysTick_Handler, // The SysTick handler
// Chip Level - LPC51U68
...
}; /* End of g_pfnVectors */
Это должно скомпилироваться. Однако я не знаю, для чего предназначено улучшенное изображение .