<?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: External RAM setup in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247435#M7083</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohsin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you defined the&amp;nbsp; __External_RAM _BASE and __External_RAM_END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I.e. in the ICF file (whatever your address are and memory size)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_RAM_BASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x70000000;&lt;BR /&gt;define exported symbol __EXTERNAL_RAM_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00200000;&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; //2 M&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define region &lt;SPAN style="background: white;"&gt;ERAM_region &lt;/SPAN&gt; =&amp;nbsp; mem:[from __EXTERNAL_RAM_BASE to __External_RAM_END]&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 05 Feb 2013 08:41:44 GMT</pubDate>
    <dc:creator>KJFPE</dc:creator>
    <dc:date>2013-02-05T08:41:44Z</dc:date>
    <item>
      <title>External RAM setup</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247434#M7082</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&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; I am using K60N512, MQX3.8 and IAR tools. I am using external RAM in my custom board and it works fine. Now I want to add a new section to my linker file so that I can store the data of my choice in external RAM. I have added a new section &lt;SPAN style="color: #ff0000;"&gt;EXTERNAL_RAM &lt;SPAN style="color: #000000;"&gt;as below. But when I use this linker file, the board does not boot. It looks like somehow the vectors are not being populated correctly. Can anyone please advise the what could be wrong ?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;define memory mem with size = 4G;&lt;/P&gt;&lt;P&gt;define region ROM_region&amp;nbsp;&amp;nbsp; = mem:[from __ICFEDIT_region_ROM_start__&amp;nbsp;&amp;nbsp; to __ICFEDIT_region_ROM_end__];&lt;/P&gt;&lt;P&gt;define region RAM_region&amp;nbsp;&amp;nbsp; = mem:[from __ICFEDIT_region_RAM_start__&amp;nbsp;&amp;nbsp; to __ICFEDIT_region_RAM_end__];&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;define region ERAM_region&amp;nbsp; = mem:[from __EXTERNAL_RAM_BASE to __EXTERNAL_RAM_END ];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External RAM section */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define block KERNEL_DATA with alignment = 8 { section .kernel_data };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __FLASHX_SECT_SIZE = 0x800;&lt;/P&gt;&lt;P&gt;define exported symbol __FLASHX_END_ADDR = __INTERNAL_FLASH_BASE + __INTERNAL_FLASH_SIZE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define block CFMPROTROM with size = 20 { section .cfmconfig };&lt;/P&gt;&lt;P&gt;define block FLASHX_POOL with alignment = __FLASHX_SECT_SIZE { section .flashx };&lt;/P&gt;&lt;P&gt;define block TEXTSECTION with alignment = 4 { section .text };&lt;/P&gt;&lt;P&gt;keep { section .cfmconfig };&lt;/P&gt;&lt;P&gt;keep { section .flashx };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;initialize by copy { readwrite };&lt;/P&gt;&lt;P&gt;do not initialize&amp;nbsp; { section .noinit };&lt;/P&gt;&lt;P&gt;do not initialize&amp;nbsp; { section .kernel_data };&lt;/P&gt;&lt;P&gt;do not initialize&amp;nbsp; { section .flashx };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec, block CFMPROTROM };&lt;/P&gt;&lt;P&gt;place in ROM_region { first block TEXTSECTION, readonly,&amp;nbsp; last block FLASHX_POOL };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;place at address mem:__ICFEDIT_region_RAM_start__ { readwrite section .vectors_ram };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;place in ERAM_region&amp;nbsp; { section EXTERNAL_RAM };&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External RAM section */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;/* each block/segment must be in one line (association to region) because I need kernel data start after other datas */&lt;/P&gt;&lt;P&gt;place in RAM_region&amp;nbsp;&amp;nbsp; { readwrite, last block KERNEL_DATA };&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;Thanks,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;Mohsin&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Feb 2013 17:55:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247434#M7082</guid>
      <dc:creator>Mohsin455</dc:creator>
      <dc:date>2013-02-04T17:55:28Z</dc:date>
    </item>
    <item>
      <title>Re: External RAM setup</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247435#M7083</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohsin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you defined the&amp;nbsp; __External_RAM _BASE and __External_RAM_END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I.e. in the ICF file (whatever your address are and memory size)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_RAM_BASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x70000000;&lt;BR /&gt;define exported symbol __EXTERNAL_RAM_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00200000;&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; //2 M&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define region &lt;SPAN style="background: white;"&gt;ERAM_region &lt;/SPAN&gt; =&amp;nbsp; mem:[from __EXTERNAL_RAM_BASE to __External_RAM_END]&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2013 08:41:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247435#M7083</guid>
      <dc:creator>KJFPE</dc:creator>
      <dc:date>2013-02-05T08:41:44Z</dc:date>
    </item>
    <item>
      <title>Re: External RAM setup</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247436#M7084</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have already defined that. Below is my full linker file. As I add the code marked in BOLD, the program does not even go to _low_level_init().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*###ICF### Section handled by ICF editor, don't touch! ****/&lt;/P&gt;&lt;P&gt;/*-Editor annotation file-*/&lt;/P&gt;&lt;P&gt;/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */&lt;/P&gt;&lt;P&gt;/*-Specials-*/&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_intvec_start__ = 0x0000c800;&lt;/P&gt;&lt;P&gt;/*-Memory Regions-*/&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_region_ROM_start__&amp;nbsp;&amp;nbsp; = 0x0000cc20 ;&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_region_ROM_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x0007F7FF;&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_region_RAM_start__&amp;nbsp;&amp;nbsp; = 0x1fff0000;&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_region_RAM_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x2000FFF0;&lt;/P&gt;&lt;P&gt;/*-Sizes-*/&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_size_cstack__&amp;nbsp;&amp;nbsp; = 0x00;&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_size_heap__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&lt;/P&gt;&lt;P&gt;/**** End of ICF editor section. ###ICF###*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_MRAM_ROM_BASE = 0x70000000;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_MRAM_ROM_SIZE = 0x00000000;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_MRAM_RAM_BASE = 0x70000000;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_MRAM_RAM_SIZE = 0x00080000;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_LCD_BASE = 0x60000000;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_LCD_SIZE = 0x1FFFF;&lt;/P&gt;&lt;P&gt;define exported symbol __EXTERNAL_LCD_DC_BASE = 0x60010000;&lt;/P&gt;&lt;P&gt;define exported symbol __INTERNAL_FLASH_BASE = 0x0000c800;&lt;/P&gt;&lt;P&gt;define exported symbol __INTERNAL_FLASH_SIZE = 0x00073000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;define exported symbol __EXTERNAL_RAM_BASE = 0x70000000;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External RAM */&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;define exported symbol __EXTERNAL_RAM_SIZE = 0x00010000;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External RAM */&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;define exported symbol __EXTERNAL_RAM_END&amp;nbsp; = 0x7000FFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External RAM */&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __INTERNAL_FLEXNVM_BASE = 0;&lt;/P&gt;&lt;P&gt;define exported symbol __INTERNAL_FLEXNVM_SIZE = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __VECTOR_TABLE_ROM_START = 0x0000c800;&lt;/P&gt;&lt;P&gt;define exported symbol __VECTOR_TABLE_RAM_START = __ICFEDIT_region_RAM_start__;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __DEFAULT_PROCESSOR_NUMBER = 1;&lt;/P&gt;&lt;P&gt;define exported symbol __DEFAULT_INTERRUPT_STACK_SIZE = 1024;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* mem_init writes a storeblock_struct at the end of kernel data, max size 32 bytes, so use 0x100 offset */&lt;/P&gt;&lt;P&gt;define exported symbol __BOOT_STACK_ADDRESS = __ICFEDIT_region_RAM_end__ - 0x100;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __KERNEL_DATA_END = __ICFEDIT_region_RAM_end__;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define memory mem with size = 4G;&lt;/P&gt;&lt;P&gt;define region ROM_region&amp;nbsp;&amp;nbsp; = mem:[from __ICFEDIT_region_ROM_start__&amp;nbsp;&amp;nbsp; to __ICFEDIT_region_ROM_end__];&lt;/P&gt;&lt;P&gt;define region RAM_region&amp;nbsp;&amp;nbsp; = mem:[from __ICFEDIT_region_RAM_start__&amp;nbsp;&amp;nbsp; to __ICFEDIT_region_RAM_end__];&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;define region ERAM_region&amp;nbsp; = mem:[from __EXTERNAL_RAM_BASE to __EXTERNAL_RAM_END ];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External RAM section */&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define block KERNEL_DATA with alignment = 8 { section .kernel_data };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define exported symbol __FLASHX_SECT_SIZE = 0x800;&lt;/P&gt;&lt;P&gt;define exported symbol __FLASHX_END_ADDR = __INTERNAL_FLASH_BASE + __INTERNAL_FLASH_SIZE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define block CFMPROTROM with size = 20 { section .cfmconfig };&lt;/P&gt;&lt;P&gt;define block FLASHX_POOL with alignment = __FLASHX_SECT_SIZE { section .flashx };&lt;/P&gt;&lt;P&gt;define block TEXTSECTION with alignment = 4 { section .text };&lt;/P&gt;&lt;P&gt;keep { section .cfmconfig };&lt;/P&gt;&lt;P&gt;keep { section .flashx };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;initialize by copy { readwrite };&lt;/P&gt;&lt;P&gt;do not initialize&amp;nbsp; { section .noinit };&lt;/P&gt;&lt;P&gt;do not initialize&amp;nbsp; { section .kernel_data };&lt;/P&gt;&lt;P&gt;do not initialize&amp;nbsp; { section .flashx };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec, block CFMPROTROM };&lt;/P&gt;&lt;P&gt;place in ROM_region { first block TEXTSECTION, readonly,&amp;nbsp; last block FLASHX_POOL };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;place at address mem:__ICFEDIT_region_RAM_start__ { readwrite section .vectors_ram };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;place in ERAM_region&amp;nbsp; { section EXTERNAL_RAM };&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External RAM section */&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;/* each block/segment must be in one line (association to region) because I need kernel data start after other datas */&lt;/P&gt;&lt;P&gt;place in RAM_region&amp;nbsp;&amp;nbsp; { readwrite, last block KERNEL_DATA };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2013 09:35:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247436#M7084</guid>
      <dc:creator>Mohsin455</dc:creator>
      <dc:date>2013-02-05T09:35:36Z</dc:date>
    </item>
    <item>
      <title>Re: External RAM setup</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247437#M7085</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&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; I was initialising the external RAM at a very late stage. It has to be initialised in _low_level_init(). It all wokring fine and the above linker file is correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mohsin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2013 21:01:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/External-RAM-setup/m-p/247437#M7085</guid>
      <dc:creator>Mohsin455</dc:creator>
      <dc:date>2013-02-05T21:01:56Z</dc:date>
    </item>
  </channel>
</rss>

