<?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: IAP_ReinvokeISP on the LPC804</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806752#M55419</link>
    <description>&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;// set these to reset values per UM11065 4.6.8&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;SYSCON_MAINCLKSEL_SEL(0);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;SYSCON_MAINCLKUEN_ENA(0);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;SYSCON_SYSAHBCLKDIV_DIV(1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I added these lines to match the reset values defined for the clock registers in UM11065 LPC804 User Manual.&lt;BR /&gt;This stopped the DEADBEEE, breakpoint, and breakpoints after the call don't occur (which is correct behavior)&lt;BR /&gt;but we are not able to get an ISP response on the USART0.&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;The UM11065 Table 35 (4.6.8) only mentions USART ISP, but not which USART.&amp;nbsp; we are using USART0.&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 14 Feb 2024 19:16:27 GMT</pubDate>
    <dc:creator>Oxolotol</dc:creator>
    <dc:date>2024-02-14T19:16:27Z</dc:date>
    <item>
      <title>IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806129#M55408</link>
      <description>&lt;P&gt;&lt;BR /&gt;I have the following code so I can restart the ISP and re-write flash after I have loaded valid application.&lt;BR /&gt;&lt;BR /&gt;My code is&amp;nbsp;&lt;BR /&gt;uint32_t res_status; //&lt;BR /&gt;const uint32_t USART_ISP_1 = 1;&lt;BR /&gt;IAP_ReinvokeISP(USART_ISP_1, &amp;amp;res_status);&lt;BR /&gt;&lt;BR /&gt;UM11064&amp;nbsp;&lt;BR /&gt;Command code: 57 (decimal)&lt;BR /&gt;Param0(mode): ISP interface selection&lt;BR /&gt;1 - USART ISP&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;----- apparently this means that the constant 1 is the only valid parameter?&lt;BR /&gt;&lt;BR /&gt;IAP_ReinvokeISP on my MCUXpresso the #define&amp;nbsp;FSL_FEATURE_SYSCON_IAP_REINVOKE_ISP_PARAM_POINTER is not defined so the&amp;nbsp;IAP_ISP_TYPE_XXX ##defines have no effect on the IDE supplied wrapper function (IAP_ReinvokeISP).&lt;BR /&gt;&lt;BR /&gt;When I break point to one past this command I get the following error.&lt;BR /&gt;----&lt;BR /&gt;Break at address "0xdeadbeee" with no debug information available, or outside of program code.&lt;BR /&gt;----&lt;BR /&gt;What else does this command need?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Feb 2024 20:59:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806129#M55408</guid>
      <dc:creator>Oxolotol</dc:creator>
      <dc:date>2024-02-13T20:59:13Z</dc:date>
    </item>
    <item>
      <title>Re: IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806675#M55417</link>
      <description>&lt;P&gt;I noticed that with my LPC804UK the "FSL_FEATURE_SYSCON_IAP_REINVOKE_ISP_PARAM_POINTER" is not enabled, so so all the&amp;nbsp;IAP_ISP_TYPE_I2C style choices are not available for the ispType parameter.&amp;nbsp; Likely because they are not available for this chip.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Feb 2024 16:48:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806675#M55417</guid>
      <dc:creator>Oxolotol</dc:creator>
      <dc:date>2024-02-14T16:48:37Z</dc:date>
    </item>
    <item>
      <title>Re: IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806752#M55419</link>
      <description>&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;// set these to reset values per UM11065 4.6.8&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;SYSCON_MAINCLKSEL_SEL(0);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;SYSCON_MAINCLKUEN_ENA(0);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;SYSCON_SYSAHBCLKDIV_DIV(1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I added these lines to match the reset values defined for the clock registers in UM11065 LPC804 User Manual.&lt;BR /&gt;This stopped the DEADBEEE, breakpoint, and breakpoints after the call don't occur (which is correct behavior)&lt;BR /&gt;but we are not able to get an ISP response on the USART0.&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;The UM11065 Table 35 (4.6.8) only mentions USART ISP, but not which USART.&amp;nbsp; we are using USART0.&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 14 Feb 2024 19:16:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806752#M55419</guid>
      <dc:creator>Oxolotol</dc:creator>
      <dc:date>2024-02-14T19:16:27Z</dc:date>
    </item>
    <item>
      <title>Re: IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806782#M55420</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We can break point before the&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;iap_entry(command, result);&lt;BR /&gt;&lt;BR /&gt;call, but not after it (as expected). but&lt;BR /&gt;-- it does not respond to ISP commands&lt;BR /&gt;-- it does not respond&amp;nbsp; to IDE debugger pause button&lt;BR /&gt;-- it *does* respond to *application* USART0 commands as if it restarted the embedded code and did not stay in the ISP code&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;hhhmmm...&lt;/P&gt;</description>
      <pubDate>Wed, 14 Feb 2024 20:08:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1806782#M55420</guid>
      <dc:creator>Oxolotol</dc:creator>
      <dc:date>2024-02-14T20:08:04Z</dc:date>
    </item>
    <item>
      <title>Re: IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1808187#M55422</link>
      <description>&lt;P&gt;Tried to invalidate the&amp;nbsp; checksum at VTOR[7] based on the following statement from UM11065 with the following code:&lt;BR /&gt;uint32_t shadow_vector[16];&lt;BR /&gt;memcpy (shadow_vector, (uint8_t)0, 64 );&lt;BR /&gt;shadow_vector[7] = 0xffffffff;&lt;BR /&gt;IAP_PrepareSectorForWrite( 0 , 0); // prepare sector 0 for write&lt;BR /&gt;volatile status_t res2 =&lt;BR /&gt;// dst src num clk&lt;BR /&gt;IAP_CopyRamToFlash ( 0, shadow_vector, 64, SystemCoreClock );&lt;BR /&gt;&lt;BR /&gt;but break pointing beyond this (and before the&amp;nbsp;IAP_ReinvokeISP call).&lt;BR /&gt;the reading the memory tab at location 0 shows the values unchanged. (reasonable since they were not erased first.)&lt;BR /&gt;but previous attempts to erase the memory (64 bytes starting at address 0, with prep first) resulted in a FFFFFFF9 error.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Feb 2024 21:51:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/1808187#M55422</guid>
      <dc:creator>Oxolotol</dc:creator>
      <dc:date>2024-02-14T21:51:56Z</dc:date>
    </item>
    <item>
      <title>Re: IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/2051047#M57757</link>
      <description>&lt;P&gt;Hi, &lt;SPAN class=""&gt;&lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/179397" target="_self"&gt;&lt;SPAN class=""&gt;Oxolotol&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;:&lt;/P&gt;&lt;P&gt;After reading your solution, it seems that you, instead of calling IAP command 57 to reinvoke ISP, took a different approach, i.e. to corrupt the interrupt vector table so that the next time cpu is reset, it will get into isp mode. Am I reading it correctly? After that, how do you make cpu reset to happen?&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Feb 2025 18:26:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/2051047#M57757</guid>
      <dc:creator>kangsenlu</dc:creator>
      <dc:date>2025-02-25T18:26:25Z</dc:date>
    </item>
    <item>
      <title>Re: IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/2053870#M57788</link>
      <description>&lt;P&gt;I have played with LPC845 and LPC804 related to the reinvokeISP issue.&lt;/P&gt;&lt;P&gt;With the following code, I can enter ISP mode with LPC845, tested with LPC845-BRK board OK.&lt;/P&gt;&lt;P&gt;-------------------&lt;/P&gt;&lt;P&gt;void start_isp() {&lt;BR /&gt;// IAP iap_entry = (IAP)IAP_ENTRY;&lt;/P&gt;&lt;P&gt;__disable_irq();&lt;/P&gt;&lt;P&gt;// Set clock to internal osc&lt;BR /&gt;LPC_SYSCON-&amp;gt;MAINCLKSEL = MAINCLKSEL_VAL0;&lt;/P&gt;&lt;P&gt;LPC_SYSCON-&amp;gt;MAINCLKUEN = MAINCLKUEN_UPDATE; // Update clock source&lt;BR /&gt;LPC_SYSCON-&amp;gt;MAINCLKUEN = MAINCLKUEN_DISABLE; // Toggle update register once&lt;BR /&gt;LPC_SYSCON-&amp;gt;MAINCLKUEN = MAINCLKUEN_UPDATE;&lt;/P&gt;&lt;P&gt;// Wait until the clock is updated&lt;BR /&gt;while (!(LPC_SYSCON-&amp;gt;MAINCLKUEN &amp;amp; MAINCLKUEN_UPDATE));&lt;/P&gt;&lt;P&gt;// Set system AHB clock&lt;BR /&gt;LPC_SYSCON-&amp;gt;SYSAHBCLKDIV = 1; // Divide by 1 == SYSAHBCLKDIV_DIV1;&lt;/P&gt;&lt;P&gt;// Enabled IOCON clock for I/O related peripherals&lt;BR /&gt;LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL[0] |= IOCON;&lt;/P&gt;&lt;P&gt;cmd[0] = IAP_CMD_REINVOKE_ISP;&lt;BR /&gt;cmd[1] = 1; // select USART_ISP mode&lt;/P&gt;&lt;P&gt;//iap_entry(cmd,stat);&lt;BR /&gt;IAP_Call(cmd,stat);&lt;BR /&gt;// shouldn't return &lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;-----------------&lt;/P&gt;&lt;P&gt;After the above code was executed in the LPC845, I can use FlashMagic to read signature. That proves the chip is in the ISP mode.&lt;/P&gt;&lt;P&gt;However, the above code does not work with LPC804. I tested with OM40001 dev kit.&lt;/P&gt;&lt;P&gt;Can NXP support engineer to confirm that the LPC804 does or does not support reinvoke ISP command?&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 28 Feb 2025 15:44:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/2053870#M57788</guid>
      <dc:creator>kangsenlu</dc:creator>
      <dc:date>2025-02-28T15:44:27Z</dc:date>
    </item>
    <item>
      <title>Re: IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/2053916#M57790</link>
      <description>&lt;P&gt;Hi, Oxolotol:&lt;/P&gt;&lt;P&gt;Since I couldn't use the IAP command Reinvoke_ISP to put LPC804 into ISP mode, I tried your suggestion, and it works properly. Thanks a lot.&lt;/P&gt;&lt;P&gt;Kang-sen&lt;/P&gt;</description>
      <pubDate>Fri, 28 Feb 2025 17:26:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/2053916#M57790</guid>
      <dc:creator>kangsenlu</dc:creator>
      <dc:date>2025-02-28T17:26:25Z</dc:date>
    </item>
    <item>
      <title>Re: IAP_ReinvokeISP on the LPC804</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/2055750#M57819</link>
      <description>We power cycle the chip</description>
      <pubDate>Tue, 04 Mar 2025 20:25:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-ReinvokeISP-on-the-LPC804/m-p/2055750#M57819</guid>
      <dc:creator>Oxolotol</dc:creator>
      <dc:date>2025-03-04T20:25:07Z</dc:date>
    </item>
  </channel>
</rss>

