<?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 Re: IAP Command in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596653#M23083</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by mysepp on Tue Jan 05 10:51:14 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you checked if the used sector is really empty, because you don't erase it before?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you checked if one of the return values returns an useful error information?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Check user manual/data sheet. IAP usually needs some amount of RAM,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;which must be held free for internal use (e.g. upper x bytes of a certain memory area).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BTW: You can do something like&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iap_status = ...;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} while(iap_status != CMD_SUCCESS);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But I am not sure if it helps to try the command again and again, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;especially if you don't know (or take into account), what error happened.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You try to do it during power fail? Have you checked (and are you sure)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;that you have enough power and time to do the flash action?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It will take some time...&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:25:32 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:25:32Z</dc:date>
    <item>
      <title>IAP Command</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596652#M23082</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by brattchess on Tue Jan 05 09:19:07 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am testing the IAP Commands en la lpcxpresso without problems, all is working right.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;when I pass the code to my board, the code is not working, it is like the code stops because the watchdog restarts the program.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;RAM RamLoc8 0x100000C0 0x1F20&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * The IAP funtion address in LPC11xx ROM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define IAP_ADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1FFF1FF1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Command codes for IAP&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define PREPARE_SECTOR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define COPY_RAM_TO_FLASH&amp;nbsp;&amp;nbsp;&amp;nbsp; 51&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define ERASE_SECTOR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 52&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define BLANK_CHECK_SECTOR&amp;nbsp;&amp;nbsp;&amp;nbsp; 53&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define READ_PART_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define READ_BOOT_CODE_REV&amp;nbsp;&amp;nbsp;&amp;nbsp; 55&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define COMPARE&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; 56&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define REINVOKE_ISP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 57&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define READ_UID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 58&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;typedef unsigned int (*IAP)(unsigned int[], unsigned int[]);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static const IAP iap_entry = (IAP) IAP_ADDRESS;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;***&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__disable_irq();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;_iap_powerfail(dataTosave,iniFlash);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__enable_irq();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;***&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void _iap_powerfail(uint8_t* vBuf, uint32_t vIniPos){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// TODO: insert code here&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__e_iap_status iap_status;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Init the IAP driver&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;iap_init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Prepare the sector for writing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;iap_status = (__e_iap_status) iap_prepare_sector(CONFIG_FLASH_SECTOR,(CONFIG_FLASH_SECTOR + CONFIG_FLASH_SECTOR_SIZE));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while( iap_status != CMD_SUCCESS ){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;iap_status = (__e_iap_status) iap_prepare_sector(CONFIG_FLASH_SECTOR,(CONFIG_FLASH_SECTOR + CONFIG_FLASH_SECTOR_SIZE));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// write data to flash&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;iap_status = (__e_iap_status) iap_copy_ram_to_flash((void *)vBuf,(void *)vIniPos, 256);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while( iap_status != CMD_SUCCESS ){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;iap_status = (__e_iap_status) iap_copy_ram_to_flash((void *)vBuf,(void *)vIniPos, 256);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any idea?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it possible that SYSAHBCLKCTRL.Flasharray will be necessary ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:25:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596652#M23082</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:25:31Z</dc:date>
    </item>
    <item>
      <title>Re: IAP Command</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596653#M23083</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by mysepp on Tue Jan 05 10:51:14 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you checked if the used sector is really empty, because you don't erase it before?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you checked if one of the return values returns an useful error information?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Check user manual/data sheet. IAP usually needs some amount of RAM,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;which must be held free for internal use (e.g. upper x bytes of a certain memory area).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BTW: You can do something like&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iap_status = ...;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} while(iap_status != CMD_SUCCESS);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But I am not sure if it helps to try the command again and again, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;especially if you don't know (or take into account), what error happened.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You try to do it during power fail? Have you checked (and are you sure)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;that you have enough power and time to do the flash action?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It will take some time...&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:25:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596653#M23083</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:25:32Z</dc:date>
    </item>
    <item>
      <title>Re: IAP Command</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596654#M23084</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by brattchess on Tue Jan 05 11:53:01 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am testing it with power supply.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;I am to say that this code is working with the &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.embeddedartists.com%2Fproducts%2Flpcxpresso%2Flpc1115_xpr.php" rel="nofollow" target="_blank"&gt;https://www.embeddedartists.com/products/lpcxpresso/lpc1115_xpr.php&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using the uart to show data in pc, and when the iap command is executed, the flow is stopped. But the lpcxpresso is working right.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem is when I pass this code to me pcb. My pcb is working well with all the program but it is not working when I add this IAP commands.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:25:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596654#M23084</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:25:32Z</dc:date>
    </item>
    <item>
      <title>Re: IAP Command</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596655#M23085</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by mysepp on Tue Jan 05 12:34:27 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;You are using exactly the same chip as on EA board?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you checked revision? Perhaps errata sheet?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Same crystal speed?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you compared if the data, you wrote to flash, is equal to the data you want to write (perhaps still in SRAM)?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:25:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596655#M23085</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:25:33Z</dc:date>
    </item>
    <item>
      <title>Re: IAP Command</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596656#M23086</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by brattchess on Thu Jan 07 01:15:49 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am checking all these points.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you confirm to me which value have the memory when we clear a sector?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:25:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596656#M23086</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:25:33Z</dc:date>
    </item>
    <item>
      <title>Re: IAP Command</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596657#M23087</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by R2D2 on Thu Jan 07 03:39:17 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: brattchess&lt;/STRONG&gt;&lt;BR /&gt;...which value have the memory when we clear a sector?&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;0xFF &lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:25:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-Command/m-p/596657#M23087</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:25:34Z</dc:date>
    </item>
  </channel>
</rss>

