<?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>topic Update FW in QSPI flash from secondary bootloader in internal flash in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Update-FW-in-QSPI-flash-from-secondary-bootloader-in-internal/m-p/911999#M36480</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For a project I am writing a bootloader on an EA LPC4088 Display Module.&lt;BR /&gt;The firmware is running from QSPI flash and uses the external SDRAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've written a bootloader in internal flash that uses the spifi rom api to update the firmware on the QSPI flash.&lt;/P&gt;&lt;P&gt;I first read the binary file of my firmware and then program it to QSPI flash per 4096 bytes.&lt;/P&gt;&lt;P&gt;Here is the code&amp;nbsp;I use&amp;nbsp;to&amp;nbsp;program the QSPI flash:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SpifiError_t spifi_program(uint32_t address, uint8_t *data, uint16_t lenght)&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if (!_initialized) {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return SpifiError_Uninitialized;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int rc;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SPIFIopers opers;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;opers.dest = (char *) address;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;opers.length = lenght;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;opers.scratch = NULL; // unprogrammed data is not saved/restored&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;opers.protect = -1; // save &amp;amp; restore protection&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;opers.options = S_VERIFY_PROG;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;rc = _spifi-&amp;gt;spifi_program (&amp;amp;_romData, (char *)data, &amp;amp;opers);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if (rc) {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return spifi_translateError(rc);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;return SpifiError_Ok;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This all works as expected, and the binary file is copied to the QSPI flash.&lt;BR /&gt;However, when I try to jump to the QSPI flash, a hard fault is detected.&lt;BR /&gt;When I program the firmware to QSPI with the GUI flash tool in MCUXpresso and then start my bootloader, the jump to the QSPI works as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code to jump to the QSPI flash:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Execute_Application(unsigned address)&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pFunction appEntry;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t appStack;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;appStack = (uint32_t) *((__IO uint32_t*) address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;appEntry = (pFunction) *(__IO uint32_t*) (address + 4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;__disable_irq(); // Disable interrupts before changing interrupt vectors&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCB-&amp;gt;VTOR = address;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;__set_MSP(appStack);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;__enable_irq();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;appEntry();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can somebody tell me what I am missing and why the firmware will not execute when I program the QSPI flash though the bootloader?&lt;BR /&gt;Thank you in advance!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 12 Jul 2019 14:29:32 GMT</pubDate>
    <dc:creator>klaas_hoekstra</dc:creator>
    <dc:date>2019-07-12T14:29:32Z</dc:date>
    <item>
      <title>Update FW in QSPI flash from secondary bootloader in internal flash</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Update-FW-in-QSPI-flash-from-secondary-bootloader-in-internal/m-p/911999#M36480</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For a project I am writing a bootloader on an EA LPC4088 Display Module.&lt;BR /&gt;The firmware is running from QSPI flash and uses the external SDRAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've written a bootloader in internal flash that uses the spifi rom api to update the firmware on the QSPI flash.&lt;/P&gt;&lt;P&gt;I first read the binary file of my firmware and then program it to QSPI flash per 4096 bytes.&lt;/P&gt;&lt;P&gt;Here is the code&amp;nbsp;I use&amp;nbsp;to&amp;nbsp;program the QSPI flash:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SpifiError_t spifi_program(uint32_t address, uint8_t *data, uint16_t lenght)&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if (!_initialized) {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return SpifiError_Uninitialized;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int rc;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SPIFIopers opers;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;opers.dest = (char *) address;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;opers.length = lenght;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;opers.scratch = NULL; // unprogrammed data is not saved/restored&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;opers.protect = -1; // save &amp;amp; restore protection&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;opers.options = S_VERIFY_PROG;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;rc = _spifi-&amp;gt;spifi_program (&amp;amp;_romData, (char *)data, &amp;amp;opers);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if (rc) {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return spifi_translateError(rc);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;return SpifiError_Ok;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This all works as expected, and the binary file is copied to the QSPI flash.&lt;BR /&gt;However, when I try to jump to the QSPI flash, a hard fault is detected.&lt;BR /&gt;When I program the firmware to QSPI with the GUI flash tool in MCUXpresso and then start my bootloader, the jump to the QSPI works as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code to jump to the QSPI flash:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Execute_Application(unsigned address)&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pFunction appEntry;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t appStack;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;appStack = (uint32_t) *((__IO uint32_t*) address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;appEntry = (pFunction) *(__IO uint32_t*) (address + 4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;__disable_irq(); // Disable interrupts before changing interrupt vectors&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCB-&amp;gt;VTOR = address;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;__set_MSP(appStack);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;__enable_irq();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;appEntry();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can somebody tell me what I am missing and why the firmware will not execute when I program the QSPI flash though the bootloader?&lt;BR /&gt;Thank you in advance!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Jul 2019 14:29:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Update-FW-in-QSPI-flash-from-secondary-bootloader-in-internal/m-p/911999#M36480</guid>
      <dc:creator>klaas_hoekstra</dc:creator>
      <dc:date>2019-07-12T14:29:32Z</dc:date>
    </item>
    <item>
      <title>Re: Update FW in QSPI flash from secondary bootloader in internal flash</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Update-FW-in-QSPI-flash-from-secondary-bootloader-in-internal/m-p/912000#M36481</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/klaas.hoekstra@sparkholland.com" rel="nofollow noopener noreferrer" target="_blank"&gt;klaas.hoekstra@sparkholland.com&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the function used in the&amp;nbsp;AN12384 - Application note:&amp;nbsp;LPC5460x UART Secondary Bootloader using YModem to jump to the image:&amp;nbsp;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/*
