<?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>S32 Design Studio中的主题 MPC5748G copy vector table from ROM to RAM</title>
    <link>https://community.nxp.com/t5/S32-Design-Studio/MPC5748G-copy-vector-table-from-ROM-to-RAM/m-p/950634#M5221</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would like to get confirmation if I'm doing this correctly.&amp;nbsp; I'm trying to Integrate FNET into my S32 Design Studio project.&amp;nbsp; For FNET to work it needs&amp;nbsp; to install vectors.&amp;nbsp; For this to happen the vector table needs to be in RAM.&amp;nbsp; To move the vector table from ROM to RAM&amp;nbsp; I think you need to do the following, &amp;nbsp;&lt;/P&gt;&lt;P&gt;1) Modify file MPC5748G_ram.ld&amp;nbsp; (I've identified the change I want to make) See cod SNIPET below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CODE SNIPET FROM FILE- MPC5748G_ram.ld&amp;nbsp;&lt;/P&gt;&lt;P&gt;COD SNIPET&amp;nbsp;&lt;/P&gt;&lt;P&gt;.intc_vector_table&amp;nbsp;&amp;nbsp; : ALIGN(4096)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* For FreeRTOS C55 v9.0.0 OSInterruptsHandlerTable must be placed at the same location as __VECTOR_RAM */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;OSInterruptsHandlerTable = .;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /*&amp;nbsp; __VECTOR_TABLE = .;*/&amp;nbsp; &amp;lt;---------------------------------------------------------- I WANT TO COMMENT OUT THIS LINE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_RAM = .;&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; /* No copy */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.intc_vector_table))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Startup code */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; SRAM&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __RAM_VECTOR_TABLE_SIZE = 0x0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) In startup.c, function init_data_bss(void) - See code snippet below,&amp;nbsp; this code should do the copying of the vector table in FLASH to RAM - Is my understanding correct, will this happen as I think? &amp;nbsp; Also who calls function init_data_bss(void) I can't seem to find out where this function is called?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Paul C&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CODE SNIPET FROM FILE: startup.c,&amp;nbsp; FUNCTION:Startup.c&lt;/P&gt;&lt;P&gt;if (__VECTOR_RAM != __VECTOR_TABLE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy the vector table from ROM to RAM */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (n = 0; n &amp;lt; (((uint32_t)__RAM_VECTOR_TABLE_SIZE)/sizeof(uint32_t)); n++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_RAM[n] = __VECTOR_TABLE[n];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Point the VTOR to the position of vector table */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *vectors[coreId] = (uint32_t)__VECTOR_RAM;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 22 Oct 2019 16:55:08 GMT</pubDate>
    <dc:creator>pcandiag</dc:creator>
    <dc:date>2019-10-22T16:55:08Z</dc:date>
    <item>
      <title>MPC5748G copy vector table from ROM to RAM</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/MPC5748G-copy-vector-table-from-ROM-to-RAM/m-p/950634#M5221</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would like to get confirmation if I'm doing this correctly.&amp;nbsp; I'm trying to Integrate FNET into my S32 Design Studio project.&amp;nbsp; For FNET to work it needs&amp;nbsp; to install vectors.&amp;nbsp; For this to happen the vector table needs to be in RAM.&amp;nbsp; To move the vector table from ROM to RAM&amp;nbsp; I think you need to do the following, &amp;nbsp;&lt;/P&gt;&lt;P&gt;1) Modify file MPC5748G_ram.ld&amp;nbsp; (I've identified the change I want to make) See cod SNIPET below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CODE SNIPET FROM FILE- MPC5748G_ram.ld&amp;nbsp;&lt;/P&gt;&lt;P&gt;COD SNIPET&amp;nbsp;&lt;/P&gt;&lt;P&gt;.intc_vector_table&amp;nbsp;&amp;nbsp; : ALIGN(4096)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* For FreeRTOS C55 v9.0.0 OSInterruptsHandlerTable must be placed at the same location as __VECTOR_RAM */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;OSInterruptsHandlerTable = .;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /*&amp;nbsp; __VECTOR_TABLE = .;*/&amp;nbsp; &amp;lt;---------------------------------------------------------- I WANT TO COMMENT OUT THIS LINE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_RAM = .;&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; /* No copy */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.intc_vector_table))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Startup code */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; SRAM&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __RAM_VECTOR_TABLE_SIZE = 0x0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) In startup.c, function init_data_bss(void) - See code snippet below,&amp;nbsp; this code should do the copying of the vector table in FLASH to RAM - Is my understanding correct, will this happen as I think? &amp;nbsp; Also who calls function init_data_bss(void) I can't seem to find out where this function is called?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Paul C&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CODE SNIPET FROM FILE: startup.c,&amp;nbsp; FUNCTION:Startup.c&lt;/P&gt;&lt;P&gt;if (__VECTOR_RAM != __VECTOR_TABLE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy the vector table from ROM to RAM */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (n = 0; n &amp;lt; (((uint32_t)__RAM_VECTOR_TABLE_SIZE)/sizeof(uint32_t)); n++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_RAM[n] = __VECTOR_TABLE[n];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Point the VTOR to the position of vector table */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *vectors[coreId] = (uint32_t)__VECTOR_RAM;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Oct 2019 16:55:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/MPC5748G-copy-vector-table-from-ROM-to-RAM/m-p/950634#M5221</guid>
      <dc:creator>pcandiag</dc:creator>
      <dc:date>2019-10-22T16:55:08Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5748G copy vector table from ROM to RAM</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/MPC5748G-copy-vector-table-from-ROM-to-RAM/m-p/950635#M5222</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Paul,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The interrupt table is copied by default in RAM in &lt;STRONG&gt;init_data_bss&lt;/STRONG&gt;, which is called in &lt;STRONG&gt;startup_MPC5748G.s&lt;/STRONG&gt; before main function entry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can check if the vector is placed in ram by looking into &lt;EM&gt;INTC-&amp;gt;IACKRn&lt;/EM&gt; register. (n is the active core number).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope that this helps,&lt;/P&gt;&lt;P&gt;Rares&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Oct 2019 14:02:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/MPC5748G-copy-vector-table-from-ROM-to-RAM/m-p/950635#M5222</guid>
      <dc:creator>raresvasile</dc:creator>
      <dc:date>2019-10-29T14:02:51Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5748G copy vector table from ROM to RAM</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/MPC5748G-copy-vector-table-from-ROM-to-RAM/m-p/950636#M5223</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Rares,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the feedback.&amp;nbsp; Checked the reference manual for the MPC5748G and what you wrote makes sense.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Paul Candiago&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Oct 2019 11:50:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/MPC5748G-copy-vector-table-from-ROM-to-RAM/m-p/950636#M5223</guid>
      <dc:creator>candiapa</dc:creator>
      <dc:date>2019-10-30T11:50:34Z</dc:date>
    </item>
  </channel>
</rss>

