<?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: LPC845 Jumping to secondary Application in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869973#M34693</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A _jive_internal="true" data-content-finding="Community" data-userid="227997" data-username="otavioborges" href="https://community.nxp.com/people/otavioborges"&gt;Otavio Borges&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;1)In default,&amp;nbsp; the MCUXpresso IDE can't debug application with start address from 0x3000( only can start from 0x0000).&lt;/P&gt;&lt;P&gt;2) About the bootloader,&amp;nbsp; does application file have been flashed into chip before jump.&amp;nbsp; There is some secondary bootloader demo , you can have a look:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc800-series-cortex-m0-plus-mcus/low-cost-microcontrollers-mcus-based-on-arm-cortex-m0-plus-cores:LPC82X?tab=Documentation_Tab" title="https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc800-series-cortex-m0-plus-mcus/low-cost-microcontrollers-mcus-based-on-arm-cortex-m0-plus-cores:LPC82X?tab=Documentation_Tab"&gt;LPC82X|NXP&lt;/A&gt;&amp;nbsp;&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;&lt;BR /&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 30 Jan 2019 10:19:42 GMT</pubDate>
    <dc:creator>Alice_Yang</dc:creator>
    <dc:date>2019-01-30T10:19:42Z</dc:date>
    <item>
      <title>LPC845 Jumping to secondary Application</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869972#M34692</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm trying to jump from the bootloader to the user application on a LPC845M301JBD48. So far I manage to use IAP and UART to load the application on flash with the offset 0x3000. But when I try to switch context I receive the following error from LinkServer:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;Target error from Register access: Nn(05). Wire ACK Wait in DAP access &amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I try boot the application without the debugger connected with no success.&lt;/P&gt;&lt;P&gt;I've tried debugging just the application (compiled with offset 0x3000). and forcing the jump on GDB initialization. I've reached the Reset handler and System Init, but the same error from DAP occurs on the mentioned line below:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;void SystemInit (void) {&lt;BR /&gt;&lt;BR /&gt;#if defined(__MCUXPRESSO)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern void(*const g_pfnVectors[]) (void);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;VTOR = (uint32_t) &amp;amp;g_pfnVectors;&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern void *__Vectors;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;VTOR = (uint32_t) &amp;amp;__Vectors;&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Initial configuration of PLL using FRO&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSPLLCLKSEL = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSPLLCLKUEN = 1;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;PDRUNCFG |= SYSCON_PDRUNCFG_SYSPLL_PD_MASK; // Debugger disconnects here&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSPLLCTRL = SYSCON_SYSPLLCTRL_MSEL(0x01) |&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON_SYSPLLCTRL_PSEL(0);&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;// PLL = ((4+1) * CLK_OSC_IN) / (2 * (2^0)) = 30MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;PDRUNCFG &amp;amp;= ~(SYSCON_PDRUNCFG_SYSPLL_PD_MASK);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(SYSCON-&amp;gt;SYSPLLSTAT == 0)&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// wait for the PLL to lock&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;__asm("nop");&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // config clock to 30MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // setup XTALIN and XTALOUT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSAHBCLKCTRL0 |= (SYSCON_SYSAHBCLKCTRL0_IOCON_MASK | SYSCON_SYSAHBCLKCTRL0_SWM_MASK);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOCON-&amp;gt;PIO[IOCON_INDEX_PIO0_9] = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOCON-&amp;gt;PIO[IOCON_INDEX_PIO0_8] = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWM0-&amp;gt;PINENABLE0 &amp;amp;= ~(SWM_PINENABLE0_XTALIN_MASK | SWM_PINENABLE0_XTALOUT_MASK);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSOSCCTRL = 0;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// disable BYPASS and OSC range 1-20MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;PDRUNCFG &amp;amp;= ~(SYSCON_PDRUNCFG_SYSOSC_PD_MASK);&amp;nbsp;&amp;nbsp; &amp;nbsp;// enable OSC output&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(uint16_t delay = 0; delay &amp;lt; 6500; delay++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;__asm("nop");&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;&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;// wait around 5us&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // setup the PLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;EXTCLKSEL = 0;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Use Sytem Osc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSPLLCLKSEL = SYSCON_SYSPLLCLKSEL_SEL(0x01);&amp;nbsp;&amp;nbsp; &amp;nbsp;// use external XTAL as PLL source&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSPLLCLKUEN = 0x01;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// update CLK source for PLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;PDRUNCFG |= SYSCON_PDRUNCFG_SYSPLL_PD_MASK;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// turn off PLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSPLLCTRL = SYSCON_SYSPLLCTRL_MSEL(0x01) |&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON_SYSPLLCTRL_PSEL(0);&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;// PLL = ((1+1) * CLK_OSC_IN) / (1) = 24MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;PDRUNCFG &amp;amp;= ~(SYSCON_PDRUNCFG_SYSPLL_PD_MASK);&amp;nbsp;&amp;nbsp; &amp;nbsp;// Turn on the PLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(SYSCON-&amp;gt;SYSPLLSTAT == 0)&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// wait for the PLL to lock&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;__asm("nop");&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // update System clock etc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;MAINCLKSEL = SYSCON_MAINCLKSEL_SEL(0x00);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Use external CLock as Pre-PLL source&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;MAINCLKUEN = 0x01;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// update MAINCLKSRC&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;MAINCLKPLLSEL = SYSCON_MAINCLKPLLSEL_SEL(0x01);&amp;nbsp;&amp;nbsp; &amp;nbsp;// Use PLL as Main clk source&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;MAINCLKPLLUEN = 0x01;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// update MAINCLKSRC&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;SYSAHBCLKDIV = SYSCON_SYSAHBCLKDIV_DIV(1);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Main clk divider 1 = 30MHz&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemCoreClockUpdate();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemInitHook();&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;If I compile the user application without the offset (FLASH starting at 0x0) it works perfectly.&lt;/P&gt;&lt;P&gt;To switch from the bootloader to the application I use the following code:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;static void BootApplication(uint32_t startAddr){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;app entryPoint;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__DSB();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__ISB();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__set_MSP(*((uint32_t *)startAddr));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SCB-&amp;gt;VTOR = (startAddr &amp;amp; SCB_VTOR_TBLOFF_Msk);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__DSB();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__ISB();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;entryPoint = (app) *((uint32_t *)(startAddr + 4));&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;entryPoint();&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I'm using MCUXpresso v10.3.0 and LPC845 BRK board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for all the help!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2019 21:30:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869972#M34692</guid>
      <dc:creator>otavioborges</dc:creator>
      <dc:date>2019-01-29T21:30:13Z</dc:date>
    </item>
    <item>
      <title>Re: LPC845 Jumping to secondary Application</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869973#M34693</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A _jive_internal="true" data-content-finding="Community" data-userid="227997" data-username="otavioborges" href="https://community.nxp.com/people/otavioborges"&gt;Otavio Borges&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;1)In default,&amp;nbsp; the MCUXpresso IDE can't debug application with start address from 0x3000( only can start from 0x0000).&lt;/P&gt;&lt;P&gt;2) About the bootloader,&amp;nbsp; does application file have been flashed into chip before jump.&amp;nbsp; There is some secondary bootloader demo , you can have a look:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc800-series-cortex-m0-plus-mcus/low-cost-microcontrollers-mcus-based-on-arm-cortex-m0-plus-cores:LPC82X?tab=Documentation_Tab" title="https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc800-series-cortex-m0-plus-mcus/low-cost-microcontrollers-mcus-based-on-arm-cortex-m0-plus-cores:LPC82X?tab=Documentation_Tab"&gt;LPC82X|NXP&lt;/A&gt;&amp;nbsp;&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;&lt;BR /&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Jan 2019 10:19:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869973#M34693</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2019-01-30T10:19:42Z</dc:date>
    </item>
    <item>
      <title>Re: LPC845 Jumping to secondary Application</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869974#M34694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1) Is there a way I can debug the application. For example using gdb's &lt;STRONG&gt;add-symbol-file&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;2) I've tried the approach on the mentioned demo. But with no luck. But raised some questions. Why does the demo uses SYSMEMREMAP instead of VTOR to change the IRQ interruption vector? Would both approaches work on LPC845?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Jan 2019 23:38:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869974#M34694</guid>
      <dc:creator>otavioborges</dc:creator>
      <dc:date>2019-01-30T23:38:28Z</dc:date>
    </item>
    <item>
      <title>Re: LPC845 Jumping to secondary Application</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869975#M34695</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Figured out the issue. I was turning off the PLL but not correctly updating the main clk source. Forgot to write 0 on MAINCLKUEN. The following code loads the user application and boot it:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;typedef void (*app)(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static void BootApplication(uint32_t startAddr){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;app entryPoint;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__DSB();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__ISB();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__set_MSP(*((uint32_t *)startAddr));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SCB-&amp;gt;VTOR = (startAddr &amp;amp; SCB_VTOR_TBLOFF_Msk);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__DSB();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__ISB();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;entryPoint = (app) *((uint32_t *)(startAddr + 4));&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;DisablePLL();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;entryPoint();&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;static void DisablePLL(void){&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__disable_irq();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;MAINCLKSEL = SYSCON_MAINCLKSEL_SEL(0x00);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// using FRO&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;MAINCLKUEN = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;MAINCLKUEN = 1;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// update main CLK&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;MAINCLKPLLSEL = SYSCON_MAINCLKPLLSEL_SEL(0x00);&amp;nbsp;&amp;nbsp; &amp;nbsp;// using main_clk_pre_pll&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;MAINCLKPLLUEN = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;MAINCLKPLLUEN = 1;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// update PLL clock source&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__enable_irq();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;SYSPLLCLKSEL = SYSCON_SYSPLLCLKSEL_SEL(0x00);&amp;nbsp;&amp;nbsp; &amp;nbsp;// use FRO as PLL clock input&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;SYSPLLCLKUEN = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;SYSPLLCLKUEN = 1;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// update PLL&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYSCON-&amp;gt;PDRUNCFG |= SYSCON_PDRUNCFG_SYSPLL_PD_MASK;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// disable PLL&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SystemCoreClockUpdate();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;PS.: using &lt;STRONG&gt;add-symbol-file &lt;/STRONG&gt;to the bootloader debug configuration with the .axf of the application enabled me to debug both applications together. Leaving as reference.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2019 00:52:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869975#M34695</guid>
      <dc:creator>otavioborges</dc:creator>
      <dc:date>2019-02-05T00:52:11Z</dc:date>
    </item>
    <item>
      <title>Re: LPC845 Jumping to secondary Application</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869976#M34696</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Otavio,&lt;/P&gt;&lt;P&gt;I should add something after my last reply,&lt;/P&gt;&lt;P&gt;" 1)In default,&amp;nbsp; the MCUXpresso IDE can't debug application with start address from 0x3000( only can start from 0x0000)."&lt;/P&gt;&lt;P&gt;when using&amp;nbsp; CMSIS-DAP or linker server debug probe,&amp;nbsp;&lt;/P&gt;&lt;P&gt;we can re-configure the "Reset&amp;nbsp; Handing" to SOFT as below, then can debug your application .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/72031i8B1FD8C9F02046C0/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Feb 2019 07:00:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC845-Jumping-to-secondary-Application/m-p/869976#M34696</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2019-02-13T07:00:35Z</dc:date>
    </item>
  </channel>
</rss>

