<?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: Jumping from bootloader app to user app. in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157337#M849</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hello David&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Okay, so&lt;/SPAN&gt; &lt;SPAN&gt;I can have&lt;/SPAN&gt; &lt;SPAN&gt;two&lt;/SPAN&gt; &lt;SPAN&gt;versions of&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;one&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&amp;nbsp;&lt;SPAN&gt;&lt;SPAN&gt;and another in the&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;application.&lt;/SPAN&gt; &lt;SPAN&gt;But now&lt;/SPAN&gt; &lt;SPAN&gt;I have other&lt;/SPAN&gt; &lt;SPAN&gt;questions&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Should I&lt;/SPAN&gt; &lt;SPAN&gt;leave the&lt;/SPAN&gt; &lt;SPAN&gt;main task from&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;running&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What is&lt;/SPAN&gt; &lt;SPAN&gt;the exact&lt;/SPAN&gt; &lt;SPAN&gt;point where&lt;/SPAN&gt; &lt;SPAN&gt;I&lt;/SPAN&gt; should &lt;SPAN&gt;jump on&lt;/SPAN&gt; &lt;SPAN&gt;my application&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;vectorrom&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;RX&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;: ORIGIN&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;LENGTH =&lt;/SPAN&gt; &lt;SPAN&gt;0x00000400&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;rom&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;RX&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;: ORIGIN&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0x00010400&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;LENGTH =&lt;/SPAN&gt; &lt;SPAN&gt;0x0006FC00&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In the examples&lt;/SPAN&gt; &lt;SPAN&gt;of&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;that I saw,&lt;/SPAN&gt; &lt;SPAN&gt;was&lt;/SPAN&gt; &lt;SPAN&gt;reserved&lt;/SPAN&gt; an &lt;SPAN&gt;area&lt;/SPAN&gt; &lt;SPAN&gt;of&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;flash&lt;/SPAN&gt; &lt;SPAN&gt;in .l&lt;/SPAN&gt;&lt;SPAN&gt;cf file,&lt;/SPAN&gt; &lt;SPAN&gt;to store&lt;/SPAN&gt; &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;Is this&lt;/SPAN&gt; &lt;SPAN&gt;necessary?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I have&lt;/SPAN&gt; &lt;SPAN&gt;already&lt;/SPAN&gt; &lt;SPAN&gt;written&lt;/SPAN&gt; &lt;SPAN&gt;the bootloader&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;flash,&lt;/SPAN&gt; &lt;SPAN&gt;I can&lt;/SPAN&gt; &lt;SPAN&gt;debug&lt;/SPAN&gt; &lt;SPAN&gt;the application&lt;/SPAN&gt; &lt;SPAN&gt;at the address&lt;/SPAN&gt; &lt;SPAN&gt;in which&lt;/SPAN&gt; &lt;SPAN&gt;I recorded&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;When I try to&lt;/SPAN&gt; &lt;SPAN&gt;debug the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;, I noticed&lt;/SPAN&gt; &lt;SPAN&gt;the following situation&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;After&lt;/SPAN&gt; &lt;SPAN&gt;jumping to&lt;/SPAN&gt; &lt;SPAN&gt;the application&lt;/SPAN&gt;&lt;SPAN&gt;, both&lt;/SPAN&gt; &lt;SPAN&gt;address&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;vectorrom&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt; &lt;SPAN&gt;as in "&lt;/SPAN&gt;&lt;SPAN&gt;rom&lt;/SPAN&gt;&lt;SPAN&gt;", some&lt;/SPAN&gt; &lt;SPAN&gt;assembly&lt;/SPAN&gt; &lt;SPAN&gt;commands&lt;/SPAN&gt; &lt;SPAN&gt;are executed,&lt;/SPAN&gt; &lt;SPAN&gt;and then the&lt;/SPAN&gt; &lt;SPAN&gt;program jumps to&lt;/SPAN&gt; &lt;SPAN&gt;address&lt;/SPAN&gt; &lt;SPAN&gt;0x00000628&lt;/SPAN&gt;&lt;SPAN&gt;, which&lt;/SPAN&gt; &lt;SPAN&gt;seems to be the&lt;/SPAN&gt; &lt;SPAN&gt;_int_kernel_isr()&lt;/SPAN&gt; &lt;SPAN&gt;interruption&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;After that&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;the program gets&lt;/SPAN&gt; &lt;SPAN&gt;into an infinite loop&lt;/SPAN&gt; &lt;SPAN&gt;in this region&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;This interrupt is&lt;/SPAN&gt; &lt;SPAN&gt;essential&lt;/SPAN&gt; &lt;SPAN&gt;or is&lt;/SPAN&gt; &lt;SPAN&gt;possible to&lt;/SPAN&gt; &lt;SPAN&gt;disable&lt;/SPAN&gt; &lt;SPAN&gt;it&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;Before leaving the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;I call&lt;/SPAN&gt; &lt;SPAN&gt;the function&lt;/SPAN&gt; &lt;SPAN&gt;_int_disable&lt;/SPAN&gt; &lt;SPAN&gt;()&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;The&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt; &lt;SPAN&gt;at&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;is configured with&lt;/SPAN&gt; &lt;SPAN&gt;MQX_ROM_VECTORS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; 1 &lt;SPAN&gt;and&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;user app&lt;/SPAN&gt; &lt;SPAN&gt;MQX_ROM_VECTORS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;and I have compiled&lt;/SPAN&gt; &lt;SPAN&gt;separate libraries&lt;/SPAN&gt; &lt;SPAN&gt;for each of these&lt;/SPAN&gt; &lt;SPAN&gt;configurations.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 03 May 2012 00:42:24 GMT</pubDate>
    <dc:creator>Tgomes</dc:creator>
    <dc:date>2012-05-03T00:42:24Z</dc:date>
    <item>
      <title>Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157331#M843</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm&lt;/SPAN&gt; &lt;SPAN&gt;trying to make a&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;for my application&lt;/SPAN&gt; &lt;SPAN&gt;but am having&lt;/SPAN&gt; &lt;SPAN&gt;some problems&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I have two files&lt;/SPAN&gt; .&lt;SPAN&gt;lcf&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;One has&lt;/SPAN&gt; &lt;SPAN&gt;the addresses of&lt;/SPAN&gt; &lt;SPAN&gt;memory&lt;/SPAN&gt; &lt;SPAN&gt;configured to&lt;/SPAN&gt; &lt;SPAN&gt;record the program&lt;/SPAN&gt; &lt;SPAN&gt;starting&lt;/SPAN&gt; &lt;SPAN&gt;in the region&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;This is the&lt;/SPAN&gt; &lt;SPAN&gt;user&lt;/SPAN&gt; &lt;SPAN&gt;application&lt;/SPAN&gt;&lt;SPAN&gt;, which&lt;/SPAN&gt; &lt;SPAN&gt;will eventually be&lt;/SPAN&gt; &lt;SPAN&gt;updated by the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;The other file&lt;/SPAN&gt; .&lt;SPAN&gt;lcf&lt;/SPAN&gt; &lt;SPAN&gt;is configured&lt;/SPAN&gt; &lt;SPAN&gt;to start recording&lt;/SPAN&gt; &lt;SPAN&gt;at position&lt;/SPAN&gt; &lt;SPAN&gt;0x00000000&lt;/SPAN&gt;&lt;SPAN&gt;, because&lt;/SPAN&gt; &lt;SPAN&gt;in this position&lt;/SPAN&gt; &lt;SPAN&gt;the bootloader starts&lt;/SPAN&gt;&lt;SPAN&gt;, right?&lt;/SPAN&gt; &lt;SPAN&gt;To test&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;I recorded the&lt;/SPAN&gt; &lt;SPAN&gt;user&lt;/SPAN&gt; &lt;SPAN&gt;application&lt;/SPAN&gt; &lt;SPAN&gt;directly at the position&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt; &lt;SPAN&gt;using the&lt;/SPAN&gt; &lt;SPAN&gt;BDM&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;After&lt;/SPAN&gt; &lt;SPAN&gt;I recorded the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN&gt;&lt;SPAN&gt;at position&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;0x00000000&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;also&lt;/SPAN&gt; &lt;SPAN&gt;using the&lt;/SPAN&gt; &lt;SPAN&gt;BDM&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;In the&lt;/SPAN&gt; &lt;SPAN&gt;boot program&lt;/SPAN&gt;&lt;SPAN&gt;, I try to&lt;/SPAN&gt; &lt;SPAN&gt;jump to&lt;/SPAN&gt; &lt;SPAN&gt;the position&lt;/SPAN&gt; &lt;SPAN&gt;where the&lt;/SPAN&gt; &lt;SPAN&gt;user application &amp;nbsp;has been recorded&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;but nothing happens&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I'm&lt;/SPAN&gt; &lt;SPAN&gt;relying&lt;/SPAN&gt; &lt;SPAN&gt;on the document&lt;/SPAN&gt; &lt;SPAN&gt;AN4367&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;but still&lt;/SPAN&gt; &lt;SPAN&gt;could not get&lt;/SPAN&gt; &lt;SPAN&gt;any progress.&lt;/SPAN&gt; &lt;SPAN&gt;I've seen&lt;/SPAN&gt; &lt;SPAN&gt;some examples&lt;/SPAN&gt; &lt;SPAN&gt;from the package&lt;/SPAN&gt; &lt;SPAN&gt;installation&lt;/SPAN&gt; &lt;SPAN&gt;of MQX&lt;/SPAN&gt; &lt;SPAN&gt;3.8,&lt;/SPAN&gt; &lt;SPAN&gt;but they&lt;/SPAN&gt; &lt;SPAN&gt;are somewhat&lt;/SPAN&gt; &lt;SPAN&gt;complex&lt;/SPAN&gt; &lt;SPAN&gt;and not&lt;/SPAN&gt; &lt;SPAN&gt;directly apply&lt;/SPAN&gt; &lt;SPAN&gt;to my project&lt;/SPAN&gt;&lt;SPAN&gt;, since&lt;/SPAN&gt; &lt;SPAN&gt;I'm using&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;totally different&lt;/SPAN&gt; &lt;SPAN&gt;motherboard&lt;/SPAN&gt; &lt;SPAN&gt;from&lt;/SPAN&gt; &lt;SPAN&gt;freescale kits&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;What can I&lt;/SPAN&gt; &lt;SPAN&gt;be doing wrong&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help&lt;/SPAN&gt; &lt;SPAN&gt;is welcome&lt;/SPAN&gt;&lt;SPAN&gt;!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;If necessary&lt;/SPAN&gt; &lt;SPAN&gt;I can put&lt;/SPAN&gt; &lt;SPAN&gt;here my&lt;/SPAN&gt; &lt;SPAN&gt;.lcf&lt;/SPAN&gt; &lt;SPAN&gt;files&lt;/SPAN&gt; &lt;SPAN&gt;for analysis.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Best regards.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2012 03:38:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157331#M843</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-04-25T03:38:08Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157332#M844</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tgomes,&lt;/P&gt;&lt;P&gt;Sounds like you are off to a good start.&lt;/P&gt;&lt;P&gt;A general rule of thumb is to make sure when you "jump" from bootloader to your application that any resources you have used are disabled (ex: interrupts, UARTs, GPIO, etc...) as they can cause an appplication to crash.&lt;/P&gt;&lt;P&gt;Second is you need to have the application place its vector table into RAM.&amp;nbsp; The bootloader are 0x00000000 owns the flash vector table and that area of flash should never be touched by the application.&lt;/P&gt;&lt;P&gt;If you can experiment with your application to load it at 0x10000 and run it and see the vector table copied from flash to RAM and then run you should be ready to try with the bootloader.&lt;/P&gt;&lt;P&gt;When I've done this I set a breakpoint in the bootloader where it will jump to the application then step into the application.&amp;nbsp; If the first few lines of code (usually seen as assembly code since the debgguer was loaded with the bootloader symbol information) you can then let it run to see if it is working OK.&lt;/P&gt;&lt;P&gt;Conversely you can use debugger with the application but don't run it.&amp;nbsp; Set a breakpoint at the first line of application code.&amp;nbsp; Then use the register window to set your PC to the beginning of the bootloader and let it run.&amp;nbsp; Assuming it is setup to check for valid application in flash at 0x10000 and that test passes OK then you should hit the breakpoint you have at the first line of application code and proceed to debug from that point.&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2012 20:34:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157332#M844</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2012-04-25T20:34:25Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157333#M845</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;Hello&lt;/SPAN&gt; &lt;SPAN&gt;David,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for responding&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;So&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;I'll&lt;/SPAN&gt; &lt;SPAN&gt;give you more&lt;/SPAN&gt; &lt;SPAN&gt;details about&lt;/SPAN&gt; &lt;SPAN&gt;my problem and I&lt;/SPAN&gt;&lt;SPAN&gt;'ll make&lt;/SPAN&gt; &lt;SPAN&gt;a few more questions&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I'm using&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt; &lt;SPAN&gt;3.6 in&lt;/SPAN&gt; &lt;SPAN&gt;my application&lt;/SPAN&gt; &lt;SPAN&gt;and in&amp;nbsp;the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;do not know if&lt;/SPAN&gt; &lt;SPAN&gt;the bootloader&lt;/SPAN&gt; &lt;SPAN&gt;can&lt;/SPAN&gt; &lt;SPAN&gt;be done with the&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;According to&lt;/SPAN&gt; &lt;SPAN&gt;application notes&lt;/SPAN&gt; &lt;SPAN&gt;and examples,&lt;/SPAN&gt; &lt;SPAN&gt;to place the&lt;/SPAN&gt; &lt;SPAN&gt;vector table&lt;/SPAN&gt; &lt;SPAN&gt;in RAM&lt;/SPAN&gt;&lt;SPAN&gt;, I must define&lt;/SPAN&gt; &lt;SPAN&gt;the macro&lt;/SPAN&gt; &lt;SPAN&gt;MQX_ROM_VECTORS&lt;/SPAN&gt; &lt;SPAN&gt;as 0&lt;/SPAN&gt; &lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;This&lt;/SPAN&gt; &lt;SPAN&gt;has already been&lt;/SPAN&gt; &lt;SPAN&gt;done, only for user app.&lt;/SPAN&gt; &lt;SPAN&gt;When&lt;/SPAN&gt; &lt;SPAN&gt;I record&lt;/SPAN&gt; &lt;SPAN&gt;the app&lt;/SPAN&gt; &lt;SPAN&gt;in position&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt; &lt;SPAN&gt;using the&lt;/SPAN&gt; &lt;SPAN&gt;BDM&lt;/SPAN&gt;&lt;SPAN&gt;, it runs&lt;/SPAN&gt; &lt;SPAN&gt;only once&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;immediately&lt;/SPAN&gt; &lt;SPAN&gt;after&lt;/SPAN&gt; &lt;SPAN&gt;recording and using&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;debug&lt;/SPAN&gt; &lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;If I&lt;/SPAN&gt; &lt;SPAN&gt;restart the&lt;/SPAN&gt; &lt;SPAN&gt;hardware&lt;/SPAN&gt;&lt;SPAN&gt;, the&lt;/SPAN&gt; &lt;SPAN&gt;application does not&lt;/SPAN&gt; &lt;SPAN&gt;run&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;even in&lt;/SPAN&gt; &lt;SPAN&gt;debug&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;If I&lt;/SPAN&gt; &lt;SPAN&gt;write&lt;/SPAN&gt; &lt;SPAN&gt;the app&lt;/SPAN&gt; &lt;SPAN&gt;in position&lt;/SPAN&gt; &lt;SPAN&gt;0x00000000&lt;/SPAN&gt;&lt;SPAN&gt;, overwriting the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;it works&lt;/SPAN&gt; &lt;SPAN&gt;normally.&lt;/SPAN&gt; &lt;SPAN&gt;Now&lt;/SPAN&gt; &lt;SPAN&gt;my doubts&lt;/SPAN&gt; &lt;SPAN&gt;are&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1&lt;/SPAN&gt; &lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;Is it possible to&lt;/SPAN&gt; &lt;SPAN&gt;use the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;with the&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2&lt;/SPAN&gt; &lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;What is the&lt;/SPAN&gt; &lt;SPAN&gt;best command&lt;/SPAN&gt; &lt;SPAN&gt;to skip&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader for&lt;/SPAN&gt; &lt;SPAN&gt;the app&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;asm&lt;/SPAN&gt; &lt;SPAN&gt;JUMP&lt;/SPAN&gt; &lt;SPAN&gt;or&lt;/SPAN&gt; &lt;SPAN&gt;function&lt;/SPAN&gt; &lt;SPAN&gt;pointer&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;3&lt;/SPAN&gt; &lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;Is it possible to&lt;/SPAN&gt; &lt;SPAN&gt;configure&lt;/SPAN&gt; &lt;SPAN&gt;BDM&lt;/SPAN&gt; &lt;SPAN&gt;to&lt;/SPAN&gt; &lt;SPAN&gt;start&lt;/SPAN&gt; &lt;SPAN&gt;debugging&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;application in&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt; &lt;SPAN&gt;or any other&lt;/SPAN&gt; &lt;SPAN&gt;position&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;As I told you&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;when I record&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;app&lt;/SPAN&gt; &lt;SPAN&gt;in a&lt;/SPAN&gt; &lt;SPAN&gt;different&lt;/SPAN&gt; &lt;SPAN&gt;position&lt;/SPAN&gt; &lt;SPAN&gt;from the beginning of&lt;/SPAN&gt; &lt;SPAN&gt;memory,&lt;/SPAN&gt; &lt;SPAN&gt;I can&lt;/SPAN&gt; &lt;SPAN&gt;debug&lt;/SPAN&gt; &lt;SPAN&gt;only once&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;and in&lt;/SPAN&gt; &lt;SPAN&gt;release mode&lt;/SPAN&gt;&lt;SPAN&gt;, the&lt;/SPAN&gt; &lt;SPAN&gt;app&lt;/SPAN&gt; &lt;SPAN&gt;does not work&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;SPAN&gt;4&lt;/SPAN&gt; &lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;If possible&lt;/SPAN&gt; &lt;SPAN&gt;use&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;, can&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;I use&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;version&lt;/SPAN&gt; &lt;SPAN&gt;compiled&lt;/SPAN&gt; &lt;SPAN&gt;differently&lt;/SPAN&gt; &lt;SPAN&gt;in the app&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;That is,&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;using&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt; &lt;SPAN&gt;simple, with few&lt;/SPAN&gt; &lt;SPAN&gt;features&lt;/SPAN&gt;&lt;SPAN&gt;, without&lt;/SPAN&gt; &lt;SPAN&gt;interruptions&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;etc.&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;and the&lt;/SPAN&gt; &lt;SPAN&gt;app&lt;/SPAN&gt; &lt;SPAN&gt;using&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;compiled&lt;/SPAN&gt; &lt;SPAN&gt;version&lt;/SPAN&gt; &lt;SPAN&gt;complete with&lt;/SPAN&gt; &lt;SPAN&gt;all features&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for the help&lt;/SPAN&gt;&lt;SPAN&gt;!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Apr 2012 05:53:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157333#M845</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-04-27T05:53:51Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157334#M846</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tgomes,&lt;/P&gt;&lt;P&gt;If you have a bootloader in flash at 0x0 and application at 0x10000, can you debug the application OK?&lt;/P&gt;&lt;P&gt;Sometimes the debugger interface doesn't work if the bootloader space is all "F"s.&lt;/P&gt;&lt;P&gt;As long at your application has the MQX_ROM_VECTORS 0 (and you have re-compiled the BSP/PSP) you should be able to have your application anywhere in the flash space (including 0x10000).&lt;/P&gt;&lt;P&gt;A1) It is possible to use MQX as the bootloader but in general it is overkill.&lt;/P&gt;&lt;P&gt;A2) I've used the ASM JUMP to get to the application.&amp;nbsp; I usually do a test at 0x10000 (stack) and 0x10004 (program counter) to see if the memory is none "F"s.&amp;nbsp; Then I can use the program counter value to know where to jump in the application to get to the first instruction.&lt;/P&gt;&lt;P&gt;A3) Yes.&amp;nbsp; It basically is the linker file that defines where your code&amp;nbsp; will be located.&amp;nbsp; So with the vector table in SRAM, the linker should be able to point to anywhere in the flash space.&lt;/P&gt;&lt;P&gt;A4) Yes and No :-)&amp;nbsp; Yes because in general the two applications (bootloader and application) are independent.&amp;nbsp; So you can configure each however you want.&amp;nbsp; The No is related to the MQX RTOS does require the system tick as an interrupt.&amp;nbsp; All other drivers can operate in polled fashion.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What device are you working on?&amp;nbsp; ColdFire?&amp;nbsp; Kinetis?&lt;/P&gt;&lt;P&gt;What development tool chain?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Apr 2012 23:38:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157334#M846</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2012-04-27T23:38:31Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157335#M847</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt; &lt;SPAN&gt;David,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes, if the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;is&lt;/SPAN&gt; &lt;SPAN&gt;stored&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;flash&lt;/SPAN&gt; &lt;SPAN&gt;position&lt;/SPAN&gt; &lt;SPAN&gt;0x0&lt;/SPAN&gt;&lt;SPAN&gt;, I can&lt;/SPAN&gt; &lt;SPAN&gt;debug&lt;/SPAN&gt; &lt;SPAN&gt;the application at&lt;/SPAN&gt; &lt;SPAN&gt;location&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;In my&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;, I will&lt;/SPAN&gt; &lt;SPAN&gt;need the&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt; &lt;SPAN&gt;only to get&lt;/SPAN&gt; &lt;SPAN&gt;the firmware from&lt;/SPAN&gt; &lt;SPAN&gt;SD card&lt;/SPAN&gt;&lt;SPAN&gt;, since&lt;/SPAN&gt; &lt;SPAN&gt;all&lt;/SPAN&gt; &lt;SPAN&gt;functions to do that&lt;/SPAN&gt; &lt;SPAN&gt;are&lt;/SPAN&gt; &lt;SPAN&gt;already&lt;/SPAN&gt; &lt;SPAN&gt;implemented&lt;/SPAN&gt; &lt;SPAN&gt;and working normally&lt;/SPAN&gt;&lt;SPAN&gt;, so I would&lt;/SPAN&gt; the &lt;SPAN&gt;MQX&lt;/SPAN&gt; in&amp;nbsp;&lt;SPAN&gt;bootloader&lt;/SPAN&gt; to be &lt;SPAN&gt;lighter&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;with features that&lt;/SPAN&gt; &lt;SPAN&gt;will not be&lt;/SPAN&gt; &lt;SPAN&gt;used&lt;/SPAN&gt; &lt;SPAN&gt;disabled.&lt;/SPAN&gt; &lt;SPAN&gt;However&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;when I&lt;/SPAN&gt; &lt;SPAN&gt;jump to&lt;/SPAN&gt; &lt;SPAN&gt;the application&lt;/SPAN&gt;&lt;SPAN&gt;, the&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt; &lt;SPAN&gt;restarts&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;I mean&lt;/SPAN&gt;&lt;SPAN&gt;, the function&lt;/SPAN&gt; &lt;SPAN&gt;_mqx&lt;/SPAN&gt; &lt;SPAN&gt;((&lt;/SPAN&gt;&lt;SPAN&gt;MQX_INITIALIZATION_STRUCT_PTR&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt; &lt;SPAN&gt;&amp;amp;&lt;/SPAN&gt; &lt;SPAN&gt;MQX_init_struct&lt;/SPAN&gt;&lt;SPAN&gt;) in&lt;/SPAN&gt; &lt;SPAN&gt;mqx_main.c&lt;/SPAN&gt; &lt;SPAN&gt;will be&lt;/SPAN&gt; &lt;SPAN&gt;called again (&lt;/SPAN&gt;&lt;SPAN&gt;after being&lt;/SPAN&gt; &lt;SPAN&gt;called&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;This does not&lt;/SPAN&gt; &lt;SPAN&gt;cause the&lt;/SPAN&gt; &lt;SPAN&gt;crash&lt;/SPAN&gt; &lt;SPAN&gt;of the application&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using&lt;/SPAN&gt; &lt;SPAN&gt;coldfire&lt;/SPAN&gt; &lt;SPAN&gt;MCF52259&lt;/SPAN&gt; &lt;SPAN&gt;with the&lt;/SPAN&gt; &lt;SPAN&gt;CodeWarrior&lt;/SPAN&gt; &lt;SPAN&gt;10.1 and&lt;/SPAN&gt; &lt;SPAN&gt;3.6&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Best regards.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 28 Apr 2012 01:56:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157335#M847</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-04-28T01:56:20Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157336#M848</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tgomes,&lt;/P&gt;&lt;P&gt;Since the bootloader and application are totally independent projects, once the bootloader jumps to the application, the applications version of the _mqx() function will be called.&lt;/P&gt;&lt;P&gt;The bootloader and the application have their own flash space and do not share any code.&amp;nbsp; The bootloader has its vector table in flash.&amp;nbsp; The application will copy its vector table from flash, place into SRAM, and then MQX starts using it and not the flash vector table the bootloader has.&lt;/P&gt;&lt;P&gt;Reference file init_bsp.c function _bsp_enable_card()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* set possible new interrupt vector table - if MQX_ROM_VECTORS = 0 switch to&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ram interrupt table which was initialized in _psp_int_init) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _int_set_vector_table(BSP_INTERRUPT_VECTOR_TABLE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So it sounds like you are able to debug as long as you have the bootloader loaded to flash.&amp;nbsp; Correct?&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Apr 2012 21:32:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157336#M848</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2012-04-30T21:32:44Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157337#M849</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hello David&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Okay, so&lt;/SPAN&gt; &lt;SPAN&gt;I can have&lt;/SPAN&gt; &lt;SPAN&gt;two&lt;/SPAN&gt; &lt;SPAN&gt;versions of&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;one&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&amp;nbsp;&lt;SPAN&gt;&lt;SPAN&gt;and another in the&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;application.&lt;/SPAN&gt; &lt;SPAN&gt;But now&lt;/SPAN&gt; &lt;SPAN&gt;I have other&lt;/SPAN&gt; &lt;SPAN&gt;questions&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Should I&lt;/SPAN&gt; &lt;SPAN&gt;leave the&lt;/SPAN&gt; &lt;SPAN&gt;main task from&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;running&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What is&lt;/SPAN&gt; &lt;SPAN&gt;the exact&lt;/SPAN&gt; &lt;SPAN&gt;point where&lt;/SPAN&gt; &lt;SPAN&gt;I&lt;/SPAN&gt; should &lt;SPAN&gt;jump on&lt;/SPAN&gt; &lt;SPAN&gt;my application&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;vectorrom&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;RX&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;: ORIGIN&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;LENGTH =&lt;/SPAN&gt; &lt;SPAN&gt;0x00000400&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;rom&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;RX&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;: ORIGIN&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0x00010400&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;LENGTH =&lt;/SPAN&gt; &lt;SPAN&gt;0x0006FC00&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In the examples&lt;/SPAN&gt; &lt;SPAN&gt;of&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;that I saw,&lt;/SPAN&gt; &lt;SPAN&gt;was&lt;/SPAN&gt; &lt;SPAN&gt;reserved&lt;/SPAN&gt; an &lt;SPAN&gt;area&lt;/SPAN&gt; &lt;SPAN&gt;of&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;flash&lt;/SPAN&gt; &lt;SPAN&gt;in .l&lt;/SPAN&gt;&lt;SPAN&gt;cf file,&lt;/SPAN&gt; &lt;SPAN&gt;to store&lt;/SPAN&gt; &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;Is this&lt;/SPAN&gt; &lt;SPAN&gt;necessary?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I have&lt;/SPAN&gt; &lt;SPAN&gt;already&lt;/SPAN&gt; &lt;SPAN&gt;written&lt;/SPAN&gt; &lt;SPAN&gt;the bootloader&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;flash,&lt;/SPAN&gt; &lt;SPAN&gt;I can&lt;/SPAN&gt; &lt;SPAN&gt;debug&lt;/SPAN&gt; &lt;SPAN&gt;the application&lt;/SPAN&gt; &lt;SPAN&gt;at the address&lt;/SPAN&gt; &lt;SPAN&gt;in which&lt;/SPAN&gt; &lt;SPAN&gt;I recorded&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;When I try to&lt;/SPAN&gt; &lt;SPAN&gt;debug the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;, I noticed&lt;/SPAN&gt; &lt;SPAN&gt;the following situation&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;After&lt;/SPAN&gt; &lt;SPAN&gt;jumping to&lt;/SPAN&gt; &lt;SPAN&gt;the application&lt;/SPAN&gt;&lt;SPAN&gt;, both&lt;/SPAN&gt; &lt;SPAN&gt;address&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;vectorrom&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt; &lt;SPAN&gt;as in "&lt;/SPAN&gt;&lt;SPAN&gt;rom&lt;/SPAN&gt;&lt;SPAN&gt;", some&lt;/SPAN&gt; &lt;SPAN&gt;assembly&lt;/SPAN&gt; &lt;SPAN&gt;commands&lt;/SPAN&gt; &lt;SPAN&gt;are executed,&lt;/SPAN&gt; &lt;SPAN&gt;and then the&lt;/SPAN&gt; &lt;SPAN&gt;program jumps to&lt;/SPAN&gt; &lt;SPAN&gt;address&lt;/SPAN&gt; &lt;SPAN&gt;0x00000628&lt;/SPAN&gt;&lt;SPAN&gt;, which&lt;/SPAN&gt; &lt;SPAN&gt;seems to be the&lt;/SPAN&gt; &lt;SPAN&gt;_int_kernel_isr()&lt;/SPAN&gt; &lt;SPAN&gt;interruption&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;After that&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;the program gets&lt;/SPAN&gt; &lt;SPAN&gt;into an infinite loop&lt;/SPAN&gt; &lt;SPAN&gt;in this region&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;This interrupt is&lt;/SPAN&gt; &lt;SPAN&gt;essential&lt;/SPAN&gt; &lt;SPAN&gt;or is&lt;/SPAN&gt; &lt;SPAN&gt;possible to&lt;/SPAN&gt; &lt;SPAN&gt;disable&lt;/SPAN&gt; &lt;SPAN&gt;it&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;Before leaving the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;I call&lt;/SPAN&gt; &lt;SPAN&gt;the function&lt;/SPAN&gt; &lt;SPAN&gt;_int_disable&lt;/SPAN&gt; &lt;SPAN&gt;()&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;The&lt;/SPAN&gt; &lt;SPAN&gt;MQX&lt;/SPAN&gt; &lt;SPAN&gt;at&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;is configured with&lt;/SPAN&gt; &lt;SPAN&gt;MQX_ROM_VECTORS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; 1 &lt;SPAN&gt;and&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;user app&lt;/SPAN&gt; &lt;SPAN&gt;MQX_ROM_VECTORS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;and I have compiled&lt;/SPAN&gt; &lt;SPAN&gt;separate libraries&lt;/SPAN&gt; &lt;SPAN&gt;for each of these&lt;/SPAN&gt; &lt;SPAN&gt;configurations.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 May 2012 00:42:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157337#M849</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-05-03T00:42:24Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157338#M850</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tgomes,&lt;/P&gt;&lt;P&gt;Sounds like you are close.&lt;/P&gt;&lt;P&gt;Please check to ensure that the RTOS libraries that the application is using really is the RTOS built with MQX_ROM_VECTORS 0 .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Should I&lt;/SPAN&gt; &lt;SPAN&gt;leave the&lt;/SPAN&gt; &lt;SPAN&gt;main task from&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;running&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//DES OK to leave task.&amp;nbsp; You just want to disable all interrupts before jumping to the application.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN&gt;What is&lt;/SPAN&gt; &lt;SPAN&gt;the exact&lt;/SPAN&gt; &lt;SPAN&gt;point where&lt;/SPAN&gt; &lt;SPAN&gt;I&lt;/SPAN&gt; should &lt;SPAN&gt;jump on&lt;/SPAN&gt; &lt;SPAN&gt;my application&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//DES Any location is fine.&amp;nbsp; The flow is assumed that you have checked to verify a good application is present at 0x10000.&amp;nbsp; At 0x10000 should be the vector table that will be copied into RAM.&amp;nbsp; The first two 32-bit values are the stack pointer 0x10000, and PC 0x10004.&amp;nbsp; You want to read the PC value and jump to it.&amp;nbsp; That is exactly what happens out of hard reset (power on reset).&amp;nbsp; The CPU loads the stack and PC and then jumps to the PC.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The bootloader example places a jump table at 0x10000 so your code would validate it is good, then jump to 0x10000 which would then jump to the starting point of the application.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Either method is fine.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 May 2012 00:54:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157338#M850</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2012-05-04T00:54:38Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157339#M851</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hi David&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;So how&lt;/SPAN&gt; &lt;SPAN&gt;do I&lt;/SPAN&gt; &lt;SPAN&gt;disable all&lt;/SPAN&gt; &lt;SPAN&gt;interrupts&lt;/SPAN&gt; &lt;SPAN&gt;before jumping&lt;/SPAN&gt; &lt;SPAN&gt;to the&lt;/SPAN&gt; &lt;SPAN&gt;application?&lt;/SPAN&gt; &lt;SPAN&gt;Like I&lt;/SPAN&gt; &lt;SPAN&gt;said&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;before leaving the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;I call&lt;/SPAN&gt; &lt;SPAN&gt;_int_disable&lt;/SPAN&gt; &lt;SPAN&gt;(), but&lt;/SPAN&gt; &lt;SPAN&gt;after&lt;/SPAN&gt; &lt;SPAN&gt;the program&lt;/SPAN&gt; &lt;SPAN&gt;start to&lt;/SPAN&gt; &lt;SPAN&gt;run at&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt; &lt;SPAN&gt;position&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;he jumps to&lt;/SPAN&gt; &lt;SPAN&gt;the location&lt;/SPAN&gt; &lt;SPAN&gt;0x00000628&lt;/SPAN&gt;&lt;SPAN&gt;, which seems to&lt;/SPAN&gt; &lt;SPAN&gt;be an interruption&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;_int_kernel_isr&lt;/SPAN&gt; &lt;SPAN&gt;())&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;If the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;is occupying&lt;/SPAN&gt; &lt;SPAN&gt;this space&lt;/SPAN&gt;&lt;SPAN&gt;, the application&lt;/SPAN&gt; &lt;SPAN&gt;should not&lt;/SPAN&gt; &lt;SPAN&gt;jump to&lt;/SPAN&gt; &lt;SPAN&gt;that position&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;right?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Thanks for&lt;/SPAN&gt; &lt;SPAN&gt;help!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 May 2012 01:53:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157339#M851</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-05-04T01:53:22Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157340#M852</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;David,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the help&lt;/SPAN&gt;&lt;SPAN&gt;!&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;I was finally able&lt;/SPAN&gt; &lt;SPAN&gt;to jump&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; from &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;to the user application&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;and there was no&lt;/SPAN&gt; &lt;SPAN&gt;interruption&lt;/SPAN&gt; &lt;SPAN&gt;that I&lt;/SPAN&gt; &lt;SPAN&gt;reported&lt;/SPAN&gt; &lt;SPAN&gt;in the previous post&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;The problem was&lt;/SPAN&gt; &lt;SPAN&gt;the value of the&lt;/SPAN&gt; &lt;SPAN&gt;PC&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I thought&lt;/SPAN&gt; &lt;SPAN&gt;jumping&lt;/SPAN&gt; &lt;SPAN&gt;straight to&lt;/SPAN&gt; &lt;SPAN&gt;the beginning of the&lt;/SPAN&gt; &lt;SPAN&gt;ROM&lt;/SPAN&gt; &lt;SPAN&gt;of my&lt;/SPAN&gt; &lt;SPAN&gt;application, the&lt;/SPAN&gt; &lt;SPAN&gt;PC&lt;/SPAN&gt; &lt;SPAN&gt;would be&lt;/SPAN&gt; &lt;SPAN&gt;automatically loaded&lt;/SPAN&gt; &lt;SPAN&gt;to start the program&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;In fact&lt;/SPAN&gt; &lt;SPAN&gt;I had to&lt;/SPAN&gt; &lt;SPAN&gt;cheat to&lt;/SPAN&gt; &lt;SPAN&gt;realize it&lt;/SPAN&gt;&lt;SPAN&gt;, because&lt;/SPAN&gt; &lt;SPAN&gt;I got&lt;/SPAN&gt; &lt;SPAN&gt;the value of the&lt;/SPAN&gt; &lt;SPAN&gt;PC directly from&lt;/SPAN&gt; &lt;SPAN&gt;.lst file&lt;/SPAN&gt; &lt;SPAN&gt;from the application&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;and not&lt;/SPAN&gt; from &lt;SPAN&gt;ROM&lt;/SPAN&gt; &lt;SPAN&gt;address&lt;/SPAN&gt; &lt;SPAN&gt;0x00010004.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 05 May 2012 00:03:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157340#M852</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-05-05T00:03:53Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157341#M853</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hi David&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I need to&lt;/SPAN&gt; &lt;SPAN&gt;get this value&lt;/SPAN&gt; &lt;SPAN&gt;from the&lt;/SPAN&gt; &lt;SPAN&gt;flash.&lt;/SPAN&gt; &lt;SPAN&gt;After opening the&lt;/SPAN&gt; &lt;SPAN&gt;stream (&lt;/SPAN&gt;&lt;SPAN&gt;flashx&lt;/SPAN&gt;&lt;SPAN&gt;) and&lt;/SPAN&gt; &lt;SPAN&gt;seek&lt;/SPAN&gt; &lt;SPAN&gt;to position&lt;/SPAN&gt; &lt;SPAN&gt;0x00010004&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;I could not read&lt;/SPAN&gt; &lt;SPAN&gt;the value from&lt;/SPAN&gt; &lt;SPAN&gt;flash,&lt;/SPAN&gt; &lt;SPAN&gt;because apparently&lt;/SPAN&gt; &lt;SPAN&gt;I'm&lt;/SPAN&gt; &lt;SPAN&gt;exceeding the&lt;/SPAN&gt; &lt;SPAN&gt;limit of&lt;/SPAN&gt; &lt;SPAN&gt;addressable&lt;/SPAN&gt; &lt;SPAN&gt;memory&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;In the configuration file&lt;/SPAN&gt; &lt;SPAN&gt;of my&lt;/SPAN&gt; &lt;SPAN&gt;board there is&lt;/SPAN&gt; &lt;SPAN&gt;the definition&lt;/SPAN&gt; &lt;SPAN&gt;BSPCFG_FLASHX_SIZE&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0x4000&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; Do &lt;SPAN&gt;I have to&lt;/SPAN&gt; &lt;SPAN&gt;modify this&lt;/SPAN&gt; &lt;SPAN&gt;value to&lt;/SPAN&gt; &lt;SPAN&gt;be able to read&lt;/SPAN&gt; &lt;SPAN&gt;and write&lt;/SPAN&gt; &lt;SPAN&gt;from the position&lt;/SPAN&gt; &lt;SPAN&gt;0x00010000&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;And in the&lt;/SPAN&gt; &lt;SPAN&gt;LCF&lt;/SPAN&gt; &lt;SPAN&gt;file&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; do &lt;SPAN&gt;I need&lt;/SPAN&gt; &lt;SPAN&gt;to change&lt;/SPAN&gt; &lt;SPAN&gt;___&lt;/SPAN&gt; &lt;SPAN&gt;FLASHX_START_ADDR&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Best regards.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 05 May 2012 00:17:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157341#M853</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-05-05T00:17:28Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157342#M854</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tgomes,&lt;/P&gt;&lt;P&gt;Awesome.&amp;nbsp; Glad you are up and running.&lt;/P&gt;&lt;P&gt;I didn't use the flashx to get the PC but you can use the linker file to help by having the linker define the starting address of the MQX application space.&amp;nbsp; Two ways:&amp;nbsp; hard code, soft code.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hard code meaning something like:&lt;/P&gt;&lt;P&gt;__MQX_APP_START = 0x10000;&lt;/P&gt;&lt;P&gt;Soft code might look something like:&lt;/P&gt;&lt;P&gt;__MQX_APP_START=(_Code_Space_Size&amp;nbsp;+ 0xfff) / 0x1000 * 0x1000;&lt;/P&gt;&lt;P&gt;Soft code dynamically changes with your build to increase to the next flash sector size (note the 0x1000 might change with different MCUs)&lt;/P&gt;&lt;P&gt;Then in your MQX Application reference with something like:&lt;/P&gt;&lt;P&gt;extern unsigned long&amp;nbsp; __BOOT_STACK_ADDRESS[];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then the code __BOOT_STACK_ADDRESS[1] can reference the PC.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I often do a bit of a hack in the application like:&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; unsigned int PC_to_jump_to;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; PC_to_jump_to = *(unsigned int *0x10004);&lt;/P&gt;&lt;P&gt;&amp;nbsp; asm("&amp;nbsp; jmp PC_to_jump_to");&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Obviously you should have code to test that the PC_to_jump_to is a valid (non 0xffffffff) address.&amp;nbsp; If not valid remain in the bootloader.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2012 20:50:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157342#M854</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2012-05-09T20:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157343#M855</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt; &lt;SPAN&gt;David,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;After following&lt;/SPAN&gt; &lt;SPAN&gt;your recommendations&lt;/SPAN&gt;&lt;SPAN&gt;, now I can&lt;/SPAN&gt; &lt;SPAN&gt;use the&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;to write&lt;/SPAN&gt; &lt;SPAN&gt;my application&lt;/SPAN&gt; &lt;SPAN&gt;at the address&lt;/SPAN&gt; &lt;SPAN&gt;I specified&lt;/SPAN&gt; &lt;SPAN&gt;in the&lt;/SPAN&gt; &lt;SPAN&gt;linker&lt;/SPAN&gt; &lt;SPAN&gt;file&lt;/SPAN&gt; &lt;SPAN&gt;and everything&lt;/SPAN&gt; &lt;SPAN&gt;is working fine&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;Coincidentally&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;before reading&lt;/SPAN&gt; &lt;SPAN&gt;your post&lt;/SPAN&gt;&lt;SPAN&gt;, I had the&lt;/SPAN&gt; &lt;SPAN&gt;same idea&lt;/SPAN&gt; &lt;SPAN&gt;you mentioned&lt;/SPAN&gt; &lt;SPAN&gt;and did&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;little "&lt;/SPAN&gt;&lt;SPAN&gt;hack&lt;/SPAN&gt;&lt;SPAN&gt;" to get the&lt;/SPAN&gt; &lt;SPAN&gt;PC&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I found this the&lt;/SPAN&gt; &lt;SPAN&gt;simplest way&lt;/SPAN&gt;&lt;SPAN&gt;, but&lt;/SPAN&gt; &lt;SPAN&gt;also work&lt;/SPAN&gt; &lt;SPAN&gt;in the other&lt;/SPAN&gt; &lt;SPAN&gt;way&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I'm&lt;/SPAN&gt; &lt;SPAN&gt;focusing on&lt;/SPAN&gt; &lt;SPAN&gt;stability and recovery&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;if necessary)&lt;/SPAN&gt; of the &lt;SPAN&gt;bootloader&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;due to the following&lt;/SPAN&gt; &lt;SPAN&gt;situation:&lt;/SPAN&gt; &lt;SPAN&gt;At the beginning of&lt;/SPAN&gt; &lt;SPAN&gt;development&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;the program&lt;/SPAN&gt; &lt;SPAN&gt;constantly&lt;/SPAN&gt; &lt;SPAN&gt;fall into&lt;/SPAN&gt; &lt;SPAN&gt;an&lt;/SPAN&gt; &lt;SPAN&gt;infinite loop&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;a kernel&lt;/SPAN&gt; &lt;SPAN&gt;interruption&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;as I mentioned&lt;/SPAN&gt; &lt;SPAN&gt;before.&lt;/SPAN&gt; &lt;SPAN&gt;Fortunately&lt;/SPAN&gt; &lt;SPAN&gt;it did not happen&lt;/SPAN&gt; &lt;SPAN&gt;more&lt;/SPAN&gt;&lt;SPAN&gt;, but&lt;/SPAN&gt; &lt;SPAN&gt;if&lt;/SPAN&gt; &lt;SPAN&gt;happens again&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;I wish I could&lt;/SPAN&gt; &lt;SPAN&gt;restart the&lt;/SPAN&gt; &lt;SPAN&gt;microcontroller&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;using the&lt;/SPAN&gt; &lt;SPAN&gt;watchdog&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I tried using&lt;/SPAN&gt; &lt;SPAN&gt;_watchdog_create_component&lt;/SPAN&gt; &lt;SPAN&gt;and&lt;/SPAN&gt; &lt;SPAN&gt;_watchdog_start&lt;/SPAN&gt;&lt;SPAN&gt;, to create, start and reset the watchdog value, but&lt;/SPAN&gt; &lt;SPAN&gt;this interruption&lt;/SPAN&gt; &lt;SPAN&gt;of the kernel&lt;/SPAN&gt; &lt;SPAN&gt;seems to have&lt;/SPAN&gt; &lt;SPAN&gt;a higher priority,&lt;/SPAN&gt; &lt;SPAN&gt;or I&lt;/SPAN&gt;&lt;SPAN&gt;'m using the&lt;/SPAN&gt; &lt;SPAN&gt;watchdog&lt;/SPAN&gt; &lt;SPAN&gt;in the wrong way&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;Is there any&lt;/SPAN&gt; &lt;SPAN&gt;way to&lt;/SPAN&gt; &lt;SPAN&gt;reset the&lt;/SPAN&gt; &lt;SPAN&gt;chip&lt;/SPAN&gt; &lt;SPAN&gt;that is fully&lt;/SPAN&gt; &lt;SPAN&gt;guaranteed&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;I mean,&lt;/SPAN&gt; &lt;SPAN&gt;no matter&lt;/SPAN&gt; &lt;SPAN&gt;what it&lt;/SPAN&gt; &lt;SPAN&gt;is running&lt;/SPAN&gt;, &lt;SPAN&gt;like&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;hardware&lt;/SPAN&gt; &lt;SPAN&gt;watchdog&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;Your tips&lt;/SPAN&gt; &lt;SPAN&gt;have&lt;/SPAN&gt; &lt;SPAN&gt;been helpful&lt;/SPAN&gt;&lt;SPAN&gt;!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 02:57:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157343#M855</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-05-10T02:57:10Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157344#M856</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tgomes,&lt;/P&gt;&lt;P&gt;I think the subject of watchdog implementation is equally complex as benchmarking!&lt;/P&gt;&lt;P&gt;There are multiple levels of watchdog capability with ColdFire and FSLMQX.&amp;nbsp; To date I have not found any one to be the best solution but rather a combination of watchdog's being implemented to help make the design more robust.&lt;/P&gt;&lt;P&gt;ColdFire:&lt;/P&gt;&lt;P&gt;The core watchdog must be serviced regularly and the most regular event that occurs is the BSP_TIMER incrementing the system tick.&amp;nbsp; When the core watchdog timers times out (your code is good example) an ISR routine can be used to save off system information (i.e.. log stuff) and then issue a software rest (as your code does).&amp;nbsp; FSLMQX does implement this but by default does not enable/active it as it prevents debugging capability as core watchdog does not stop decrementing when processor is HALTed.&lt;/P&gt;&lt;P&gt;There is also a backup watchdog timer that once it times out the system does a hard rest.&amp;nbsp; This watchdog isn't directly supported other then having its registers defined as well as structure to access/enable it.&amp;nbsp; It is defined in the mcf5225.h header of the PSP...look for MCF5225_WATCHDOG_STRUCT.&lt;/P&gt;&lt;P&gt;FSLMQX:&lt;/P&gt;&lt;P&gt;Lastly MQX has a capability to implement task watchdog timers (reference ~mqx/examples/watchdog) that will ensure task do not fail and if they do then an ISR routine is called and decision as what to do can be done (ex: reset device, kill task and try reset, log stuff, etc.).&amp;nbsp; The example simply logs to terminal which task failed.&amp;nbsp; I enhanced the code to work with multiple tasks as originally it was working with only one.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Placing the watchdog resetting code is&amp;nbsp;a system engineering design verses one method that fits all designs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've attached several examples I have played with in the past but not lately that should help as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 21:19:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157344#M856</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2012-05-10T21:19:43Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157345#M857</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;David,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was able to&lt;/SPAN&gt; &lt;SPAN&gt;simulate the&lt;/SPAN&gt; &lt;SPAN&gt;situation in which&lt;/SPAN&gt; &lt;SPAN&gt;it was not&lt;/SPAN&gt; &lt;SPAN&gt;possible to recover&lt;/SPAN&gt; &lt;SPAN&gt;the system using the&lt;/SPAN&gt; &lt;SPAN&gt;watchdog&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;My&lt;/SPAN&gt; &lt;SPAN&gt;bootloader&lt;/SPAN&gt; &lt;SPAN&gt;has only&lt;/SPAN&gt; &lt;SPAN&gt;one&lt;/SPAN&gt; &lt;SPAN&gt;task&lt;/SPAN&gt;&lt;SPAN&gt;, which&lt;/SPAN&gt; &lt;SPAN&gt;makes&lt;/SPAN&gt; &lt;SPAN&gt;access to&lt;/SPAN&gt; &lt;SPAN&gt;SD&lt;/SPAN&gt; &lt;SPAN&gt;cards&lt;/SPAN&gt; &lt;SPAN&gt;and other&lt;/SPAN&gt; &lt;SPAN&gt;peripherals&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I realized that&lt;/SPAN&gt; &lt;SPAN&gt;the problem&lt;/SPAN&gt; &lt;SPAN&gt;happens when the&lt;/SPAN&gt; &lt;SPAN&gt;stack&lt;/SPAN&gt; &lt;SPAN&gt;reserved for this&lt;/SPAN&gt; &lt;SPAN&gt;single&lt;/SPAN&gt; &lt;SPAN&gt;task&lt;/SPAN&gt; &lt;SPAN&gt;is small&lt;/SPAN&gt;&lt;SPAN&gt;. When accessing the&lt;/SPAN&gt; &lt;SPAN&gt;SD card&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;to create&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;subdirectory&lt;/SPAN&gt;&lt;SPAN&gt;, the application&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;dies&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;and I need to&lt;/SPAN&gt; &lt;SPAN&gt;turn off and on&lt;/SPAN&gt; &lt;SPAN&gt;the board&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;The problem&lt;/SPAN&gt; &lt;SPAN&gt;does not occur when&lt;/SPAN&gt; &lt;SPAN&gt;a larger amount of&lt;/SPAN&gt; stack is &lt;SPAN&gt;reserved&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;How can I&lt;/SPAN&gt; &lt;SPAN&gt;recover from&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;deadlock like&lt;/SPAN&gt; &lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Best regards.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2012 02:55:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157345#M857</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-05-11T02:55:59Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157346#M858</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tgomes,&lt;/P&gt;&lt;P&gt;The attached file has baremetal code (so need to port into MQX) to enable the BWT (backup watchdog timer).&amp;nbsp; The BWT is the ultimate wrapper to reset the ColdFire MCU should a stack go bad and cause lock up.&lt;/P&gt;&lt;P&gt;The BWT is not kicked/serviced, will cause a hard reset.&lt;/P&gt;&lt;P&gt;Please review the clock mode setting at top of file.&lt;/P&gt;&lt;P&gt;In general I have used combinations of watchdogs.&amp;nbsp; With MQX the task watchdog should have short timeout.&amp;nbsp; The core watchdog should have a medium timeout.&amp;nbsp; The BWT should have long timeout.&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2012 20:31:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157346#M858</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2012-05-11T20:31:35Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157347#M859</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;better way to generate reset:&lt;/P&gt;&lt;P&gt;_int_disable();&lt;/P&gt;&lt;P&gt;{ asm ("dsb 0"); }&lt;/P&gt;&lt;P&gt;SCB_AIRCR = ( SCB_AIRCR_VECTKEY(0x05fa) | (SCB_AIRCR &amp;amp; SCB_AIRCR_PRIGROUP_MASK&amp;nbsp;&amp;nbsp;) |&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp; ( SCB_AIRCR_SYSRESETREQ_MASK ) );&lt;/P&gt;&lt;P&gt;{ asm ("dsb 0"); }&lt;/P&gt;&lt;P&gt;while(1)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Maybe MQX should have a&amp;nbsp;reset-function like NVIC_SystemReset, as other platforms have.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;~Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2012 22:23:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157347#M859</guid>
      <dc:creator>MarkP_</dc:creator>
      <dc:date>2012-05-11T22:23:18Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157348#M860</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark,&lt;/P&gt;&lt;P&gt;Yes that is a good software reset solution for the Kinetis architecture.&amp;nbsp; ColdFire is different in that respect.&lt;/P&gt;&lt;P&gt;Good idea to have a MQX SystemReset function.&amp;nbsp; I will pass that along.&amp;nbsp; Should be a simple addition.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 May 2012 21:11:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157348#M860</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2012-05-14T21:11:01Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157349#M861</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hi David&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was able&lt;/SPAN&gt; &lt;SPAN&gt;to reset&lt;/SPAN&gt; &lt;SPAN&gt;using the backup&lt;/SPAN&gt; &lt;SPAN&gt;watchdog&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;However&lt;/SPAN&gt;&lt;SPAN&gt;, how can I&lt;/SPAN&gt; &lt;SPAN&gt;set the time&lt;/SPAN&gt; &lt;SPAN&gt;of this&lt;/SPAN&gt; &lt;SPAN&gt;reset&lt;/SPAN&gt; &lt;SPAN&gt;to occur&lt;/SPAN&gt; &lt;SPAN&gt;at intervals&lt;/SPAN&gt; &lt;SPAN&gt;greater than&lt;/SPAN&gt; &lt;SPAN&gt;7seconds&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;corresponds&lt;/SPAN&gt; &lt;SPAN&gt;to 0xFFFF&lt;/SPAN&gt; &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;WMR&lt;/SPAN&gt; &lt;SPAN&gt;approximately,&lt;/SPAN&gt; &lt;SPAN&gt;in my &lt;SPAN&gt;&lt;SPAN&gt;environment&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;)?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When a&lt;/SPAN&gt; &lt;SPAN&gt;reset&lt;/SPAN&gt; &lt;SPAN&gt;like&lt;/SPAN&gt;&amp;nbsp; "&lt;SPAN&gt;reg_ptr&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN&gt;CCM.RCR&lt;/SPAN&gt; &lt;SPAN&gt;|&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0x80"&lt;/SPAN&gt; &lt;SPAN&gt;happens&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;the value of&lt;/SPAN&gt; &lt;SPAN&gt;WMR&lt;/SPAN&gt; &lt;SPAN&gt;is&lt;/SPAN&gt; &lt;SPAN&gt;also&lt;/SPAN&gt; &lt;SPAN&gt;maintained?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Best regards.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 May 2012 01:41:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157349#M861</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-05-15T01:41:55Z</dc:date>
    </item>
    <item>
      <title>Re: Jumping from bootloader app to user app.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157350#M862</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hello David&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the help&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I finally got to&lt;/SPAN&gt; &lt;SPAN&gt;configure the&lt;/SPAN&gt; &lt;SPAN&gt;watchdog&lt;/SPAN&gt; &lt;SPAN&gt;to a&lt;/SPAN&gt; &lt;SPAN&gt;range that&lt;/SPAN&gt; &lt;SPAN&gt;meets&lt;/SPAN&gt; &lt;SPAN&gt;my needs&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I set&lt;/SPAN&gt; &lt;SPAN&gt;the clock source&lt;/SPAN&gt; of &lt;SPAN&gt;&lt;SPAN&gt;watchdog&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;to be&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;relaxation&lt;/SPAN&gt; &lt;SPAN&gt;oscillator&lt;/SPAN&gt;&lt;SPAN&gt;, which&lt;/SPAN&gt; &lt;SPAN&gt;gave me&lt;/SPAN&gt; &lt;SPAN&gt;a&lt;/SPAN&gt; &lt;SPAN&gt;maximum&lt;/SPAN&gt; &lt;SPAN&gt;delay&lt;/SPAN&gt; &lt;SPAN&gt;of approximately&lt;/SPAN&gt; &lt;SPAN&gt;33s,&lt;/SPAN&gt; &lt;SPAN&gt;which is perfect for&lt;/SPAN&gt; &lt;SPAN&gt;my application&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I have other&lt;/SPAN&gt; &lt;SPAN&gt;doubts&lt;/SPAN&gt; &lt;SPAN&gt;related to&lt;/SPAN&gt; &lt;SPAN&gt;FTP&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I will consider&lt;/SPAN&gt; &lt;SPAN&gt;this topic&lt;/SPAN&gt; &lt;SPAN&gt;closed and&lt;/SPAN&gt; &lt;SPAN&gt;start another&lt;/SPAN&gt; &lt;SPAN&gt;in&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN&gt;RTCS&amp;nbsp; session&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards&lt;/SPAN&gt;&lt;SPAN&gt;!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 May 2012 02:15:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Jumping-from-bootloader-app-to-user-app/m-p/157350#M862</guid>
      <dc:creator>Tgomes</dc:creator>
      <dc:date>2012-05-19T02:15:08Z</dc:date>
    </item>
  </channel>
</rss>

