<?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: Intermittent problem with USB Host Bootloader starting application on K22 in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420150#M24034</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure about the original poster but I know we are disabling interrupts before we jump to the application.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 11 Jul 2016 11:39:55 GMT</pubDate>
    <dc:creator>adarrow</dc:creator>
    <dc:date>2016-07-11T11:39:55Z</dc:date>
    <item>
      <title>Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420140#M24024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a bootloader project that was based on the AN4368 source (USB Host bootloader) running on a custom board using the K22FN1M0, and most of the time this works fine.&amp;nbsp; On some units however, when the bootloader jumps to the application it appears to freeze.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The application is an MQX4.0 project, and presumably since it works most of the time the linker and other settings are OK.&amp;nbsp; The bootloader never fails to start, as I can see from the message printed by it.&amp;nbsp; I watch the crystal and it always starts, and continues when it should be jumping to the application.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Early in the main application there are some other messages printed, and these never appear when this lock-up occurs.&amp;nbsp; I'm not sure how to debug the main application (or if that's even possible), so I don't know if the main application is starting at all, or if it fails to jump.&amp;nbsp; I will try to add some code earlier in the boot up process that I can use to determine if it's actually starting (like toggling some pin).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The jumping part of the bootloader is essentially the same as the original code, and includes the following:&amp;nbsp; (I cleaned it up a bit to simplify this post.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14412217588185387 jive_text_macro" data-renderedposition="260_8_1232_368" jivemacro_uid="_14412217588185387"&gt;&lt;P&gt;#define IMAGE_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((uint_32_ptr)0x10000)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static void Switch_mode()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Get PC and SP of application region */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New_sp&amp;nbsp; = IMAGE_ADDR[0];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New_pc&amp;nbsp; = IMAGE_ADDR[1];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((New_sp != 0xffffffff) &amp;amp;&amp;amp; (New_pc != 0xffffffff)) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nUSB Bootloader - Executing Application...\n"); /* Run the application */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("New_sp = %X\n", New_sp);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("New_pc = %X\n", New_pc);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; ldr&amp;nbsp;&amp;nbsp; r4,=New_sp&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; ldr&amp;nbsp;&amp;nbsp; sp, [r4]&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; ldr&amp;nbsp;&amp;nbsp; r4,=New_pc&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; ldr&amp;nbsp;&amp;nbsp; r5, [r4]&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; blx&amp;nbsp;&amp;nbsp; r5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I added the print-outs of the New_sp and New_pc values and this is what the output looks like when starting the application.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB Bootloader - Executing Application...&lt;/P&gt;&lt;P&gt;New_sp = 2000FC00&lt;/P&gt;&lt;P&gt;New_pc = 1AEDD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It looks the same whether the main application actually starts or not.&amp;nbsp; I'm not sure about these values, but I'm a little unclear about how this jump is done anyway so I'm assuming these values are correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you think I should be looking on the bootloader side, or the application code?&amp;nbsp; Could there be some hardware factor I should investigate?&amp;nbsp; I saw another forum post that indicated the ARM MSP should be reset to zero, but I don't know if it applies to this situation.&amp;nbsp; &lt;A href="https://community.nxp.com/message/446559" rel="nofollow noopener noreferrer" target="_blank"&gt;Re: Problem of initialization of MQX after jumping to the start of MQX application ( _boot() )&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Angelo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDIT: Update...I tried to do some debugging but couldn't figure out how to debug the main application after being jumped to from the bootloader.&amp;nbsp; I tried to add some I/O changes early but I think it was too early and the program didn't run at all.&amp;nbsp; But then I just loaded the original application directly in Flash (with no bootloader) and tried power-cycling the unit.&amp;nbsp; The main application always starts properly, so it appears that the issue is somehow related to the bootloader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDIT2:&amp;nbsp; Based on the link I included above, I tried to clear the master stack pointer but it didn't seem to make a difference.&amp;nbsp; This is how I did it:&lt;/P&gt;&lt;P&gt;asm&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r4,=New_sp&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sp, [r4]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r4,=0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r5, [r4]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSP, r5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r4,=New_pc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r5, [r4]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r5&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also tried modifying the delay before Switch_mode is called.&amp;nbsp; Presumably this was added to let the button input settle.&amp;nbsp; I tried increasing that wondering if the clock or something else needed more time to settle, and even making it wait 10s before jumping doesn't seem to make it more reliable.&amp;nbsp; In fact it seems that with extra delay (even only ~100ms) it fails more often, but I didn't do a lot of trials to confirm this.&amp;nbsp; I suspect maybe the clock gating or GPIO initialization code might be leaving it in a bad state.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My other thought, going back to the main application code, is that the clock setup is not executing properly.&amp;nbsp; I know the ARM devices have a lot of clock options, and I wonder if the same code which reliably gets the clock started when running from power-up (without the bootloader), does not work as well when jumped to from the bootloader.&amp;nbsp; So maybe it does jump but the application gets stuck in the early clock init.&amp;nbsp; For example there are various places in bsp_cm.c where it waits indefinitely for PLL lock, etc.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Sep 2015 19:58:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420140#M24024</guid>
      <dc:creator>ARQuattr</dc:creator>
      <dc:date>2015-09-02T19:58:51Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420141#M24025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Angelo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is not clear is how the random failures on certain boards actually are:&lt;/P&gt;&lt;P&gt;- are there boards where it never works but others where it always works?&lt;/P&gt;&lt;P&gt;- is it that the loading fails and then the application will always fail (not fully programmed, or programmed with errors?) - that is, if it fails once the application then never starts?&lt;/P&gt;&lt;P&gt;- is it that the loading is successful (the application image in Flash is correct) but the jump to it sometimes works and sometimes doesn't? Or that certain boards never do run (but others do?)&lt;/P&gt;&lt;P&gt;- is it that it fails after loading (after USB has been operating) but works after a reset (if the code is started without enabling any peripherals)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that the uTasker USB-MSD host is now in operation in case you think that it may be the loader part that could be causing unreliability: &lt;A href="https://community.nxp.com/thread/328326"&gt;USB MSD Host Bootloader for K22FN1M0&lt;/A&gt; &lt;/P&gt;&lt;P&gt;In case of continued problems I have developed many loaders and supported many projects (also many using MQX applications) so can probably quickly identify any problems in case your project has special needs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kinetis: &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis.html" rel="nofollow"&gt;µTasker Kinetis support&lt;/A&gt;&lt;/P&gt;&lt;P&gt;K22: &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis/FRDM-K22F.html" rel="nofollow"&gt;µTasker Kinetis FRDM-K22F support&lt;/A&gt;&amp;nbsp; / &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis/TWR-K22F120M.html" rel="nofollow"&gt;µTasker Kinetis TWR-K22F120M support&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;For the complete "out-of-the-box" Kinetis experience and faster time to market&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Sep 2015 21:26:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420141#M24025</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-09-02T21:26:15Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420142#M24026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Mark, sorry I wasn't too clear about the symptoms.&lt;/P&gt;&lt;P&gt;1. We don't have issues loading the S19 from USB to Flash.&amp;nbsp; That part of the bootloader apparently always works fine, and the bootloader code always seems to start.&lt;/P&gt;&lt;P&gt;2. After the bootloader starts, on most devices it reliably jumps to the application, but on some devices and only in some cases, it will fail to jump to the main application.&lt;/P&gt;&lt;P&gt;3. On those devices where this issue is occurring, it can be easily reproduced by power-cycling.&amp;nbsp; Sometimes the application will start, and other times it won't.&amp;nbsp; It seems to be more likely to happen when powering off then on quickly.&amp;nbsp; This again makes me feel there is some hardware component to the problem, but as mentioned, watching the crystal oscillate with no noticeable delays or interruptions makes me feel it's perhaps some random register state, or other firmware related issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will check out your bootloader and let you know how it works.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Angelo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Sep 2015 13:13:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420142#M24026</guid>
      <dc:creator>ARQuattr</dc:creator>
      <dc:date>2015-09-03T13:13:13Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420143#M24027</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;A couple of things jump out – first of all, the PC and SP values that you see are coming from the header of the S19 file.&amp;nbsp; These values are dictated by the compiler at link time.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;Example S19 file header, 2nd line (spaces added for clarity):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;S3510000A000 00FC0020 F1220100....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;so app will load at 0x0000A000 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;SP will be set to 0x2000FC00 (read little Endian)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;PC will be set to 0x000122F1&lt;SPAN style="color: #1f497d;"&gt; (read little Endian)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;The printf's added to the original AN4368 make it easy to detect an error in these values.&amp;nbsp; The AN4368 bootloader "lives" in an area of Flash below the app in the memory space, and it must be protected from overwriting obviously.&amp;nbsp; So the app must have all of it's code past the end of the bootloader.&amp;nbsp; Bootloader uses IMAGE_ADDR to set the start of usable memory where the app can reside.&amp;nbsp; It is important that your linker file have the same start point for the app to agree with IMAGE_ADDR.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;For an MQX project that I'm using with AN4368 type loader, I have two linker files, one for debugging without loader, and the other for production.&amp;nbsp; Below is the start of linker file for a K70 project, basically the default settings kicked out by CW for an MQX example:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; vectorrom&amp;nbsp;&amp;nbsp; (RX): ORIGIN = 0x00000000, LENGTH = 0x00000400&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cfmprotrom&amp;nbsp; (R):&amp;nbsp; ORIGIN = 0x00000400, LENGTH = 0x00000020&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rom&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RX): ORIGIN = 0x00000420, LENGTH = 0x000FFBE0&amp;nbsp; # Code + Const data&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ram&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW): ORIGIN = 0x70000000, LENGTH = 0x08000000&amp;nbsp; # DDR2 - RW data&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; sram&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW): ORIGIN = 0x1FFF0000, LENGTH = 0x00020000&amp;nbsp; # SRAM - RW data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now this is the production mapping when using the loader (note change in location of "rom"):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; vectorrom&amp;nbsp;&amp;nbsp; (RX): ORIGIN = 0x0000A000, LENGTH = 0x00000400&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;&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;lt;---- this agrees with IMAGE_ADDR in bloader&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cfmprotrom&amp;nbsp; (R):&amp;nbsp; ORIGIN = 0x0000A400, LENGTH = 0x00000020&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rom&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RX): ORIGIN = 0x0000A420, LENGTH = 0x000F5BE0&amp;nbsp; # Code + Const data&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ram&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW): ORIGIN = 0x70000000, LENGTH = 0x08000000&amp;nbsp; # DDR2 - RW data&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; sram&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW): ORIGIN = 0x1FFF0000, LENGTH = 0x00020000&amp;nbsp; # SRAM - RW data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also make sure you have enabled RAM usage for the MQX vector table!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is possible to debug the startup of the app from the loader, but it's a bit of a nightmare.&amp;nbsp; However it is essential to do this if you have some kind of clock startup issue in the app, so here is how I've done it:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Load up the debug version of app in CW, have it halt at startup entry point (not 'main' in your app, I mean the startup code itself).&lt;/P&gt;&lt;P&gt;2. Step through the startup code, or set breakpoint to halt at the jump to the MQX app (startup code varies with processor, but you will find a 'jsr' to main somewhere)&lt;/P&gt;&lt;P&gt;3. Step into the jsr to main app entry and follow through the code in disassembly mode.&amp;nbsp; You can use 'step over' for this.&lt;/P&gt;&lt;P&gt;4. When you get accustomed to the disassembly of the app's startup it get's easier.&amp;nbsp; We really only need to see where CLKs', PLL and GPIO get set up.&lt;/P&gt;&lt;P&gt;5. This is the hard part:&amp;nbsp; get a printout of the disassembled code.&amp;nbsp; CW doesn't lend to doing this, so I had to capture screens using Windows ALT-PRTSC to capture to clipboard and then stick each screen shot in a Word or WordPad document.&amp;nbsp; Now you have an image of the disassembled MQX startup code.&lt;/P&gt;&lt;P&gt;6. Presuming that you have a good app, set up CW to debug the bootloader.&amp;nbsp; Put a breakpoint in the 'Switch_mode' func ahead of the jump to app.&lt;/P&gt;&lt;P&gt;7. Run the loader, and let it load the app.&amp;nbsp; It will halt at 'Switch_mode'.&lt;/P&gt;&lt;P&gt;8. Step into your app from the loader.&amp;nbsp; Unfortunately, all you will see is the disassembled code (that's why we did printout earlier).&lt;/P&gt;&lt;P&gt;9. The big debug technique:&amp;nbsp; use 'step over' until you hit something that fails.&amp;nbsp; It will be obvious because CW will barf up with bad memory space and control will be lost if the clocks are not initialized, or the app will lock up like you said, waiting for PLL lock.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is all very messy, but I found that my app crashed very early on so it was entirely practical to do the steps above.&amp;nbsp; When the chips are down (pun intended) you have to resort to this level of debug, which effectively takes us back to the programmer's world of 1980.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another observation:&amp;nbsp; if you can set triggers in your app like using GPIO pin toggle, or serial I/O output, so you can see if app is running very early on.&amp;nbsp; If the pulse period or serial output is wrong, then you clearly have clock setup problem.&amp;nbsp; Best way to debug this is to run the app by itself, and presuming it runs successfully then halt somewhere and go to the various CPU peripheral regs and capture (screenshots again, CW has no capture or print for this) all the important regs for the successfully running app.&amp;nbsp; Then compare those regs for the unsuccessful bootload of the app to see what's different.&amp;nbsp; You will have to either explain away the differences, or you will stumble into a critical difference that is the source of error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This whole discussion of course relies on the problem being in software, not hardware.&amp;nbsp; You must verify that VCC and RESET on the CPU is to spec and there's not some other hardware issue.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Sep 2015 16:37:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420143#M24027</guid>
      <dc:creator>talktrn</dc:creator>
      <dc:date>2015-09-03T16:37:20Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420144#M24028</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Angelo:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If your projects are based in CodeWarrior then a very good option to resolve this kind of problem is to debug the bootloader + application in the same debug session, this way you can approach to the problem and see if it's the bootloader or the application failing. Check the next tutorial about how to do that with CodeWarrior:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://mcuoneclipse.com/2012/12/08/adding-symbols-to-the-codewarrior-debugger/" title="http://mcuoneclipse.com/2012/12/08/adding-symbols-to-the-codewarrior-debugger/"&gt;Adding Symbols to the CodeWarrior Debugger | MCU on Eclipse&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards!&lt;/P&gt;&lt;P&gt;Jorge Gonzalez&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Sep 2015 19:37:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420144#M24028</guid>
      <dc:creator>Jorge_Gonzalez</dc:creator>
      <dc:date>2015-09-03T19:37:00Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420145#M24029</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Doug for your reply.&amp;nbsp; The S19 I'm loading does follow what you wrote, and the vector is 0x10000, which matches the linker file (copied partially below).&amp;nbsp; I was mostly confused about the 0x2000FC00 part as I didn't see how it got that from the linker file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; vectorrom&amp;nbsp;&amp;nbsp; (RX): ORIGIN = 0x00010000, LENGTH = 0x00000400&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cfmprotrom&amp;nbsp; (RX): ORIGIN = 0x00010400, LENGTH = 0x00000020&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rom&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RX): ORIGIN = 0x00010420, LENGTH = 0x0006FB00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ram&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW): ORIGIN = 0x20000000, LENGTH = 0x00010000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, I double-checked that the vector table is not in ROM.&amp;nbsp; I had tried to set some GPIO early as mentioned above but it didn't work for some reason and I didn't continue to determine what was wrong.&amp;nbsp; I may try that again.&amp;nbsp; I looked through your steps for debugging and they look painful, but I may have to give it a try.&amp;nbsp; Good thought though about comparing registers for the good and bad start cases.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Angelo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Sep 2015 02:18:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420145#M24029</guid>
      <dc:creator>ARQuattr</dc:creator>
      <dc:date>2015-09-04T02:18:26Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420146#M24030</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Jorge, that's a great tip!&amp;nbsp; I will probably try that next.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Sep 2015 02:23:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420146#M24030</guid>
      <dc:creator>ARQuattr</dc:creator>
      <dc:date>2015-09-04T02:23:12Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420147#M24031</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Using the technique Jorge provided, I did some debugging and found that the bootloader always jumps to the main application.&amp;nbsp; After repeated iterations and stepping through and setting breakpoints, I found a line of code (line 825 of bsp_cm.c in the bsp_twrk21f120m project) which always gets reached on every reset, but which it does not always get past.&amp;nbsp; So, if I set only one breakpoint at line 825 it always stops there, but if I set only one breakpoint at line 830 (which is the next line of code) it does not always reach it.&amp;nbsp; But I also found that if I break at that line 825, after resuming the code executes properly.&amp;nbsp; It's as though some settling time is needed after executing line 825.&amp;nbsp; To quickly check this theory, I added a simple for loop between line 825 and 830, and this fixes the problem, i.e. the application code always executes normally.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Although this appears to fix the issue, I feel that I haven't found the root cause, and would like to understand better why this workaround stops the problem.&amp;nbsp; Maybe it is still something in the bootloader, which for example leaves certain clock registers in a state that lets this symptom appear.&amp;nbsp; (Remember when the application is loaded directly in Flash without the bootloader, it always starts.) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The code I mentioned is in the __pe_initialize_hardware function.&amp;nbsp; This is line 825:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* System clock initialization */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=1,OUTDIV3=3,OUTDIV4=3,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1(0x00) |&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; SIM_CLKDIV1_OUTDIV2(0x01) |&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; SIM_CLKDIV1_OUTDIV3(0x03) |&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; SIM_CLKDIV1_OUTDIV4(0x03); /* Set the system prescalers to safe value */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and this is line 830:&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_SCGC5: PORTD=1,PORTC=1,PORTA=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_PORTD_MASK |&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; SIM_SCGC5_PORTC_MASK |&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; SIM_SCGC5_PORTA_MASK;&amp;nbsp;&amp;nbsp; /* Enable clock gate for ports to enable pin routing */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The line I added between these which fixed the issue was (i is type int):&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (i=0;i&amp;lt;1000000;i++);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This was my first guess at a loop count and I didn't try lower values to see where it stops working.&amp;nbsp; I'd rather not need any delay, if I could find the root cause.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I noticed that the clock gating is enabled to all ports (A, B, C, D, and E) in the bootloader, and here only for A, C, and D.&amp;nbsp; Unless this register was cleared earlier, it seems to me that the masks for ports B and E would still be enabled from when the bootloader did it.&amp;nbsp; I don't see though why that would cause an issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Angelo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2015 18:51:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420147#M24031</guid>
      <dc:creator>ARQuattr</dc:creator>
      <dc:date>2015-09-07T18:51:09Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420148#M24032</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Angelo, did you ever find the root cause of this problem? We are having almost the exact same problem and we are suspecting some sort of clock init/deinit issue when the bootloader jumps to the application.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jul 2016 14:22:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420148#M24032</guid>
      <dc:creator>adarrow</dc:creator>
      <dc:date>2016-07-07T14:22:21Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420149#M24033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Consolas, 'Courier New', Courier, mono, serif;"&gt;&lt;SPAN style="font-size: 9pt !important; font-style: inherit; font-weight: inherit;"&gt;I'm not &lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;familiar&lt;/SPAN&gt;&lt;SPAN style="font-size: 9pt !important; font-style: inherit; font-weight: inherit;"&gt; with the code you are discussing, so perhaps I'm being Mr Obvious here.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: inherit; color: #000000; font-weight: inherit; font-size: 9pt !important; font-family: Consolas, 'Courier New', Courier, mono, serif; font-style: inherit;"&gt;Are interrupts disabled when the code below is run?&amp;nbsp; If not that will explain many of the rare crashes.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: inherit; color: #000000; font-family: Consolas, 'Courier New', Courier, mono, serif;"&gt;&lt;SPAN style="font-size: 9pt !important; font-style: inherit; font-weight: inherit;"&gt;Bootloader IRQs still running before the new main() application has &lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;reinitialized&lt;/SPAN&gt;&lt;SPAN style="font-size: 9pt !important; font-style: inherit; font-weight: inherit;"&gt; for the new environment.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;OL class="dp-cpp" start="1" style="margin-bottom: 1px !important; margin-left: 45px !important;"&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;/LI&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; color: black; font-size: 9pt !important; background-color: inherit;"&gt; asm&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; color: black; font-size: 9pt !important; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; color: black; font-size: 9pt !important; background-color: inherit;"&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; ldr&amp;nbsp;&amp;nbsp; r4,=New_sp&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; color: black; font-size: 9pt !important; background-color: inherit;"&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; ldr&amp;nbsp;&amp;nbsp; sp, [r4]&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; color: black; font-size: 9pt !important; background-color: inherit;"&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; ldr&amp;nbsp;&amp;nbsp; r4,=New_pc&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; color: black; font-size: 9pt !important; background-color: inherit;"&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; ldr&amp;nbsp;&amp;nbsp; r5, [r4]&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; color: black; font-size: 9pt !important; background-color: inherit;"&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; blx&amp;nbsp;&amp;nbsp; r5&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #5c5c5c; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; color: black; font-size: 9pt !important; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jul 2016 12:03:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420149#M24033</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2016-07-08T12:03:47Z</dc:date>
    </item>
    <item>
      <title>Re: Intermittent problem with USB Host Bootloader starting application on K22</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420150#M24034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure about the original poster but I know we are disabling interrupts before we jump to the application.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Jul 2016 11:39:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Intermittent-problem-with-USB-Host-Bootloader-starting/m-p/420150#M24034</guid>
      <dc:creator>adarrow</dc:creator>
      <dc:date>2016-07-11T11:39:55Z</dc:date>
    </item>
  </channel>
</rss>

