<?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中的主题 LPC15XX ReInvoke ISP</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC15XX-ReInvoke-ISP/m-p/513156#M46</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by berrymccormick on Fri Jul 18 11:35:47 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm working on an LPC1549 xpresso v2 board, and I'm trying to get the chip to go into ISP mode by using the ReInvoke ISP command.&amp;nbsp; I couldn't find any code for the LPC15XX, but I found some for the LPC11UXX, LPC13XX, etc.&amp;nbsp; I'm using the function below:&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;void ReinvokeISP(void)
{
&amp;nbsp; // make sure USB clock is turned on before calling ISP 
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_USB);
&amp;nbsp; // make sure GPIO clocks are turned on before calling ISP 
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO0);
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO1);
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO2);
&amp;nbsp; // make sure IO configuration clock is turned on before calling ISP 
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_IOCON);

&amp;nbsp; // make sure AHB clock divider is 1:1 
Chip_Clock_SetSysClockDiv(1);

&amp;nbsp; // Send Reinvoke ISP command to ISP entry point
&amp;nbsp; command[0] = 57;

&amp;nbsp; __disable_irq();

&amp;nbsp; // Enter ISP. We call "iap_entry" to enter ISP because the ISP entry is done
&amp;nbsp; // through the same command interface as IAP. 
&amp;nbsp; iap_entry(command, result);

&amp;nbsp; // Not supposed to come back!
&amp;nbsp; while(1);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The documentation for the chip simply says:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This command is used to invoke the boot loader in ISP mode. It maps boot&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;vectors and configures the peripherals for ISP. Which peripheral (UART, C_CAN,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;UART, or USB) is selected for ISP mode depends on the parameter written with&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;this command.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This command may be used when a valid user program is present in the internal&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;flash memory and the ISP entry pins are not accessible to force the ISP mode.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Before calling this command, enable the clocks to the GPIO0/1/2 blocks in the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SYSAHBCLKCTRL0 register.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I know that the IAP portion of the code is working because I can read the part number with the lines below:&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;// Read Part Identification Number
command[0] = 54;// Read ID command code 
iap_entry(command, result);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I don't have any problem getting the chip to go into ISP mode when I use the reset button and the ISP buttons.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What am I missing?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;V/R,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Berry&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:06:27 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:06:27Z</dc:date>
    <item>
      <title>LPC15XX ReInvoke ISP</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC15XX-ReInvoke-ISP/m-p/513156#M46</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by berrymccormick on Fri Jul 18 11:35:47 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm working on an LPC1549 xpresso v2 board, and I'm trying to get the chip to go into ISP mode by using the ReInvoke ISP command.&amp;nbsp; I couldn't find any code for the LPC15XX, but I found some for the LPC11UXX, LPC13XX, etc.&amp;nbsp; I'm using the function below:&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;void ReinvokeISP(void)
{
&amp;nbsp; // make sure USB clock is turned on before calling ISP 
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_USB);
&amp;nbsp; // make sure GPIO clocks are turned on before calling ISP 
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO0);
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO1);
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO2);
&amp;nbsp; // make sure IO configuration clock is turned on before calling ISP 
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_IOCON);

&amp;nbsp; // make sure AHB clock divider is 1:1 
Chip_Clock_SetSysClockDiv(1);

&amp;nbsp; // Send Reinvoke ISP command to ISP entry point
&amp;nbsp; command[0] = 57;

&amp;nbsp; __disable_irq();

&amp;nbsp; // Enter ISP. We call "iap_entry" to enter ISP because the ISP entry is done
&amp;nbsp; // through the same command interface as IAP. 
&amp;nbsp; iap_entry(command, result);

&amp;nbsp; // Not supposed to come back!
&amp;nbsp; while(1);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The documentation for the chip simply says:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This command is used to invoke the boot loader in ISP mode. It maps boot&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;vectors and configures the peripherals for ISP. Which peripheral (UART, C_CAN,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;UART, or USB) is selected for ISP mode depends on the parameter written with&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;this command.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This command may be used when a valid user program is present in the internal&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;flash memory and the ISP entry pins are not accessible to force the ISP mode.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Before calling this command, enable the clocks to the GPIO0/1/2 blocks in the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SYSAHBCLKCTRL0 register.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I know that the IAP portion of the code is working because I can read the part number with the lines below:&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;// Read Part Identification Number
command[0] = 54;// Read ID command code 
iap_entry(command, result);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I don't have any problem getting the chip to go into ISP mode when I use the reset button and the ISP buttons.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What am I missing?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;V/R,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Berry&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:06:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC15XX-ReInvoke-ISP/m-p/513156#M46</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:06:27Z</dc:date>
    </item>
    <item>
      <title>Re: LPC15XX ReInvoke ISP</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC15XX-ReInvoke-ISP/m-p/513157#M47</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by LabRat on Fri Jul 18 13:53:22 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: berrymccormick&lt;/STRONG&gt;&lt;BR /&gt;What am I missing?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;... the sample&amp;nbsp; &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;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Fforum%2Fmissing-chipiapreinvokeisp-bootloader-selection" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.lpcware.com/content/forum/missing-chipiapreinvokeisp-bootloader-selection&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCOpen is including &lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;uint8_t Chip_IAP_ReinvokeISP()
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;in iap.c of lpc_chip_15xx.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Unfortunately this incomplete version wasn't corrected&amp;nbsp; :(( &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:06:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC15XX-ReInvoke-ISP/m-p/513157#M47</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:06:28Z</dc:date>
    </item>
  </channel>
</rss>