* The vector table is in the front of the image, and the following is for the normal code.
* The new image is just like the normal image file but with a indicated base address offset. 
*/&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;FwBoot_BootToFwImage&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uint32_t fwImageBaseAddr&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    &lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;firmwareFunc&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    uint32_t fwStackVal &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uint32_t &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fwImageBaseAddr&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;     &lt;SPAN class="comment token"&gt;/* the first word is for the stack pointer. */&lt;/SPAN&gt;
    uint32_t fwEntryVal &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uint32_t &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fwImageBaseAddr&lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;4U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;  &lt;SPAN class="comment token"&gt;/* the second works is for the boot function. */&lt;/SPAN&gt;
    firmwareFunc &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;fwEntryVal&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    SCB&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;VTOR &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; fwImageBaseAddr&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* The stack address is also the start address of vector. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;__set_MSP&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fwStackVal&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;__set_PSP&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fwStackVal&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;firmwareFunc&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;So comparing with the function you're using is pretty similar, but I have a doubt about it, how are you debugging your application?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If after the binary update your debugging your application, the IDE will not know where you need to jump in your debug session, that's why when you only flash your MCU and the application without this the program succesfuly starts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Maybe this post can help you to set correctly the debug session:&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/454190" rel="nofollow noopener noreferrer" target="_blank"&gt;https://community.nxp.com/thread/454190&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please let me know if this helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Alexi Andalon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Jul 2019 17:30:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Update-FW-in-QSPI-flash-from-secondary-bootloader-in-internal/m-p/912000#M36481</guid>
      <dc:creator>Alexis_A</dc:creator>
      <dc:date>2019-07-17T17:30:00Z</dc:date>
    </item>
    <item>
      <title>Re: Update FW in QSPI flash from secondary bootloader in internal flash</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Update-FW-in-QSPI-flash-from-secondary-bootloader-in-internal/m-p/912001#M36482</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Alexis,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your reply, and excuse me for the late answer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First of all, I should say I already fixed the issue.&lt;BR /&gt;There was a bug in the reading of the binary file, so wrong data was programmed to the QSPI flash.&lt;/P&gt;&lt;P&gt;With that fixed, my above code works to program the QSPI flash and to jump from the bootloader to the external flash.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Looking to the code from&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;AN12384, the only difference I see is:&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class="" style="color: #000000; background: #f5f2f0; border: 0px; margin: 0.5em 0px; padding: 1em 1em 1em 3.8em;"&gt;&lt;CODE style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN class="" style="color: #d74444; border: 0px; font-weight: inherit;"&gt;__set_PSP&lt;/SPAN&gt;&lt;SPAN class="" style="color: #999999; border: 0px; font-weight: inherit;"&gt;(&lt;/SPAN&gt;fwStackVal&lt;SPAN class="" style="color: #999999; border: 0px; font-weight: inherit;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="color: #999999; border: 0px; font-weight: inherit;"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Could you tell me what this line does?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Debugging is hard for this project, since the code is executed from external QSPI flash (XIP).&lt;BR /&gt;We use the onboard DAP link over USB for debugging, but I have not managed to set breakpoints in QSPI flash.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Sep 2019 12:02:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Update-FW-in-QSPI-flash-from-secondary-bootloader-in-internal/m-p/912001#M36482</guid>
      <dc:creator>klaas_hoekstra</dc:creator>
      <dc:date>2019-09-06T12:02:57Z</dc:date>
    </item>
  </channel>
</rss>

