<?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 Have a problem replacing static library into another memory in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Have-a-problem-replacing-static-library-into-another-memory/m-p/583486#M20855</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ahubchak on Fri Mar 25 03:06:29 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I need your help. I have been trying to move the emWin static library (.a file) to the internal flash of my device and the rest part of my code is running from the external flash. So I have corrected my linker script to do so. Now it looks like this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//Linker File content &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp; ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
&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; 2011,2012 Giovanni Di Sirio.

&amp;nbsp;&amp;nbsp;&amp;nbsp; This file is part of ChibiOS/RT.

&amp;nbsp;&amp;nbsp;&amp;nbsp; ChibiOS/RT is free software; you can redistribute it and/or modify
&amp;nbsp;&amp;nbsp;&amp;nbsp; it under the terms of the GNU General Public License as published by
&amp;nbsp;&amp;nbsp;&amp;nbsp; the Free Software Foundation; either version 3 of the License, or
&amp;nbsp;&amp;nbsp;&amp;nbsp; (at your option) any later version.

&amp;nbsp;&amp;nbsp;&amp;nbsp; ChibiOS/RT is distributed in the hope that it will be useful,
&amp;nbsp;&amp;nbsp;&amp;nbsp; but WITHOUT ANY WARRANTY; without even the implied warranty of
&amp;nbsp;&amp;nbsp;&amp;nbsp; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the
&amp;nbsp;&amp;nbsp;&amp;nbsp; GNU General Public License for more details.

&amp;nbsp;&amp;nbsp;&amp;nbsp; You should have received a copy of the GNU General Public License
&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; along with this program.&amp;nbsp; If not, see &amp;lt;&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.gnu.org%2Flicenses%2F" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.gnu.org/licenses/&lt;/A&gt;&lt;SPAN&gt;&amp;gt;.&lt;/SPAN&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;&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; A special exception to the GPL can be applied should you wish to distribute
&amp;nbsp;&amp;nbsp;&amp;nbsp; a combined work that includes ChibiOS/RT, without being obliged to provide
&amp;nbsp;&amp;nbsp;&amp;nbsp; the source code for any proprietary components. See the file exception.txt
&amp;nbsp;&amp;nbsp;&amp;nbsp; for full details of how and when the exception can be applied.
*/

/*
 * LPC4357 memory setup.
 */
__main_stack_size__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x0400;
__process_stack_size__&amp;nbsp; = 0x0400;

MEMORY
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; flash (RXI): org = 0x14000000, len = 4096K
&amp;nbsp;&amp;nbsp;&amp;nbsp; ram (RA): org = 0x10000000, len = 32K
&amp;nbsp;&amp;nbsp;&amp;nbsp; ram2 (RA): org = 0x10080000, len = 40K
&amp;nbsp;&amp;nbsp;&amp;nbsp; flashB (RXI): org = 0x1b000000, len = 512K
}

__ram_start__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ORIGIN(ram);
__ram_size__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = LENGTH(ram);
__ram_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = __ram_start__ + __ram_size__;

__ram2_start__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ORIGIN(ram2);
__ram2_size__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = LENGTH(ram2);
__ram2_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = __ram2_start__ + __ram2_size__;


REGION_ALIAS ("REGION_emWin", flashB)

SECTIONS
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; . = 0x14000000;
&amp;nbsp;&amp;nbsp;&amp;nbsp; _text = .;

&amp;nbsp;&amp;nbsp;&amp;nbsp; startup : ALIGN(16) SUBALIGN(16)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(vectors))
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; constructors : ALIGN(4) SUBALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__init_array_start = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(SORT(.init_array.*)))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.init_array))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__init_array_end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; destructors : ALIGN(4) SUBALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__fini_array_start = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.fini_array))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(SORT(.fini_array.*)))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__fini_array_end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

 .gui_text : 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; *emWin*:*&amp;nbsp; *(.text)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flashB

&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; .text : ALIGN(16) SUBALIGN(16)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text.startup.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.rodata)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.rodata.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.glue_7t)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.glue_7)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.gcc*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash


