<?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 via JTAG on LPC1754 #3 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661109#M26311</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;Hi Peter,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;The data at 0x80 is part of the information in vector table. It is better to write 0xFF to the rest of the sector 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you tell me the steps you are following and commands you are using? Are you getting a return code from the "Copy RAM to Flash" command? Are you erasing just the Sector 0? Have you tried erasing all sectors?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance for your response!&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Feb 2017 18:17:44 GMT</pubDate>
    <dc:creator>Carlos_Mendoza</dc:creator>
    <dc:date>2017-02-28T18:17:44Z</dc:date>
    <item>
      <title>IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661102#M26304</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am not able to program the first 512 bytes of memory in sector0 on any of my chips. I can write to all other sectors, and to the top of sector0. Is this first 512 bytes reserved memory? There are two words at the bottom of the memory adress 0x0 and 0x4 that read 0xFC1F0010 and 0x8100FF1F.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Feb 2017 22:16:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661102#M26304</guid>
      <dc:creator>petervanhoomiss</dc:creator>
      <dc:date>2017-02-22T22:16:18Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661103#M26305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So on page 15 of UM10360 it lists 0x0-0x400 as active interrupt vectors. I am still able to write to 0x200-0x400 but not 0x000-0x200. I have tried using different sized writes but nothing seems to work.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Feb 2017 22:28:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661103#M26305</guid>
      <dc:creator>petervanhoomiss</dc:creator>
      <dc:date>2017-02-22T22:28:42Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661104#M26306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Peter,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you mention, the flash space 0f 0x00 and 0x400 contains the vector interrupts, to erase this area, the interrupts should be relocated to another place in flash or RAM.&amp;nbsp; Another thing to be aware of is that the Sector 0 (0x00 - 0xFFF) contains CRP and the valid checksum for booting, if the vector table changes, you need to calculate the checksum of the vectors 0 - 6 and place the 2s compliment at location 0x1C otherwise the software will not run.&amp;nbsp; Because of this we advise caution when erasing sector 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Feb 2017 19:05:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661104#M26306</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2017-02-23T19:05:49Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661105#M26307</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That is super helpful! Thank you. This also explains why I now have a bench of chips&amp;nbsp;who's cores lock up when I write to core registers....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So just to clarify, the steps for erasing and programming sector0 are:&lt;/P&gt;&lt;P&gt;1) Relocate interrupt table to RAM by writing new address to VTOR (0xE000ED04)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;a)Does this also include relocating the checksum with 0x1C offset?&lt;/P&gt;&lt;P&gt;2) Erase sector0 with erase sector IAP command.&lt;/P&gt;&lt;P&gt;3) Program secotr0 with copy ram to flash command&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;a) Check that data includes 2s comp checksum at 0x1C&lt;/P&gt;&lt;P&gt;4) Restore VOTR to 0x0&lt;/P&gt;&lt;P&gt;5) Power cycle&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also for future reference, where could I have found the information about the checksum?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And what algorithm do you use to calculate this checksum? Is it a CRC? What polynomial do you use?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDIT&lt;/P&gt;&lt;P&gt;So I got a couple of fresh chips mounted to my breakout board and read off the flash and I am confused. It reads:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0x0 : 0x10001FFC&lt;/P&gt;&lt;P&gt;0x4 : 0x1FFF0081&lt;/P&gt;&lt;P&gt;0x8 - 0x7C : 0x0&lt;/P&gt;&lt;P&gt;0x80 : 0x4018F8DF&lt;/P&gt;&lt;P&gt;0x84 : 0x5010F8DF&lt;/P&gt;&lt;P&gt;0x88 : 0xEA056826&lt;/P&gt;&lt;P&gt;0x8C : 0x60260606&lt;/P&gt;&lt;P&gt;0x90 : 0xF000F8DF&lt;/P&gt;&lt;P&gt;0x94 : 0x1FFF0201&lt;/P&gt;&lt;P&gt;0x98 : 0xFFFBFFF&lt;/P&gt;&lt;P&gt;0x9C : 0x40F0C3C0&lt;/P&gt;&lt;P&gt;0xA0 - 0x1FC : 0x0&lt;/P&gt;&lt;P&gt;0x200 -&amp;gt; : 0xFFFFFFFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So first I don't see any checksum. And second, what is the data at 0x80-0x9C? Does this data need special handling as well? Also are these addresses in between the blocks supposed to be 0x0? I had been writing in random data to all flash routines which is what i think bricked my chips, so I am trying to be more careful here.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/EDIT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Peter&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Feb 2017 19:51:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661105#M26307</guid>
      <dc:creator>petervanhoomiss</dc:creator>
      <dc:date>2017-02-23T19:51:27Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661106#M26308</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV class=""&gt;&lt;P&gt;Hi Peter,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;Yes, those steps need to be followed. The checksum is part of the vector table so it will also be relocated. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can find more information about the checksum on the following links:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/message/630662"&gt;https://community.nxp.com/message/630662&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/388993"&gt;https://community.nxp.com/thread/388993&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forum.sparkfun.com/viewtopic.php?t=2512"&gt;https://forum.sparkfun.com/viewtopic.php?t=2512&lt;/A&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope it helps!&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Feb 2017 18:24:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661106#M26308</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2017-02-24T18:24:14Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661107#M26309</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So then the checksum is actually just a simple sum, got it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then I only have two questions left:&lt;/P&gt;&lt;P&gt;What is the significance of the data at 0x80?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does all of the data need to be written to 0x0 for the rest of the page? Or is writing unused data to 0xFFFFFFFF acceptable?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Peter&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Feb 2017 18:45:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661107#M26309</guid>
      <dc:creator>petervanhoomiss</dc:creator>
      <dc:date>2017-02-24T18:45:00Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661108#M26310</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Theses steps are not working for me. I am still unable to write to the first 256bytes of sector0. Do you have and suggestions or further information I can read up on?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Peter&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Feb 2017 19:28:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661108#M26310</guid>
      <dc:creator>petervanhoomiss</dc:creator>
      <dc:date>2017-02-27T19:28:38Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661109#M26311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;Hi Peter,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;The data at 0x80 is part of the information in vector table. It is better to write 0xFF to the rest of the sector 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you tell me the steps you are following and commands you are using? Are you getting a return code from the "Copy RAM to Flash" command? Are you erasing just the Sector 0? Have you tried erasing all sectors?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance for your response!&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2017 18:17:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661109#M26311</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2017-02-28T18:17:44Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661110#M26312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried erasing only sector0, and all for flash, as well as portions of flash. I verify the IAP command return after every command to ensure CMD_SUCCESS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a detailed breakdown of my current programming algorithm:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Initialization&lt;/P&gt;&lt;P&gt;Power Chip&lt;/P&gt;&lt;P&gt;Reset Low&lt;/P&gt;&lt;P&gt;Wait 300uS&lt;/P&gt;&lt;P&gt;Reset High&amp;nbsp;&lt;/P&gt;&lt;P&gt;Wait 300uS&lt;/P&gt;&lt;P&gt;Reset TAP&lt;/P&gt;&lt;P&gt;Read IDCODE DP&lt;/P&gt;&lt;P&gt;Request Power CTRLSTAT&lt;/P&gt;&lt;P&gt;Verify Power&amp;nbsp;&lt;SPAN&gt;CTRLSTAT&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Read AP IDR starting with AP 0 untill I find AHB_AP(MEM_AP) (Is normally AP0 and is on LPC1754)&lt;/P&gt;&lt;P&gt;Write CSW&amp;nbsp;0x23000042 (No INC, 32BIT)&lt;/P&gt;&lt;P&gt;Write&amp;nbsp;TAR&amp;nbsp;CCLKCFG_Addr (0x400FC10C)&lt;/P&gt;&lt;P&gt;Write DRW 0x3 (sets clock divider to 3+1 of 4MHz resulting in 1MHz core clock)&lt;/P&gt;&lt;P&gt;Write TAR&amp;nbsp;CCLKCFG_Addr (0x400FC104)&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DRW 0x0 (Just to ensure we are using default (PLL0)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;---From here I will just say write to address, with writes to TAR, DRW, and CSW for auto INC being implied---&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;***Erase Chip&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;*Move Vector Table&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;0xA05F0003 (to stop core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Verify DHCSR (core&amp;nbsp;&lt;/SPAN&gt;stopped)&lt;/P&gt;&lt;P&gt;Copy data from&amp;nbsp;0x0-0x1F to 0x10000200&lt;/P&gt;&lt;P&gt;Write VOTR&amp;nbsp;&lt;SPAN&gt;to 0x10000200&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Prepare Sectors&lt;/P&gt;&lt;P&gt;Write 0xFFFFFFFF to&amp;nbsp;&lt;SPAN&gt;0x100003&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;50 to&amp;nbsp;&lt;SPAN&gt;0x10000300&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(IAP prepare sector)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Write 0x0 to&amp;nbsp;0x10000304&amp;nbsp;&amp;nbsp;&amp;nbsp;(Start Sector Number)&lt;/P&gt;&lt;P&gt;Write 0x11 to&amp;nbsp;&lt;SPAN&gt;0x10000308&amp;nbsp;&amp;nbsp;&amp;nbsp;(End&amp;nbsp;Sector Number)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;0x10000300 to r0 (Done through DCRDR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x10000380 to r1 (Done through DCRDR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 0x1FFF1FF0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;to PC (Done through DCRDR)&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0001 (to start core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Verify 0x0 at&amp;nbsp;0x100003&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0003 (to stop core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Erase Sectors&lt;/P&gt;&lt;P&gt;Write 0xFFFFFFFF to&amp;nbsp;&lt;SPAN&gt;0x100003&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 52&amp;nbsp;to&amp;nbsp;0x10000300&amp;nbsp;&amp;nbsp;&amp;nbsp;(IAP erase sectors)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Write 0x0 to&amp;nbsp;0x10000304 &amp;nbsp; (Start Sector Number)&lt;/P&gt;&lt;P&gt;Write 0x11 to&amp;nbsp;&lt;SPAN&gt;0x10000308 &amp;nbsp; (End&amp;nbsp;Sector Number)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 1000 (0x3EB)&amp;nbsp;to&amp;nbsp;&lt;SPAN&gt;0x1000030C&amp;nbsp; &amp;nbsp;(Core Clock FREQ)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;0x10000300 to r0 (Done through DCRDR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x10000380 to r1 (Done through DCRDR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 0x1FFF1FF0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;to PC (Done through DCRDR)&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0001 (to start core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Verify 0x0 at&amp;nbsp;0x100003&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0003 (to stop core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;--When I read data at this point from 0x0-0x1FF it has not been erased. Data at 0x200-end of flash is erased--&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;*Reset&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;0x05FA0004 to&amp;nbsp;ARICR_Addr (0xE000ED0C) (Request reset)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Wait 1000uS&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;0x05FA0000 to&amp;nbsp;ARICR_Addr (0xE000ED0C) (Unrequest reset)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write VOTR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;to 0x10000200&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;***Write Page (Values used are for sector0 sectors are incremented for sector being written to)&lt;/P&gt;&lt;P&gt;*Write Ram Stack&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0001 (to start core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;data to be programmed into RAM starting at&amp;nbsp;0x10000400&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0003 (to stop core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Prepare Sector&lt;/P&gt;&lt;P&gt;Write 0xFFFFFFFF to&amp;nbsp;&lt;SPAN&gt;0x100003&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;50 to&amp;nbsp;&lt;SPAN&gt;0x10000300&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(IAP prepare sector)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Write 0x0 to&amp;nbsp;0x10000304&amp;nbsp;&amp;nbsp;&amp;nbsp;(Start Sector Number)&lt;/P&gt;&lt;P&gt;Write 0x11 to&amp;nbsp;&lt;SPAN&gt;0x10000308&amp;nbsp;&amp;nbsp;&amp;nbsp;(End&amp;nbsp;Sector Number)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;0x10000300 to r0 (Done through DCRDR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x10000380 to r1 (Done through DCRDR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 0x1FFF1FF0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;to PC (Done through DCRDR)&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0001 (to start core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Verify 0x0 at&amp;nbsp;0x100003&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0003 (to stop core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Copy RAM to Flash&lt;/P&gt;&lt;P&gt;Write 0xFFFFFFFF to&amp;nbsp;&lt;SPAN&gt;0x100003&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 51&amp;nbsp;to&amp;nbsp;0x10000300&amp;nbsp;&amp;nbsp;&amp;nbsp;(IAP copy RAM to Flash)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Write 0x0 to&amp;nbsp;0x10000304 &amp;nbsp; (Addr of Target Location)&lt;/P&gt;&lt;P&gt;Write 0x10000400 to&amp;nbsp;&lt;SPAN&gt;0x10000308 &amp;nbsp; (Addr of&amp;nbsp;RAMStack)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 256 to&amp;nbsp;&lt;SPAN&gt;0x10000308 &amp;nbsp; (Bytes to write)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 1000 (0x3EB)&amp;nbsp;to&amp;nbsp;&lt;SPAN&gt;0x10000310 &amp;nbsp; (Core Clock FREQ)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;0x10000300 to r0 (Done through DCRDR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x10000380 to r1 (Done through DCRDR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write 0x1FFF1FF0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;to PC (Done through DCRDR)&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0001 (to start core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Verify 0x0 at&amp;nbsp;0x100003&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0xA05F0003 (to stop core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;--When I read data at this point from 0x0-0x1FF it has been partially programmed. Some areas have correct data but many do not. Most words have at least one bit error, some have several. Data at 0x200-end of flash is&amp;nbsp;programmed&amp;nbsp;correctly and has no errors--&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for your assistance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Peter&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Mar 2017 19:11:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661110#M26312</guid>
      <dc:creator>petervanhoomiss</dc:creator>
      <dc:date>2017-03-01T19:11:16Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661111#M26313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am also getting the same results when replacing start core command&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;0xA05F0001 (to start core)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;with&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px;"&gt;Write DHCSR&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="border: 0px;"&gt;0xA05F0001 (to start core)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px; background-color: #ffffff; color: #51626f;"&gt;Write DHCSR&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;0xA05F0009 (to disable interrupts)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px; background-color: #ffffff; color: #51626f;"&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px; background-color: #ffffff; color: #51626f;"&gt;Peter&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Mar 2017 19:02:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661111#M26313</guid>
      <dc:creator>petervanhoomiss</dc:creator>
      <dc:date>2017-03-02T19:02:40Z</dc:date>
    </item>
    <item>
      <title>Re: IAP via JTAG on LPC1754 #3</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661112#M26314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I believe&amp;nbsp;the issue is you need to set the Memory Mapping Control register (MEMMAP - 0x400FC040) to 0x1. If it is set to 0x0, the vector table is remapped to the Boot ROM; setting it to 1 configures the device for "User mode", meaning the vector table is mapped to on-chip flash memory at address 0x0.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Mar 2018 21:39:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-via-JTAG-on-LPC1754-3/m-p/661112#M26314</guid>
      <dc:creator>jonathanfeucht</dc:creator>
      <dc:date>2018-03-16T21:39:42Z</dc:date>
    </item>
  </channel>
</rss>

