<?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: Second bootloader  in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534855#M10901</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by andy22 on Wed Dec 19 06:30:58 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Daniel Widyanto,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; I have tried what you suggesting,the same result as I jump the pointer to 0x000020c1. When excute the code you provided,the whole system will die.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:35:49 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:35:49Z</dc:date>
    <item>
      <title>Second bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534851#M10897</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by andy22 on Sun Dec 16 19:42:50 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi，&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; My project need a second bootloader to update new firmware code through a SW tool.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; The LPC11U14 chip has 8 sectors and I will use the first and second sectors to store my bootloader,and in bootlader code ,i will download my firmware through the USB interface.My firmware code will store from sector 2 to 5. When reset the MCU, the code will always excute from the bootloader,and then judge if the code jump to firmware or update the firmware.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; I use the function to jump to my firmware:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void nsAPI_Flash_Jump2AppSector(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;typedef void Jump2BootloaderSector(void);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Jump2BootloaderSector *_Jump_ ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;_Jump_ = (Jump2BootloaderSector *)(0x00002000|0xc1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;_Jump_(); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; What the question is i can't jump to it.After i called the function,my system will out of work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Whether the address I jump to is wrong? But when i change it to 0x0 or 0x00002000,it doesn't work as the same,what should i do?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Please give me some advice,I am now very anxious!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:35:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534851#M10897</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:35:46Z</dc:date>
    </item>
    <item>
      <title>Re: Second bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534852#M10898</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by wmues on Mon Dec 17 02:21:07 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Try to replace the 0xc1 with 0xc0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The missing "1" (==thumb code flag) may be added by the compiler.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Why don't you use a debugger to look at your code?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:35:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534852#M10898</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:35:47Z</dc:date>
    </item>
    <item>
      <title>Re: Second bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534853#M10899</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by andy22 on Mon Dec 17 18:15:38 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi wmues,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Thanks for your suggestion. I tried to change it to 0xc0,but it seems doesn't work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; I use the ULINK2 debugger and MDK development ,but the USB enumreration need host,and when i use the ULINK,it would communicate failure.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:35:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534853#M10899</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:35:48Z</dc:date>
    </item>
    <item>
      <title>Re: Second bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534854#M10900</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Daniel Widyanto on Tue Dec 18 23:33:24 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;Refer to AN10995 - LPC1100 secondary bootloader (with software) (&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.nxp.com%2Fdocuments%2Fapplication_note%2FAN10995.zip" rel="nofollow" target="_blank"&gt;http://www.nxp.com/documents/application_note/AN10995.zip&lt;/A&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You need to get the Reset_Handler() address in 0x2004, and set the MSP according to address in 0x2000.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Load main stack pointer with application stack pointer initial value,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; stored at first location of application area */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;asm volatile("ldr r0, =0x2000");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;asm volatile("ldr r0, [r0]");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;asm volatile("mov sp, r0");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Load program counter with application reset vector address, located at&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; second word of application area. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;asm volatile("ldr r0, =0x2004");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;asm volatile("ldr r0, [r0]");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;asm volatile("mov pc, r0");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:35:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534854#M10900</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:35:48Z</dc:date>
    </item>
    <item>
      <title>Re: Second bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534855#M10901</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by andy22 on Wed Dec 19 06:30:58 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Daniel Widyanto,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; I have tried what you suggesting,the same result as I jump the pointer to 0x000020c1. When excute the code you provided,the whole system will die.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:35:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Second-bootloader/m-p/534855#M10901</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:35:49Z</dc:date>
    </item>
  </channel>
</rss>

