【发布时间】:2020-07-10 16:48:31
【问题描述】:
我正在尝试编辑 MCUXpresso LPC51U68 板的启动代码,以便我可以将增强图像刷写到板 See instructions in section 3.5.6 (pg. 17) of this user manual (NXP_LPC51U68_UM)。我更改了从 LPC51U68 板(在 NXP 网站上)的 SDK 下载的启动代码中用户手册中的粗体行。我还在启动代码中编写了用户手册中的 IMAGEHEADER_T 函数。
我对启动代码的编辑最终看起来像这样:
__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*) 0xEDDC9494, // Enhanced image marker (This was added)
imageHeader, // Pointer to enhanced image header (This was added)
SVC_Handler, // SVCall handler
0, // Reserved
0, // Reserved
PendSV_Handler, // The PendSV handler
SysTick_Handler, // The SysTick handler
这是图像标题的定义(应该与用户手册中的完全一致):
/*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
但是,在进行这些编辑后,我发现启动代码无法编译。当我检查偏移量 0x24 处的内存以查看它是否接收到增强图像标志 0xEDDC9494 时,它不存在。我尝试在启动代码中输入一些垃圾,然后构建和编译以查看是否出现错误并且没有错误。 如何让我的启动代码编译???
【问题讨论】:
标签: compilation boot lpc nxp-microcontroller