&amp;nbsp;&amp;nbsp;&amp;nbsp; .ARM.extab :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ARM.extab* .gnu.linkonce.armextab.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; .ARM.exidx : {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__exidx_start = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ARM.exidx* .gnu.linkonce.armexidx.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__exidx_end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; .eh_frame_hdr :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.eh_frame_hdr)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; .eh_frame : ONLY_IF_RO
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.eh_frame)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; .textalign : ONLY_IF_RO
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp; _etext = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp; _textdata = _etext;

&amp;nbsp;&amp;nbsp;&amp;nbsp; .stacks :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __main_stack_base__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . += __main_stack_size__;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __main_stack_end__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __process_stack_base__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __main_thread_stack_base__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . += __process_stack_size__;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __process_stack_end__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __main_thread_stack_end__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; ram

.data :
{

}

.data :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_data = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.data)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.data.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ramtext)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_edata = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; ram AT &amp;gt; flash


&amp;nbsp;&amp;nbsp;&amp;nbsp; .bss :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_bss_start = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(COMMON)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_bss_end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; ram2
}

PROVIDE(end = .);
_end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = .;

__heap_base__&amp;nbsp;&amp;nbsp; = __ram_start__;
__heap_end__&amp;nbsp;&amp;nbsp;&amp;nbsp; = __ram_end__;

__heap2_base__&amp;nbsp;&amp;nbsp; = __ram2_start__;
__heap2_end__&amp;nbsp;&amp;nbsp;&amp;nbsp; = __ram2_end__;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I am using the objdump tool to have a look at what is going on, it says that the'.gui_text' section is placed where it's supposed to be. It starts from the 0x1b000000 address. The image is attached.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But after the above mentioned changes, my program is not working correctly anymore. It crashes if I am using debugging step by step instead of breakpoints. And it seems like it is not able to read some of the variables anymore, even though I haven`t changed the '.data' section. Could somebody help me with this? Because I am new in the linker scripts area)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Andrew Hubchak&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:07:36 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:07:36Z</dc:date>
    <item>
      <title>Have a problem replacing static library into another memory</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Have-a-problem-replacing-static-library-into-another-memory/m-p/583486#M20855</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ahubchak on Fri Mar 25 03:06:29 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I need your help. I have been trying to move the emWin static library (.a file) to the internal flash of my device and the rest part of my code is running from the external flash. So I have corrected my linker script to do so. Now it looks like this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//Linker File content &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp; ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
&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; 2011,2012 Giovanni Di Sirio.

&amp;nbsp;&amp;nbsp;&amp;nbsp; This file is part of ChibiOS/RT.

&amp;nbsp;&amp;nbsp;&amp;nbsp; ChibiOS/RT is free software; you can redistribute it and/or modify
&amp;nbsp;&amp;nbsp;&amp;nbsp; it under the terms of the GNU General Public License as published by
&amp;nbsp;&amp;nbsp;&amp;nbsp; the Free Software Foundation; either version 3 of the License, or
&amp;nbsp;&amp;nbsp;&amp;nbsp; (at your option) any later version.

&amp;nbsp;&amp;nbsp;&amp;nbsp; ChibiOS/RT is distributed in the hope that it will be useful,
&amp;nbsp;&amp;nbsp;&amp;nbsp; but WITHOUT ANY WARRANTY; without even the implied warranty of
&amp;nbsp;&amp;nbsp;&amp;nbsp; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the
&amp;nbsp;&amp;nbsp;&amp;nbsp; GNU General Public License for more details.

&amp;nbsp;&amp;nbsp;&amp;nbsp; You should have received a copy of the GNU General Public License
&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; along with this program.&amp;nbsp; If not, see &amp;lt;&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.gnu.org%2Flicenses%2F" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.gnu.org/licenses/&lt;/A&gt;&lt;SPAN&gt;&amp;gt;.&lt;/SPAN&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;&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; A special exception to the GPL can be applied should you wish to distribute
&amp;nbsp;&amp;nbsp;&amp;nbsp; a combined work that includes ChibiOS/RT, without being obliged to provide
&amp;nbsp;&amp;nbsp;&amp;nbsp; the source code for any proprietary components. See the file exception.txt
&amp;nbsp;&amp;nbsp;&amp;nbsp; for full details of how and when the exception can be applied.
*/

/*
 * LPC4357 memory setup.
 */
