Hi,
Is LPC51U68 supports dual image from primary bootloder?
If not, is there a register that MCU can set to instruct LPC51U68 to boot up from a particular flash address?
If yes, can this register be set via SPI or I2C interface?
Note:
I am aware that external MCU is able to instruct LPC51U68 to boot up in a particular flash address after entering ISP mode (eg. via SIP-SPI's SH_CMD_BOOT command). However, this require the LPC51U68 to enter ISP mode everytime it boot up.
I am looking for a more "permanent" solution whereby LPC51U68 will always boot up from this particular flash address without entering ISP mode.
Hi,
Pls refer to section 3.2 Pin description as following fig, I copy from the UM11071.pdf.
If you do not want to enter ISP mode, pls connect a pull-up resistor on the PIO0_31 pin, in this setting, the ISP mode is bypassed, the LPC51U68 will execute application code directly.
Hope it can help you
BR
XiangJun Rong
Dear XiangJun,
I think you misunderstood my questions:
1. Can LPC51U68 supports dual image from primary bootloder?
2. If not, is there a register that MCU can set to instruct LPC51U68 to boot up from a particular flash address?
3. If yes, can this register be set via SPI or I2C interface?
Hi,
Pls refer to section 3.5.2.2 Dual Enhanced (DE) images in the UM11071.pdf for LPC51U68.
It makes it clear that the bootloader of LPC51U68 supports Dual Enhanced (DE) images, but there is not a register to point out the offset of the second image.
For the Dual Enhanced (DE) images, the first image must be located at sector 0 and start address must be 0x00 which is SP pointer. For the second image, it can locate in any sector except for sector 0.
Because there is enhanced image marker, after reset, the bootloader will look for the enhanced image marker, if it found the key words, it make sure the sector includes valid image, then based on the imageHeader pointer, it can look for the version of the image, then determine which image is valid based on version, then execute. For the second image, you have to initialize the Vector Table Offset Register so that the core can get the entry point of the second image.
Hope it can help you
BR
XiangJun Rong
Hi,
Pls note that the two images are different.
When you develop source code which generate image1, you can initialize the Vector Table Offset Register as 0x00.
When you develop source code which generate image2, you can initialize the Vector Table Offset Register as the sector address, the last 6 bits are reserved.
Hope it can help you
BR
XiangJun Rong