<?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のトピックRe: Entering ISP mode from application code in LPC55</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1619274#M51985</link>
    <description>&lt;P&gt;Best Way to do it is as below:&lt;/P&gt;&lt;P&gt;LPC55S16 ROM bootloader provides an API for the user application to enter the ISP mode based on the designated ISP interface mode.&lt;BR /&gt;Prototype&lt;BR /&gt;void (*runBootloader)(void *arg);&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VChaudhary_0-1679407225571.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/215653i9F6C5F93EC304452/image-size/medium?v=v2&amp;amp;px=400" role="button" title="VChaudhary_0-1679407225571.png" alt="VChaudhary_0-1679407225571.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;add the below code in&amp;nbsp;fsl_iap.c：&lt;BR /&gt;&lt;STRONG&gt;&lt;EM&gt;#define&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM&gt;&amp;nbsp;BOOTLOADER_TREE_LOCATION(0x1301fe00)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;bootloader_tree_t&amp;nbsp;*romApiTree = (bootloader_tree_t&amp;nbsp;*)BOOTLOADER_TREE_LOCATION;&lt;/EM&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;EM&gt;void&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;STRONG&gt;runBootloader&lt;/STRONG&gt;(&lt;STRONG&gt;void&lt;/STRONG&gt;&amp;nbsp;*arg)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; romApiTree-&amp;gt;&amp;nbsp;runBootloader(&amp;amp;arg);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;then in the main, add:&lt;BR /&gt;&lt;EM&gt;uint32_t&amp;nbsp;arg = 0xEB110000; // Boot in ISP and ISP interface will be USB-HID&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;runBootloader(arg);&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;After that ROM Bootloader will boot in ISP Mode, and you can flash through USB-HID.&lt;BR /&gt;&lt;BR /&gt;Note: The above approach is tested and verified on LCD55S16.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 21 Mar 2023 15:37:28 GMT</pubDate>
    <dc:creator>VChaudhary</dc:creator>
    <dc:date>2023-03-21T15:37:28Z</dc:date>
    <item>
      <title>Entering ISP mode from application code in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1012408#M39656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;MCU: LPC55S28&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;Board:&amp;nbsp;LPC55S28-EVK&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;Following the user manual, I have the following code in my application to enter ISP mode but all it's doing is reset the system and start from the beginning of my application. Do any of the configurations inside CMPA/CFPA affect the ability to enter ISP mode. CMPA/CFPA are not currently configured (all zeros). Is there anything that needs to be set within my application before jumping to bootloader (runBootloader).&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;#include "fsl_iap.h"&lt;BR /&gt;...&lt;BR /&gt;int main()&lt;BR /&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt; &amp;nbsp; &amp;nbsp; ...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// ISP mode and USB only (LPC55 User Manual section 9.3.4: runBootloader API)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; uint32_t arg = 0xEB110000;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; RunBootloader(&amp;amp;arg);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; while (1) {}&lt;BR /&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;//////////////////////////////////////////////////////////////&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;I added RunBootloader declaration/definition in&amp;nbsp; fsl_iap.h/c:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;void RunBootloader(void *arg)&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp; &amp;nbsp; BOOTLOADER_API_TREE_POINTER-&amp;gt;runBootloader(arg);&lt;BR /&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;/////////////////////////////////////////////////////////////&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt; fsl_iap already has the following&amp;nbsp;definitions:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;#define BOOTLOADER_API_TREE_POINTER ((bootloader_tree_t *)0x130010f0U)&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&lt;SPAN style="font-family: monospace;"&gt;typedef struct BootloaderTree&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; void (*runBootloader)(void *arg); &amp;nbsp; &amp;nbsp; &amp;nbsp;/*!&amp;lt; Function to start the bootloader executing. */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; standard_version_t bootloader_version; /*!&amp;lt; Bootloader version number. */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; const char *copyright; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /*!&amp;lt; Copyright string. */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; const uint32_t *reserved; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*!&amp;lt; Do NOT use. */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; flash_driver_interface_t flashDriver;&lt;BR /&gt;} bootloader_tree_t;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Mar 2020 00:41:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1012408#M39656</guid>
      <dc:creator>yohannes_araya</dc:creator>
      <dc:date>2020-03-25T00:41:47Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from application code in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1012409#M39657</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Yohannes,&lt;/P&gt;&lt;P&gt;Hope you are doing well.&lt;/P&gt;&lt;P&gt;I believe this post will help you. Could you please try this solution and let me know if it works for you?&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/508697"&gt;https://community.nxp.com/thread/508697&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Sabina&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 29 Mar 2020 16:41:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1012409#M39657</guid>
      <dc:creator>Sabina_Bruce</dc:creator>
      <dc:date>2020-03-29T16:41:43Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from application code in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1012410#M39658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply. I actually saw that specific post, and tried it before I submitted my question. Ultimately, I decided to implement a second-stage bootloader that mimics ISP mode and other functionalities that I need.&amp;nbsp;The effort&amp;nbsp;is worth it as it&amp;nbsp;gave me full control over its features. It would still be interesting to know what it takes to enter ISP mode from application.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Mar 2020 01:28:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1012410#M39658</guid>
      <dc:creator>yohannes_araya</dc:creator>
      <dc:date>2020-03-31T01:28:29Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from application code in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1619274#M51985</link>
      <description>&lt;P&gt;Best Way to do it is as below:&lt;/P&gt;&lt;P&gt;LPC55S16 ROM bootloader provides an API for the user application to enter the ISP mode based on the designated ISP interface mode.&lt;BR /&gt;Prototype&lt;BR /&gt;void (*runBootloader)(void *arg);&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VChaudhary_0-1679407225571.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/215653i9F6C5F93EC304452/image-size/medium?v=v2&amp;amp;px=400" role="button" title="VChaudhary_0-1679407225571.png" alt="VChaudhary_0-1679407225571.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;add the below code in&amp;nbsp;fsl_iap.c：&lt;BR /&gt;&lt;STRONG&gt;&lt;EM&gt;#define&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM&gt;&amp;nbsp;BOOTLOADER_TREE_LOCATION(0x1301fe00)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;bootloader_tree_t&amp;nbsp;*romApiTree = (bootloader_tree_t&amp;nbsp;*)BOOTLOADER_TREE_LOCATION;&lt;/EM&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;EM&gt;void&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;STRONG&gt;runBootloader&lt;/STRONG&gt;(&lt;STRONG&gt;void&lt;/STRONG&gt;&amp;nbsp;*arg)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; romApiTree-&amp;gt;&amp;nbsp;runBootloader(&amp;amp;arg);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;then in the main, add:&lt;BR /&gt;&lt;EM&gt;uint32_t&amp;nbsp;arg = 0xEB110000; // Boot in ISP and ISP interface will be USB-HID&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;runBootloader(arg);&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;After that ROM Bootloader will boot in ISP Mode, and you can flash through USB-HID.&lt;BR /&gt;&lt;BR /&gt;Note: The above approach is tested and verified on LCD55S16.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Mar 2023 15:37:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-application-code-in-LPC55/m-p/1619274#M51985</guid>
      <dc:creator>VChaudhary</dc:creator>
      <dc:date>2023-03-21T15:37:28Z</dc:date>
    </item>
  </channel>
</rss>

