<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC Microcontrollersのトピックenhanced boot mcuexpresso</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790446#M31829</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there any MCU_Expresso compatible assembly to do the following for the LPCXpresso54608?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.3.2.6 Modifications to startup code to enable enhanced boot support&lt;BR /&gt;Several modifications need to be made to the startup code to enable enhanced boot&lt;BR /&gt;support. The value at offset 0x24 in the image must contain an enhanced image marker&lt;BR /&gt;and the value at offset 0x28 must point to a valid image header in the image. See the box&lt;BR /&gt;below for an example setup using a Single Enhanced image. Changes are in bold and&lt;BR /&gt;made to the vector table are of the startup code.&lt;BR /&gt;; Vector Table Mapped to Address 0 at Reset&lt;BR /&gt;AREA RESET, DATA, READONLY&lt;BR /&gt;EXPORT __Vectors&lt;BR /&gt;__Vectors DCD __initial_sp ; Top of Stack&lt;BR /&gt;DCD Reset_Handler ; Reset Handler&lt;BR /&gt;DCD NMI_Handler&lt;BR /&gt;DCD HardFault_Handler&lt;BR /&gt;DCD MemManage_Handler&lt;BR /&gt;DCD BusFault_Handler&lt;BR /&gt;DCD UsageFault_Handler&lt;BR /&gt;__vector_table_0x1c&lt;BR /&gt;DCD 0 ; Checksum of the first 7 words&lt;BR /&gt;DCD 0&lt;BR /&gt;DCD 0xEDDC9494 ; Enhanced image marker, set to 0x0 for legacy boot&lt;BR /&gt;IMPORT imageHeader&lt;BR /&gt;UM10912 All information provided in this document is subject to legal disclaimers. © NXP Semiconductors N.V. 2017. All rights reserved.&lt;BR /&gt;User manual Rev. 2.1 — 9 November 2017 30 of 1174&lt;BR /&gt;NXP Semiconductors UM10912&lt;BR /&gt;Chapter 3: LPC546xx Boot process&lt;BR /&gt;DCD imageHeader ; Pointer to enhanced image header, use 0x0 for legacy&lt;BR /&gt;boot&lt;BR /&gt;The image header for the startup code must be located somewhere in non-volatile&lt;BR /&gt;memory. A simple image header that doesn’t perform CRC is shown below. All field sizes&lt;BR /&gt;are 32-bits.&lt;BR /&gt;/* Image header */&lt;BR /&gt;const IMAGEHEADER_T imageHeader = {&lt;BR /&gt;IMAGE_ENH_BLOCK_MARKER, /* Required marker for image header */&lt;BR /&gt;IMG_NO_CRC, /* No CRC, makes development easier */&lt;BR /&gt;0x00000000, /* crc32_len */&lt;BR /&gt;0x00000000, /* crc32_val */&lt;BR /&gt;0x00000000 /* version */&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I cannot get the IDE/assembler to recognize any of the arm instructions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Ben&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Sep 2018 21:57:54 GMT</pubDate>
    <dc:creator>benmalchow</dc:creator>
    <dc:date>2018-09-24T21:57:54Z</dc:date>
    <item>
      <title>enhanced boot mcuexpresso</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790446#M31829</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there any MCU_Expresso compatible assembly to do the following for the LPCXpresso54608?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.3.2.6 Modifications to startup code to enable enhanced boot support&lt;BR /&gt;Several modifications need to be made to the startup code to enable enhanced boot&lt;BR /&gt;support. The value at offset 0x24 in the image must contain an enhanced image marker&lt;BR /&gt;and the value at offset 0x28 must point to a valid image header in the image. See the box&lt;BR /&gt;below for an example setup using a Single Enhanced image. Changes are in bold and&lt;BR /&gt;made to the vector table are of the startup code.&lt;BR /&gt;; Vector Table Mapped to Address 0 at Reset&lt;BR /&gt;AREA RESET, DATA, READONLY&lt;BR /&gt;EXPORT __Vectors&lt;BR /&gt;__Vectors DCD __initial_sp ; Top of Stack&lt;BR /&gt;DCD Reset_Handler ; Reset Handler&lt;BR /&gt;DCD NMI_Handler&lt;BR /&gt;DCD HardFault_Handler&lt;BR /&gt;DCD MemManage_Handler&lt;BR /&gt;DCD BusFault_Handler&lt;BR /&gt;DCD UsageFault_Handler&lt;BR /&gt;__vector_table_0x1c&lt;BR /&gt;DCD 0 ; Checksum of the first 7 words&lt;BR /&gt;DCD 0&lt;BR /&gt;DCD 0xEDDC9494 ; Enhanced image marker, set to 0x0 for legacy boot&lt;BR /&gt;IMPORT imageHeader&lt;BR /&gt;UM10912 All information provided in this document is subject to legal disclaimers. © NXP Semiconductors N.V. 2017. All rights reserved.&lt;BR /&gt;User manual Rev. 2.1 — 9 November 2017 30 of 1174&lt;BR /&gt;NXP Semiconductors UM10912&lt;BR /&gt;Chapter 3: LPC546xx Boot process&lt;BR /&gt;DCD imageHeader ; Pointer to enhanced image header, use 0x0 for legacy&lt;BR /&gt;boot&lt;BR /&gt;The image header for the startup code must be located somewhere in non-volatile&lt;BR /&gt;memory. A simple image header that doesn’t perform CRC is shown below. All field sizes&lt;BR /&gt;are 32-bits.&lt;BR /&gt;/* Image header */&lt;BR /&gt;const IMAGEHEADER_T imageHeader = {&lt;BR /&gt;IMAGE_ENH_BLOCK_MARKER, /* Required marker for image header */&lt;BR /&gt;IMG_NO_CRC, /* No CRC, makes development easier */&lt;BR /&gt;0x00000000, /* crc32_len */&lt;BR /&gt;0x00000000, /* crc32_val */&lt;BR /&gt;0x00000000 /* version */&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I cannot get the IDE/assembler to recognize any of the arm instructions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Ben&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2018 21:57:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790446#M31829</guid>
      <dc:creator>benmalchow</dc:creator>
      <dc:date>2018-09-24T21:57:54Z</dc:date>
    </item>
    <item>
      <title>Re: enhanced boot mcuexpresso</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790447#M31830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After further digging it's due to the toolchain used by MCUXpresso.&amp;nbsp; I either need the assembly for ARM-GCC to accomplish this, or the equivalent code in C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will try to port in the meantime.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Ben&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2018 14:55:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790447#M31830</guid>
      <dc:creator>benmalchow</dc:creator>
      <dc:date>2018-09-25T14:55:40Z</dc:date>
    </item>
    <item>
      <title>Re: enhanced boot mcuexpresso</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790448#M31831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What errors are you getting? Perhaps post the code you are trying to assemble?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2018 15:38:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790448#M31831</guid>
      <dc:creator>converse</dc:creator>
      <dc:date>2018-09-25T15:38:01Z</dc:date>
    </item>
    <item>
      <title>Re: enhanced boot mcuexpresso</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790449#M31832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check the LPC1700 secondary USB bootloader as reference:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fcache.nxp.com%2Fdocs%2Fen%2Fapplication-note%2FAN10866.zip" rel="nofollow" target="_blank"&gt;http://cache.nxp.com/docs/en/application-note/AN10866.zip&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope this helps,&lt;/P&gt;&lt;P&gt;Have a great day,&lt;/P&gt;&lt;P&gt;Sol&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Sep 2018 22:40:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790449#M31832</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2018-09-26T22:40:19Z</dc:date>
    </item>
    <item>
      <title>Re: enhanced boot mcuexpresso</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790450#M31833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have gotten past one of my hurdles.&amp;nbsp; I have a section placement variable to write the single enhanced image enable to 0x24 in FLASH.&amp;nbsp; At 0x28 I have the pointer to the image header which I stored in .rodata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ROM bootloader successfully jumps to my single enhanced image (this will be my secondary bootloader).&amp;nbsp; My secondary bootloader consumes FLASH space 0x0 to 0x7FFF.&amp;nbsp; I created a dummy app that blinks LEDS, it consumes FLASH space 0x8000 to 0x7FFFF.&amp;nbsp; My secondary bootloader, at this moment, simply jumps to my dummy app.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I flash the dummy app, then flash the secondary bootlaoder all works well (I see blinking LEDS).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, when I reset I end up in some invalid memory space:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="invalid_mem.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/74234i61BF19E0E9C3C9A6/image-size/large?v=v2&amp;amp;px=999" role="button" title="invalid_mem.jpg" alt="invalid_mem.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Any thoughts would be greatly appreciated!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PS, I have loaded additional symbol files in the bootloader so I can debug both bootloader and application, so this is likely not a debug issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Ben&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2018 12:13:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790450#M31833</guid>
      <dc:creator>benmalchow</dc:creator>
      <dc:date>2018-10-02T12:13:07Z</dc:date>
    </item>
    <item>
      <title>Re: enhanced boot mcuexpresso</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790451#M31834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I resolved my issue.&lt;/P&gt;&lt;P&gt;I had section variables that were overwriting first 7 words starting at FLASH address 0x0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Used Vector table in .C to enable single enhanced image:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__attribute__ ((used, section(".isr_vector")))&lt;BR /&gt;void (* const g_pfnVectors_Boot[])(void) = {&lt;BR /&gt; // Core Level - CM4&lt;BR /&gt; &amp;amp;_vStackTop, // The initial stack pointer&lt;BR /&gt; ResetISR, // The reset handler&lt;BR /&gt; NMI_Handler, // The NMI handler&lt;BR /&gt; HardFault_Handler, // The hard fault handler&lt;BR /&gt; MemManage_Handler, // The MPU fault handler&lt;BR /&gt; BusFault_Handler, // The bus fault handler&lt;BR /&gt; UsageFault_Handler, // The usage fault handler&lt;BR /&gt; __valid_user_code_checksum, // LPC MCU checksum&lt;BR /&gt; 0, // ECRP&lt;BR /&gt; SINGLE_ENHANCED_IMAGE_SIGNATURE, // Reserved&lt;BR /&gt; (void *) &amp;amp;image_header, // Reserved&lt;BR /&gt; SVC_Handler, // SVCall handler&lt;BR /&gt; DebugMon_Handler, // Debug monitor handler&lt;BR /&gt; 0, // Reserved&lt;BR /&gt; PendSV_Handler, // The PendSV handler&lt;BR /&gt; SysTick_Handler, // The SysTick handler&lt;/P&gt;&lt;P&gt;// Chip Level - LPC54608&lt;BR /&gt; WDT_BOD_IRQHandler, // 16: Windowed watchdog timer, Brownout detect&lt;BR /&gt; DMA0_IRQHandler, // 17: DMA controller&lt;BR /&gt; GINT0_IRQHandler, // 18: GPIO group 0&lt;BR /&gt; GINT1_IRQHandler, // 19: GPIO group 1&lt;BR /&gt; PIN_INT0_IRQHandler, // 20: Pin interrupt 0 or pattern match engine slice 0&lt;BR /&gt; PIN_INT1_IRQHandler, // 21: Pin interrupt 1or pattern match engine slice 1&lt;BR /&gt; PIN_INT2_IRQHandler, // 22: Pin interrupt 2 or pattern match engine slice 2&lt;BR /&gt; PIN_INT3_IRQHandler, // 23: Pin interrupt 3 or pattern match engine slice 3&lt;BR /&gt; UTICK0_IRQHandler, // 24: Micro-tick Timer&lt;BR /&gt; MRT0_IRQHandler, // 25: Multi-rate timer&lt;BR /&gt; CTIMER0_IRQHandler, // 26: Standard counter/timer CTIMER0&lt;BR /&gt; CTIMER1_IRQHandler, // 27: Standard counter/timer CTIMER1&lt;BR /&gt; SCT0_IRQHandler, // 28: SCTimer/PWM&lt;BR /&gt; CTIMER3_IRQHandler, // 29: Standard counter/timer CTIMER3&lt;BR /&gt; FLEXCOMM0_IRQHandler, // 30: Flexcomm Interface 0 (USART, SPI, I2C, FLEXCOMM)&lt;BR /&gt; FLEXCOMM1_IRQHandler, // 31: Flexcomm Interface 1 (USART, SPI, I2C, FLEXCOMM)&lt;BR /&gt; FLEXCOMM2_IRQHandler, // 32: Flexcomm Interface 2 (USART, SPI, I2C, FLEXCOMM)&lt;BR /&gt; FLEXCOMM3_IRQHandler, // 33: Flexcomm Interface 3 (USART, SPI, I2C, FLEXCOMM)&lt;BR /&gt; FLEXCOMM4_IRQHandler, // 34: Flexcomm Interface 4 (USART, SPI, I2C, FLEXCOMM)&lt;BR /&gt; FLEXCOMM5_IRQHandler, // 35: Flexcomm Interface 5 (USART, SPI, I2C,, FLEXCOMM)&lt;BR /&gt; FLEXCOMM6_IRQHandler, // 36: Flexcomm Interface 6 (USART, SPI, I2C, I2S,, FLEXCOMM)&lt;BR /&gt; FLEXCOMM7_IRQHandler, // 37: Flexcomm Interface 7 (USART, SPI, I2C, I2S,, FLEXCOMM)&lt;BR /&gt; ADC0_SEQA_IRQHandler, // 38: ADC0 sequence A completion.&lt;BR /&gt; ADC0_SEQB_IRQHandler, // 39: ADC0 sequence B completion.&lt;BR /&gt; ADC0_THCMP_IRQHandler, // 40: ADC0 threshold compare and error.&lt;BR /&gt; DMIC0_IRQHandler, // 41: Digital microphone and DMIC subsystem&lt;BR /&gt; HWVAD0_IRQHandler, // 42: Hardware Voice Activity Detector&lt;BR /&gt; USB0_NEEDCLK_IRQHandler, // 43: USB Activity Wake-up Interrupt&lt;BR /&gt; USB0_IRQHandler, // 44: USB device&lt;BR /&gt; RTC_IRQHandler, // 45: RTC alarm and wake-up interrupts&lt;BR /&gt; Reserved46_IRQHandler, // 46: Reserved interrupt&lt;BR /&gt; Reserved47_IRQHandler, // 47: Reserved interrupt&lt;BR /&gt; PIN_INT4_IRQHandler, // 48: Pin interrupt 4 or pattern match engine slice 4 int&lt;BR /&gt; PIN_INT5_IRQHandler, // 49: Pin interrupt 5 or pattern match engine slice 5 int&lt;BR /&gt; PIN_INT6_IRQHandler, // 50: Pin interrupt 6 or pattern match engine slice 6 int&lt;BR /&gt; PIN_INT7_IRQHandler, // 51: Pin interrupt 7 or pattern match engine slice 7 int&lt;BR /&gt; CTIMER2_IRQHandler, // 52: Standard counter/timer CTIMER2&lt;BR /&gt; CTIMER4_IRQHandler, // 53: Standard counter/timer CTIMER4&lt;BR /&gt; RIT_IRQHandler, // 54: Repetitive Interrupt Timer&lt;BR /&gt; SPIFI0_IRQHandler, // 55: SPI flash interface&lt;BR /&gt; FLEXCOMM8_IRQHandler, // 56: Flexcomm Interface 8 (USART, SPI, I2C, FLEXCOMM)&lt;BR /&gt; FLEXCOMM9_IRQHandler, // 57: Flexcomm Interface 9 (USART, SPI, I2C, FLEXCOMM)&lt;BR /&gt; SDIO_IRQHandler, // 58: SD/MMC&lt;BR /&gt; CAN0_IRQ0_IRQHandler, // 59: CAN0 interrupt0&lt;BR /&gt; CAN0_IRQ1_IRQHandler, // 60: CAN0 interrupt1&lt;BR /&gt; CAN1_IRQ0_IRQHandler, // 61: CAN1 interrupt0&lt;BR /&gt; CAN1_IRQ1_IRQHandler, // 62: CAN1 interrupt1&lt;BR /&gt; USB1_IRQHandler, // 63: USB1 interrupt&lt;BR /&gt; USB1_NEEDCLK_IRQHandler, // 64: USB1 activity&lt;BR /&gt; ETHERNET_IRQHandler, // 65: Ethernet&lt;BR /&gt; ETHERNET_PMT_IRQHandler, // 66: Ethernet power management interrupt&lt;BR /&gt; ETHERNET_MACLP_IRQHandler, // 67: Ethernet MAC interrupt&lt;BR /&gt; EEPROM_IRQHandler, // 68: EEPROM interrupt&lt;BR /&gt; LCD_IRQHandler, // 69: LCD interrupt&lt;BR /&gt; SHA_IRQHandler, // 70: SHA interrupt&lt;BR /&gt; SMARTCARD0_IRQHandler, // 71: Smart card 0 interrupt&lt;BR /&gt; SMARTCARD1_IRQHandler, // 72: Smart card 1 interrupt&lt;BR /&gt;}; /* End of g_pfnVectors */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&amp;nbsp; Poor understanding on my part.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2018 12:57:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/enhanced-boot-mcuexpresso/m-p/790451#M31834</guid>
      <dc:creator>benmalchow</dc:creator>
      <dc:date>2018-10-02T12:57:46Z</dc:date>
    </item>
  </channel>
</rss>

