<?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>LPCXpresso IDEのトピックEntering LPC1343 ISP Mode (UART) from user code</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576901#M22952</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Terje on Wed Apr 25 05:08:26 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Arial][SIZE=5][FONT=&amp;amp;quot][SIZE=4]Do anyone know of an example of how to do this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I found this example :&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://www.lpcware.com/content/blog/calling-lpc11xx-isp-user-code&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My unit might enter ISP mode after using this routine (I loose contact with it in LPCXpresso), but I am not able to connect to it using Flash Magic. I have no problems if I start up in ISP mode pulling P0.1 low (P0.3 is permanently connected to GND) so the connection and settings in Flash Magic should be okay[/SIZE][/FONT][/SIZE][/FONT][FONT=Arial][SIZE=5][FONT=&amp;amp;quot][SIZE=4] &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][/SIZE][/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 01:10:00 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T01:10:00Z</dc:date>
    <item>
      <title>Entering LPC1343 ISP Mode (UART) from user code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576901#M22952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Terje on Wed Apr 25 05:08:26 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Arial][SIZE=5][FONT=&amp;amp;quot][SIZE=4]Do anyone know of an example of how to do this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I found this example :&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://www.lpcware.com/content/blog/calling-lpc11xx-isp-user-code&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My unit might enter ISP mode after using this routine (I loose contact with it in LPCXpresso), but I am not able to connect to it using Flash Magic. I have no problems if I start up in ISP mode pulling P0.1 low (P0.3 is permanently connected to GND) so the connection and settings in Flash Magic should be okay[/SIZE][/FONT][/SIZE][/FONT][FONT=Arial][SIZE=5][FONT=&amp;amp;quot][SIZE=4] &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][/SIZE][/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:10:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576901#M22952</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:10:00Z</dc:date>
    </item>
    <item>
      <title>Re: Entering LPC1343 ISP Mode (UART) from user code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576902#M22953</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Wed Apr 25 05:34:36 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;That's explained in UM :rolleyes:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;21.14.8 Reinvoke ISP Table 342. Reinvoke ISP&lt;BR /&gt;Command Input None Result None.&lt;BR /&gt;Command code: 57 (decimal)&lt;BR /&gt;&lt;BR /&gt;This command is used to invoke the bootloader in ISP mode. It maps boot vectors, sets PCLK = CCLK, configures UART pins RXD and TXD, resets counter/timer CT32B1 and resets the U0FDR (see Table 209). This command may be used when a valid user program is present in the internal flash memory and the PIO0_1 pin is not accessible to force the ISP mode.&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;So this command is working like Reset &amp;amp; ISP pin low and starting your ISP bootloader. If your chip has 2 of them, PIO0_3 is deciding which one will be started.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But don't forget to change your stack: &lt;/SPAN&gt;&lt;A href="http://"&gt;http://support.code-red-tech.com/CodeRedWiki/ReserveIAPRam&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:10:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576902#M22953</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:10:00Z</dc:date>
    </item>
    <item>
      <title>Re: Entering LPC1343 ISP Mode (UART) from user code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576903#M22954</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Terje on Wed Apr 25 06:02:01 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the reply Zero.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using "Reinvoke ISP" and PIO0_3 is permanently connected to ground which should select UART&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I had not changed the stack, thanks for reminding me. However I am still not able to connect with Flash Magic. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The code I use is similar to the one I linked in my first post. The only change I have made was to declare all IAP data as global, as described in the example for ISP-USB.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Any ide of what it can be?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:10:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576903#M22954</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:10:01Z</dc:date>
    </item>
    <item>
      <title>Re: Entering LPC1343 ISP Mode (UART) from user code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576904#M22955</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Wed Apr 25 07:29:57 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Terje&lt;/STRONG&gt;&lt;BR /&gt;Any ide of what it can be?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;No, resetting UART and IAP57 is working fine here :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Switching from FlashMagic-Terminal to FlashMagic-ISP via '[B][COLOR=Magenta]i[/COLOR][/B]' key (PIO0_3 low) is no problem &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
//IAP
#define IAP_ADDRESS 0x1FFF1FF1
unsigned param_table[5]; unsigned result_table[5];
void iap_entry(unsigned param_tab[],unsigned result_tab[])
{
 void (*iap)(unsigned [],unsigned []);
 iap = (void (*)(unsigned [],unsigned []))IAP_ADDRESS;
 iap(param_tab,result_tab);
}

//call ISP
void call_ISP(void)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //call ISP via IAP
{
 NVIC-&amp;gt;ICER[0] = 0xFFFFFFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp; //disable all interrupts
 param_table[0] = 57;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //IAP command
 iap_entry(param_table,result_table);
}

static void StopUART(void)
{
&amp;nbsp; uint32_t temp;

&amp;nbsp; /* Disable UART interrupts */
&amp;nbsp; LPC_UART-&amp;gt;IER = 0;
&amp;nbsp; /* Disable UART interrupts in NVIC */
&amp;nbsp; NVIC_DisableIRQ(UART_IRQn);

&amp;nbsp; /* Ensure a clean start, no data in either TX or RX FIFO. */
&amp;nbsp; while (( LPC_UART-&amp;gt;LSR &amp;amp; (LSR_THRE|LSR_TEMT)) != (LSR_THRE|LSR_TEMT) );
&amp;nbsp; while ( LPC_UART-&amp;gt;LSR &amp;amp; LSR_RDR )
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; temp = LPC_UART-&amp;gt;RBR; /* Dump data from RX FIFO */
&amp;nbsp; }
&amp;nbsp; /* Read to clear the line status. */
&amp;nbsp; temp = LPC_UART-&amp;gt;LSR;
}

void read_input(char in_data)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //read input from UART/USB
{
 switch(in_data)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //switch char
 {
&amp;nbsp; case('a'):printf("Alive \n\r");
&amp;nbsp; case('b'):printf("Still Alive\n\r");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
 [COLOR=Magenta] case('i')[/COLOR]:printf("Call ISP\n\r");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(timer&amp;lt;1000){;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //wait 1 second to get previous message transmitted
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [COLOR=Red]&amp;nbsp;&amp;nbsp;&amp;nbsp; StopUART(); [/COLOR]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset UART
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [COLOR=Red]&amp;nbsp; call_ISP();&amp;nbsp; [/COLOR]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //run ISP
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp; default:&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
 }
}

&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:10:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576904#M22955</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:10:02Z</dc:date>
    </item>
    <item>
      <title>Re: Entering LPC1343 ISP Mode (UART) from user code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576905#M22956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Terje on Mon May 21 14:38:52 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Calibri]Thanks for your help Zero.[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Calibri]Your application worked fine as stand alone, but it was not working in my application. It turned out to be because I use GPIO interrupt which is not getting disabled. When including "NVIC-&amp;gt;ICER[1] = 0xFFFFFFFF;" it works.[/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:10:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576905#M22956</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:10:02Z</dc:date>
    </item>
    <item>
      <title>Re: Entering LPC1343 ISP Mode (UART) from user code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576906#M22957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Mon May 21 15:15:02 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Of course (as mentioned in user manual), all interrupts has to be disabled before IAP is used :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since this code is original LPC11xx code, it's disabling all 32 LPC11xx interrupts :rolleyes:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:10:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Entering-LPC1343-ISP-Mode-UART-from-user-code/m-p/576906#M22957</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:10:03Z</dc:date>
    </item>
  </channel>
</rss>

