<?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>MQX Software SolutionsのトピックRe: Interrupts not working after loading app with bootloader</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270082#M8217</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do you use 2 sets of MQX? I mean. There is an instance of MQX in bootloader and another in app?&lt;/P&gt;&lt;P&gt;If you have 2 copies and (of course) you are using RAM vectors, you only need to jump to the __boot method address on application part. The vectos will be copied automaticaly in boot process.&lt;/P&gt;&lt;P&gt;You can use the same trick if your bootloader is baremetal. You only need to take into account to set the correct addresses in lcf file.&lt;/P&gt;&lt;P&gt;If you use a baremetal bootloader, you can use a single lcf file to link the bootloader and MQX application together. If you want to use 2 copies of MQX, I didn't found a way to do it with a single link. You must do 2 different projects.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 16 Jul 2013 10:24:38 GMT</pubDate>
    <dc:creator>ivanpajuelo</dc:creator>
    <dc:date>2013-07-16T10:24:38Z</dc:date>
    <item>
      <title>Interrupts not working after loading app with bootloader</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270080#M8215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Fellow MQX People,&lt;/P&gt;&lt;P&gt;Running this on a K20DX256ZVMD10 using MQX4.0 and CW10.3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have an app using an interrupt from SPI and everything works great if I load and start the app from address 0x0000_0000. I put the SPI interrupt ISR directly into vectors.c &lt;/P&gt;&lt;P&gt;Next, I fired up the MSD bootloader to bootload starting at address 0x0000_C000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Next, in the app:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Set '#define MQX_ROM_VECTORS&amp;nbsp;&amp;nbsp; 0' in user_config.h and small_ram_config.h&lt;/LI&gt;&lt;LI&gt;Changed intflash.lcf to:&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; vectorrom&amp;nbsp;&amp;nbsp; (RX): ORIGIN = 0x0000C000, LENGTH = 0x00000400&amp;nbsp; # TJ changed from 0000 to C000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cfmprotrom&amp;nbsp; (RX): ORIGIN = 0x0000C400, LENGTH = 0x00000020&amp;nbsp; # TJ changed from 0400 to C400&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 = 0x0000C420, LENGTH = 0x00033BE0&amp;nbsp; # Code + Const data TJ changed from 0420 to C420, &amp;amp; 3FBE0 to 33BE0&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 = 0x1FFF8000, LENGTH = 0x00010000&amp;nbsp; # SRAM - RW data&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 3. Cleaned the project and re-built. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, after I load the application with the bootloader and restart, the application loads and runs but the SPI interrupt never gets serviced.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Looking at the SRAM area where the &lt;STRONG&gt;vector table&lt;/STRONG&gt; should have been copied to, address 0x1FFF_8000, I do not see my SPI ISR vector in the table. ??? n&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know there must be something simple I missed (I hope!)&lt;/P&gt;&lt;P&gt;Any ideas or help is much appreciated.&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Jul 2013 21:04:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270080#M8215</guid>
      <dc:creator>cavebiker</dc:creator>
      <dc:date>2013-07-12T21:04:15Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts not working after loading app with bootloader</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270081#M8216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I copied my SPI2 interrupt vector from address 0x0000_C0B0 in FLASH to the SRAM vector area at 0x1FFF_80B0 and now everything works (SPI2 is my only external interrupt).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So the only thing MQX is not doing for me automatically is copying my external interrupt vectors to the SRAM area. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone know of a way to fix this problem without adding code to manually copy the vectors to SRAM?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Jul 2013 20:30:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270081#M8216</guid>
      <dc:creator>cavebiker</dc:creator>
      <dc:date>2013-07-15T20:30:34Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts not working after loading app with bootloader</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270082#M8217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do you use 2 sets of MQX? I mean. There is an instance of MQX in bootloader and another in app?&lt;/P&gt;&lt;P&gt;If you have 2 copies and (of course) you are using RAM vectors, you only need to jump to the __boot method address on application part. The vectos will be copied automaticaly in boot process.&lt;/P&gt;&lt;P&gt;You can use the same trick if your bootloader is baremetal. You only need to take into account to set the correct addresses in lcf file.&lt;/P&gt;&lt;P&gt;If you use a baremetal bootloader, you can use a single lcf file to link the bootloader and MQX application together. If you want to use 2 copies of MQX, I didn't found a way to do it with a single link. You must do 2 different projects.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Jul 2013 10:24:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270082#M8217</guid>
      <dc:creator>ivanpajuelo</dc:creator>
      <dc:date>2013-07-16T10:24:38Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts not working after loading app with bootloader</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270083#M8218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Tom,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;have these suggestions helped you out?&lt;/P&gt;&lt;P&gt;Please let us know :smileywink:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Monica.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Jul 2013 00:10:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Interrupts-not-working-after-loading-app-with-bootloader/m-p/270083#M8218</guid>
      <dc:creator>Monica</dc:creator>
      <dc:date>2013-07-26T00:10:01Z</dc:date>
    </item>
  </channel>
</rss>