__main_stack_size__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x0400;
__process_stack_size__&amp;nbsp; = 0x0400;

MEMORY
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; flash (RXI): org = 0x14000000, len = 4096K
&amp;nbsp;&amp;nbsp;&amp;nbsp; ram (RA): org = 0x10000000, len = 32K
&amp;nbsp;&amp;nbsp;&amp;nbsp; ram2 (RA): org = 0x10080000, len = 40K
&amp;nbsp;&amp;nbsp;&amp;nbsp; flashB (RXI): org = 0x1b000000, len = 512K
}

__ram_start__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ORIGIN(ram);
__ram_size__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = LENGTH(ram);
__ram_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = __ram_start__ + __ram_size__;

__ram2_start__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ORIGIN(ram2);
__ram2_size__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = LENGTH(ram2);
__ram2_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = __ram2_start__ + __ram2_size__;


REGION_ALIAS ("REGION_emWin", flashB)

SECTIONS
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; . = 0x14000000;
&amp;nbsp;&amp;nbsp;&amp;nbsp; _text = .;

&amp;nbsp;&amp;nbsp;&amp;nbsp; startup : ALIGN(16) SUBALIGN(16)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(vectors))
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; constructors : ALIGN(4) SUBALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__init_array_start = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(SORT(.init_array.*)))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.init_array))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__init_array_end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; destructors : ALIGN(4) SUBALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__fini_array_start = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.fini_array))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(SORT(.fini_array.*)))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__fini_array_end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

 .gui_text : 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; *emWin*:*&amp;nbsp; *(.text)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flashB

&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; .text : ALIGN(16) SUBALIGN(16)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text.startup.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.rodata)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.rodata.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.glue_7t)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.glue_7)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.gcc*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash


&amp;nbsp;&amp;nbsp;&amp;nbsp; .ARM.extab :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ARM.extab* .gnu.linkonce.armextab.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; .ARM.exidx : {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__exidx_start = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ARM.exidx* .gnu.linkonce.armexidx.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__exidx_end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; .eh_frame_hdr :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.eh_frame_hdr)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; .eh_frame : ONLY_IF_RO
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.eh_frame)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; .textalign : ONLY_IF_RO
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; flash

&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp; _etext = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp; _textdata = _etext;

&amp;nbsp;&amp;nbsp;&amp;nbsp; .stacks :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __main_stack_base__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . += __main_stack_size__;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __main_stack_end__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __process_stack_base__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __main_thread_stack_base__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . += __process_stack_size__;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __process_stack_end__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __main_thread_stack_end__ = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; ram

.data :
{

}

.data :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_data = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.data)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.data.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ramtext)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_edata = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; ram AT &amp;gt; flash


&amp;nbsp;&amp;nbsp;&amp;nbsp; .bss :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_bss_start = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(COMMON)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_bss_end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; ram2
}

PROVIDE(end = .);
_end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = .;

__heap_base__&amp;nbsp;&amp;nbsp; = __ram_start__;
__heap_end__&amp;nbsp;&amp;nbsp;&amp;nbsp; = __ram_end__;

__heap2_base__&amp;nbsp;&amp;nbsp; = __ram2_start__;
__heap2_end__&amp;nbsp;&amp;nbsp;&amp;nbsp; = __ram2_end__;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I am using the objdump tool to have a look at what is going on, it says that the'.gui_text' section is placed where it's supposed to be. It starts from the 0x1b000000 address. The image is attached.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But after the above mentioned changes, my program is not working correctly anymore. It crashes if I am using debugging step by step instead of breakpoints. And it seems like it is not able to read some of the variables anymore, even though I haven`t changed the '.data' section. Could somebody help me with this? Because I am new in the linker scripts area)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Andrew Hubchak&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:07:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Have-a-problem-replacing-static-library-into-another-memory/m-p/583486#M20855</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:07:36Z</dc:date>
    </item>
    <item>
      <title>Re: Have a problem replacing static library into another memory</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Have-a-problem-replacing-static-library-into-another-memory/m-p/583487#M20856</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;bump&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Jun 2016 01:06:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Have-a-problem-replacing-static-library-into-another-memory/m-p/583487#M20856</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-19T01:06:14Z</dc:date>
    </item>
  </channel>
</rss>

