<?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 Tranferring execution from custom bootloader to system code - LPC1853 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525266#M7902</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sat Mar 21 08:53:19 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have an older project using a LPC2148 that has a custom bootloader and if certain criteria are met, transfers execution to the system code located at a different location.&amp;nbsp; However, the same syntax isn't working for the LPC1853.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The bootloader is placed at 1A000000.&amp;nbsp; The system code is placed at 1A006010.&amp;nbsp; The bootloader code runs fine until the system code transfer call is executed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; In debug (using Keil), I placed a breakpoint on the transfer call.&amp;nbsp; The assembly statement is BLX r4.&amp;nbsp; 'r4' holds 0x1A006010, as I would expect.&amp;nbsp; When the statement is executed, I get a HardFault.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here are the items of interest for the call.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SYSTEMBEGIN&amp;nbsp; (volatile unsigned char *) 0x1A006010 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;typedef void (*SYSTEM_APP)(void);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SYSTEM_APP system_app = (SYSTEM_APP)SYSTEMBEGIN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;system_app();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This syntax works perfect for the LPC2148, but not for the LPC1853, unless I'm missing something else.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sutton&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:13:27 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:13:27Z</dc:date>
    <item>
      <title>Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525266#M7902</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sat Mar 21 08:53:19 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have an older project using a LPC2148 that has a custom bootloader and if certain criteria are met, transfers execution to the system code located at a different location.&amp;nbsp; However, the same syntax isn't working for the LPC1853.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The bootloader is placed at 1A000000.&amp;nbsp; The system code is placed at 1A006010.&amp;nbsp; The bootloader code runs fine until the system code transfer call is executed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; In debug (using Keil), I placed a breakpoint on the transfer call.&amp;nbsp; The assembly statement is BLX r4.&amp;nbsp; 'r4' holds 0x1A006010, as I would expect.&amp;nbsp; When the statement is executed, I get a HardFault.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here are the items of interest for the call.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SYSTEMBEGIN&amp;nbsp; (volatile unsigned char *) 0x1A006010 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;typedef void (*SYSTEM_APP)(void);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SYSTEM_APP system_app = (SYSTEM_APP)SYSTEMBEGIN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;system_app();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This syntax works perfect for the LPC2148, but not for the LPC1853, unless I'm missing something else.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sutton&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525266#M7902</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:27Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525267#M7903</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TheFallGuy on Sat Mar 21 09:07:11 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Cortex-m3 startup is different to arm7 startup, so it won't work the same way. Get yourself a good book on cortex-m3 or find an m3 boot loader example.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525267#M7903</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:28Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525268#M7904</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 Sat Mar 21 09:13:39 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;try 0x1A006011.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Bit 0 should be 1. It's a marker of the THUMB execution codeset.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wolfgang&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525268#M7904</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:28Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525269#M7905</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sat Mar 21 09:31:47 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Good idea, but still same result. 0x1A006011 also invokes the HardFault Handler.&amp;nbsp; 'r4' now holds 0x1A006011, as expected.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I also have to Cortex M3/M4 book by Yiu.&amp;nbsp; I haven't found anything in there as of yet that shows any differences in this particular execution transfer.&amp;nbsp; Nor have I found any example code that shows how to transfer execution for the Cortex M3/M4 in this manner.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525269#M7905</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:29Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525270#M7906</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by capiman on Sat Mar 21 09:38:46 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;What is there at 0x1a006010? Is there the vector table or already real code?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What about stack pointer (SP)? What about program counter (PC)?&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525270#M7906</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:29Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525271#M7907</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sat Mar 21 10:13:11 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;0x1A006010 is real code.&amp;nbsp; If I program the user code to 0x1A000000, it works fine.&amp;nbsp; The code looks correct, in that whether it is located at 0x00000000 or 0x1A006010, the bytes look correct.&amp;nbsp; The PC looks good.&amp;nbsp; It has the correct value before the transfer call (0x1A002B83).&amp;nbsp; Upon execution of transfer call, the value becomes 0x1A00031E (HardFault Handler).&amp;nbsp; The SP is 0x10003780, which appears to be OK.&amp;nbsp; I read that you have to dereference the transfer call, unlike the ARM7, so I'm trying to see if that will work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sutton&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525271#M7907</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:30Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525272#M7908</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 Sat Mar 21 10:18:39 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: dodge55&lt;/STRONG&gt;&lt;BR /&gt;Nor have I found any example code that shows how to transfer execution for the Cortex M3/M4 in this manner.&lt;/SPAN&gt;&lt;HR /&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%2Fhelp-needed-lpc1850-bootloader-fails-jump-application-around-50-probability" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/forum/help-needed-lpc1850-bootloader-fails-jump-application-around-50-probability&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Vector table address description:&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%2Fjump-bootloader-actual-firmware" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/forum/jump-bootloader-actual-firmware&lt;/A&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525272#M7908</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:31Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525273#M7909</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sat Mar 21 10:35:17 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks.&amp;nbsp; Let me do some reading up on those links and see if I can figure out the problem.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525273#M7909</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:31Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525274#M7910</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by mc on Sat Mar 21 12:47:00 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;As mentioned by others Cortex M is different than ARM7. Its vector table contains address not instruction and first entry is stack pointer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I think, you will need below code in your boot loader to jump to application code which starts from 0x1A006010 . Assuming your application vector table starts from 0x1A006010 and you are using Keil tool. I modified your code and is 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;#define SYSTEMBEGIN&amp;nbsp; 0x1A006000 

