<?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>Kinetis MicrocontrollersのトピックRe: After Moving Vector Table Device Crashes on First IRQ</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/After-Moving-Vector-Table-Device-Crashes-on-First-IRQ/m-p/800186#M48643</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Jim,&lt;/P&gt;&lt;P&gt;Can you tell me the tools and part number you are using?&lt;/P&gt;&lt;P&gt;I have checked the project which is created with KDS tools, this is the definition of __VECTOR_TABLE&lt;/P&gt;&lt;P&gt;If you locate the interrupt table in internal SRAM, in other words, "m_interrupts" is defined as SRAM address, of course, the __VECTOR_TABLE is also in SRAM, in other words, The __VECTOR_TABLE has the same value as "m_interrupts".&lt;/P&gt;&lt;P&gt;Hope it can help you&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;XiangJun rong&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Define output sections */&lt;BR /&gt;SECTIONS&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; /* The startup code goes first into internal flash */&lt;BR /&gt;&amp;nbsp; .interrupts :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_TABLE = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.isr_vector))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Startup code */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp; } &amp;gt; m_interrupts&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 21 Jun 2018 07:12:09 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2018-06-21T07:12:09Z</dc:date>
    <item>
      <title>After Moving Vector Table Device Crashes on First IRQ</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/After-Moving-Vector-Table-Device-Crashes-on-First-IRQ/m-p/800185#M48642</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've updated my linker file, so that the IVT should be located at 0x2300.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x000022F0, LENGTH = 0x00000010&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00002300, LENGTH = 0x00000100&lt;BR /&gt; m_foo_data (RW) : ORIGIN = 0x00002400, LENGTH = 0x00000400&lt;BR /&gt; m_bar_data (RW) : ORIGIN = 0x00002800, LENGTH = 0x00000400&lt;BR /&gt; m_baz_data (RW) : ORIGIN = 0x00002C00, LENGTH = 0x00000400&lt;BR /&gt; m_qux_data (RW) : ORIGIN = 0x00003000, LENGTH = 0x00000400&lt;BR /&gt; m_text (RX) : ORIGIN = 0x00003400, LENGTH = 0x0003CC00&lt;BR /&gt; m_data (RW) : ORIGIN = 0x1FFFE000, LENGTH = 0x00008000&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Upon launching the debugger I can see the IVT at 0x2300, as well as the implemented ISR vectors at their respective offsets, in the memory view.&amp;nbsp; My SCB-&amp;gt;VTOR value is also set to the expected 0x2300.&amp;nbsp; The only other thing I see, which I can't explain, is that when I inspect __VECTOR_TABLE it's value is still 0x20006000.&amp;nbsp; I'm not sure if that's an issue or not.&amp;nbsp; I have only these four ISRs implemented:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;ADC0_IRQn&lt;/LI&gt;&lt;LI&gt;PIT_IRQn&lt;/LI&gt;&lt;LI&gt;TPM2_IRQn&lt;/LI&gt;&lt;LI&gt;LPUART0_IRQn&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone know what's wrong here?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2018 12:56:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/After-Moving-Vector-Table-Device-Crashes-on-First-IRQ/m-p/800185#M48642</guid>
      <dc:creator>pcpro178</dc:creator>
      <dc:date>2018-06-20T12:56:50Z</dc:date>
    </item>
    <item>
      <title>Re: After Moving Vector Table Device Crashes on First IRQ</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/After-Moving-Vector-Table-Device-Crashes-on-First-IRQ/m-p/800186#M48643</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Jim,&lt;/P&gt;&lt;P&gt;Can you tell me the tools and part number you are using?&lt;/P&gt;&lt;P&gt;I have checked the project which is created with KDS tools, this is the definition of __VECTOR_TABLE&lt;/P&gt;&lt;P&gt;If you locate the interrupt table in internal SRAM, in other words, "m_interrupts" is defined as SRAM address, of course, the __VECTOR_TABLE is also in SRAM, in other words, The __VECTOR_TABLE has the same value as "m_interrupts".&lt;/P&gt;&lt;P&gt;Hope it can help you&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;XiangJun rong&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Define output sections */&lt;BR /&gt;SECTIONS&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; /* The startup code goes first into internal flash */&lt;BR /&gt;&amp;nbsp; .interrupts :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_TABLE = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.isr_vector))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Startup code */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp; } &amp;gt; m_interrupts&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2018 07:12:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/After-Moving-Vector-Table-Device-Crashes-on-First-IRQ/m-p/800186#M48643</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2018-06-21T07:12:09Z</dc:date>
    </item>
    <item>
      <title>Re: After Moving Vector Table Device Crashes on First IRQ</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/After-Moving-Vector-Table-Device-Crashes-on-First-IRQ/m-p/800187#M48644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the quick reply.&amp;nbsp; I'm using the MKL17Z256VLH4&amp;nbsp;and Kinetis Design Studio v3.2.0.&amp;nbsp; I thought that my IVT was located in flash.&amp;nbsp; Does it need to be stored in RAM?&amp;nbsp; Perhaps that is the piece I am missing.&amp;nbsp; If so,&amp;nbsp;how does the IVT normally get copied to RAM?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Oddly, in the map file, I can see that both m_interrupts and __VECTOR_TABLE are at address 0x2300.&amp;nbsp; When I look at address 0x2300 in the Memory window I can see my interrupt vectors.&amp;nbsp; However, vector 0 is address 0x20006000, which is the value of __VECTOR_TABLE when viewed in the Expressions&amp;nbsp;window.&amp;nbsp; Interestingly, when the debugger initially launches SCB-&amp;gt;VTOR is 0x2300,&amp;nbsp;but when program execution stops due to the invalid ISV the value of SCB-&amp;gt;VTOR is 0.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2018 13:05:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/After-Moving-Vector-Table-Device-Crashes-on-First-IRQ/m-p/800187#M48644</guid>
      <dc:creator>pcpro178</dc:creator>
      <dc:date>2018-06-22T13:05:08Z</dc:date>
    </item>
  </channel>
</rss>