typedef void (*SYSTEM_APP)(void);

SYSTEM_APP system_app ;

static uint32_t JumpAddress = *(volatile uint32_t *)(SYSTEMBEGIN+4);

system_app =&amp;nbsp; (SYSTEM_APP )JumpAddress ;

//Set stack pointer
__set_MSP(*(volatile&amp;nbsp; uint32_t*)SYSTEMBEGIN);&amp;nbsp; 

SCB-&amp;gt;VTOR = SYSTEMBEGIN &amp;amp; 0x3FFFFF80;

system_app();&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT: Changed Address from 0x1A006010&amp;nbsp; to 0x1A006000 &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525274#M7910</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:32Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525275#M7911</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sat Mar 21 22:08:21 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Many thanks for your help.&amp;nbsp; It almost works.&amp;nbsp; Actually, it does transfer to the user code now.&amp;nbsp; But, it hangs because my timer interrupt doesn't work.&amp;nbsp; The same Timer0 interrupt that is used in the bootloader, doesn't run in the user code.&amp;nbsp; I am resetting up Timer0 and other interrupts totally independent from the bootloader, but Timer0 doesn't run.&amp;nbsp; So, I'm trying to figure that out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sutton&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525275#M7911</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:33Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525276#M7912</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 Sun Mar 22 00:27:49 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: dodge55&lt;/STRONG&gt;&lt;BR /&gt;So, I'm trying to figure that out.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did you __disable_irq () / __enable_irq() in your bootloader / application?&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525276#M7912</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:33Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525277#M7913</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MikeSimmonds on Sun Mar 22 02:48:01 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: dodge55&lt;/STRONG&gt;&lt;BR /&gt;Many thanks for your help.&amp;nbsp; It almost works.&amp;nbsp; Actually, it does transfer to the user code now.&amp;nbsp; But, it hangs because my timer interrupt doesn't work.&amp;nbsp; The same Timer0 interrupt that is used in the bootloader, doesn't run in the user code.&amp;nbsp; I am resetting up Timer0 and other interrupts totally independent from the bootloader, but Timer0 doesn't run.&amp;nbsp; So, I'm trying to figure that out.&lt;BR /&gt;&lt;BR /&gt;Sutton&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When you resetup the timer interrupt, are you (a) clearing any pending interrupts, (b) clearing any interrupt status in&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the timer, (c) actually enabling the timer interrupt in both the timer &lt;/SPAN&gt;&lt;I&gt;and&lt;/I&gt;&lt;SPAN&gt; the NVIC?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers, Mike&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525277#M7913</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:34Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525278#M7914</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sun Mar 22 08:54:57 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The&amp;nbsp; __disable_irq () / __enable_irq() combination hasn't worked and everything is cleared that I know of.&amp;nbsp; Actually, I am using the exact same Timer0_setup() and Timer1_setup() routines in both the bootloader and application code.&amp;nbsp; No differences (two instances of same code in both bootloader and application code space).&amp;nbsp; I didn't have __enable_irq(), because I thought that setting up the Timer routines again would reverse the __disable_irq().&amp;nbsp; But, I put that in the application code, but it didn't make any difference.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sutton&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525278#M7914</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:34Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525279#M7915</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by mc on Sun Mar 22 09:12:00 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi dodge,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I also changed your application starting address from 0x1A006010&amp;nbsp; to 0x1A006000 in my original post for correct alignment. Could you please check after modifying this address? It should work now.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525279#M7915</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:35Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525280#M7916</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 Sun Mar 22 09:23:28 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: dodge55&lt;/STRONG&gt;&lt;BR /&gt;The&amp;nbsp; __disable_irq () / __enable_irq() combination hasn't worked and everything is cleared that I know of.&amp;nbsp; Actually, I am using the exact same Timer0_setup() and Timer1_setup() routines in both the bootloader and application code. &lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It's important to debug your code as described in link above. Is your application working correct without timer interrupt?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525280#M7916</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:36Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525281#M7917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sun Mar 22 09:25:09 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I noticed that and I changed it to 0x1A006000 as well.&amp;nbsp; I had a 16 byte address at that location, for misc. settings (version, time, date, etc.).&amp;nbsp; But, I moved that to the end of the code space and moved my application code starting point to 0x1A006000.&amp;nbsp; The bootloader now transfers to the application code fine.&amp;nbsp; But, Timer1 isn't functioning correctly (used in my delay routines).&amp;nbsp; It looks like the match is happening and the interrupt bit is set, but the interrupt isn't firing.&amp;nbsp; Thus, the delay routine never ends.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525281#M7917</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:36Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525282#M7918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sun Mar 22 09:29:30 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;It acts like the interrupt vector is not correct.&amp;nbsp; If I put a breakpoint in the bootloader Timer1 interrupt, it stops when the timer expires.&amp;nbsp; It doesn't break in the application code at the same place, but the interrupt bit is set.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525282#M7918</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:37Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525283#M7919</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 Sun Mar 22 09:41:00 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: dodge55&lt;/STRONG&gt;&lt;BR /&gt;It acts like the interrupt vector is not correct.&amp;nbsp; If I put a breakpoint in the bootloader Timer1 interrupt, it stops when the timer expires.&amp;nbsp; It doesn't break in the application code at the same place, but the interrupt bit is set.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If your application is working without interrupts it's time to check their settings&amp;nbsp; :O &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Add __enable_irq() to you application code (just to ensure that interrupts are enabled)...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then check your NVIC, if Timer1 interrupt is enabled...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Use another Interrupt (SysTick) and check if that interrupt is executed...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Read your (application) vector table and check correct timer1 interrupt address...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525283#M7919</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:37Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525284#M7920</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by dodge55 on Sun Mar 22 09:49:45 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes, the code works without timers.&amp;nbsp; Neither Timer0 nor Timer1 are working in the application code.&amp;nbsp; I noticed that in the bootloader, Timer0_IRQHandler is placed at 0x1A001D4C and Timer1_IRQHandler is placed at 0x1A001DAC.&amp;nbsp; In the application code, Timer0_IRQHandler is placed at 0x1A009A80 and Timer1_IRQHandler is placed at 0x1A009AE0.&amp;nbsp; That seems way off as far as the offset from the starting code point of 0x1A006000.&amp;nbsp; Not sure if that's part of the issue.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525284#M7920</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:38Z</dc:date>
    </item>
    <item>
      <title>Re: Tranferring execution from custom bootloader to system code - LPC1853</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525285#M7921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by mc on Sun Mar 22 09:53:50 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi dodge55,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC1853 has MEMMAP register. Instead of VTOR try to use M3MAP register&amp;nbsp; as below.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*(volatile unsigned int *)0x40043100 = 0x1A006000;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Tranferring-execution-from-custom-bootloader-to-system-code/m-p/525285#M7921</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:38Z</dc:date>
    </item>
  </channel>
</rss>

