<?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>CodeWarrior Development ToolsのトピックRe: Porting LCF file to LD</title>
    <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899265#M7588</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Sebastian. For your information i want to avoid dead striping of constant values(FORCE ACTIVE keyword used) . So using volatile is not a good idea i think so...&lt;/P&gt;&lt;P&gt;Also how to relocate strings in external flash? Please help me..!&lt;/P&gt;&lt;P&gt;Thank and regards,&lt;/P&gt;&lt;P&gt;Anand&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 May 2019 08:36:48 GMT</pubDate>
    <dc:creator>anand_s</dc:creator>
    <dc:date>2019-05-10T08:36:48Z</dc:date>
    <item>
      <title>Porting LCF file to LD</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899261#M7584</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; We are using a product based board with K60 MCU in it.. Due to insufficient memory we changed the MCU to K66. We are using Codewarrior version 10.6.4 and MQX version 4.2.2. Now i am trying to port the linker file because the old one uses Codewarrior compiler(LCF file) new one is GCC compiler(LD file). I found a porting guide but its insufficient for us.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The LCF file uses keywords such as FORCE_ACTIVE, OBJECT. I cant find the exact replacement of these in LD File.&lt;/P&gt;&lt;P&gt;Please help to solve this issue.&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Anand.S&lt;/P&gt;&lt;P&gt;k60_linker‌ ,&amp;nbsp;porting lcf file‌keyword‌&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 May 2019 10:24:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899261#M7584</guid>
      <dc:creator>anand_s</dc:creator>
      <dc:date>2019-05-02T10:24:56Z</dc:date>
    </item>
    <item>
      <title>Re: Porting LCF file to LD</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899262#M7585</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Anand, I hope you’re well,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you think you could please share with me the .lcf&amp;nbsp; you're talking about so I can more closely see what code sections you're referring to? Or at least some of the context around these sentences you're describing?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is to check exactly which sentences you can't find an equivalent to, because some are not needed on newer linker file versions (such as the .ld form of linker files used by the GCC compiler).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Sebastian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 May 2019 19:20:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899262#M7585</guid>
      <dc:creator>Sebastian_Del_Rio</dc:creator>
      <dc:date>2019-05-06T19:20:07Z</dc:date>
    </item>
    <item>
      <title>Re: Porting LCF file to LD</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899263#M7586</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you so much Sebastian. I am attaching the .LCF file below. Please go through it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt; # Temporarily granted more space for user app&lt;BR /&gt; #vectorrom (RX): ORIGIN = 0x00083000, LENGTH = 0x00000400&lt;BR /&gt; #cfmprotrom (RX): ORIGIN = 0x00083400, LENGTH = 0x00000020 &lt;BR /&gt; #rom (RX): ORIGIN = 0x00083420, LENGTH = 0x0007CBE0 # Code + Const data&lt;BR /&gt; vectorrom (RX): ORIGIN = 0x0004B000, LENGTH = 0x00000400&lt;BR /&gt; cfmprotrom (RX): ORIGIN = 0x0004B400, LENGTH = 0x00000020 &lt;BR /&gt; rom (RX): ORIGIN = 0x0004B420, LENGTH = 0x000B4BD0 # Code + Const data&lt;BR /&gt; fwver_mark (RW): ORIGIN = 0x000FFFF0, LENGTH = 0x00000008 # FW Ver marker&lt;BR /&gt; end_mark (RW): ORIGIN = 0x000FFFF8, LENGTH = 0x00000008 # FW End marker&lt;BR /&gt; ram (RW): ORIGIN = 0x1FFF0000, LENGTH = 0x00020000 # SRAM - RW data&lt;BR /&gt; #ext_ram (RW): ORIGIN = 0x60000000, LENGTH = 0x00080000 # External SRAM - RW Data&lt;BR /&gt; ext_ram (RW): ORIGIN = 0x60000000, LENGTH = 0x00060000 # External SRAM - RW Data&lt;BR /&gt; ext_ram_txt (RX): ORIGIN = 0x60060000, LENGTH = 0x00020000 # External SRAM - RX text&lt;BR /&gt; ext_flash (RW): ORIGIN = 0x70000000, LENGTH = 0x000A0000 # External Flash - RW Data&lt;BR /&gt; ext_flash_txt (RX): ORIGIN = 0x70080000, LENGTH = 0x00200000 # External Flash for txt - RX Data&lt;/P&gt;&lt;P&gt;# kernel space starts after RAM variables (Location of MQX Kernel data + MQX heap)&lt;BR /&gt; end_of_kd (RW): ORIGIN = 0x2000FFF0, LENGTH = 0x00000000&lt;BR /&gt; &lt;BR /&gt; # Boot stack reused by MQX Kernel data&lt;BR /&gt; bstack (RW): ORIGIN = 0x2000FA00, LENGTH = 0x00000200 # Boot stack&lt;BR /&gt; end_bstack (RW): ORIGIN = 0x2000FC00, LENGTH = 0x00000000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;KEEP_SECTION { .vectors_rom, .vectors_ram, .cfmconfig, .endmark , .fwvermark}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;FORCE_ACTIVE&lt;/STRONG&gt; {g_engString, g_engStringSize, &lt;BR /&gt; g_frenchString, g_frenchStringSize, &lt;BR /&gt; g_germanString, g_germanStringSize,&lt;BR /&gt; g_spanishString, g_spanishStringSize,&lt;BR /&gt; g_UIPageStoreSize,g_UIPageStoreMenu,&lt;BR /&gt; g_UIPageSignature,&lt;BR /&gt; g_flashUIDataEndMark}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SECTIONS&lt;BR /&gt;{&lt;BR /&gt; __INTERNAL_SRAM_BASE = 0x1FFF0000;&lt;BR /&gt; __INTERNAL_SRAM_SIZE = 0x00020000;&lt;BR /&gt; __SRAM_POOL = 0x2000FFF0;&lt;/P&gt;&lt;P&gt;__INTERNAL_FLASH_BASE = 0x00000000;&lt;BR /&gt; __INTERNAL_FLASH_SIZE = 0x00100000;&lt;/P&gt;&lt;P&gt;__INTERNAL_FLEXNVM_BASE = 0;&lt;BR /&gt; __INTERNAL_FLEXNVM_SIZE = 0;&lt;BR /&gt; &lt;BR /&gt; __UNCACHED_DATA_START = 0x1FFF0000;&lt;BR /&gt; __UNCACHED_DATA_SIZE = 0x00020000;&lt;BR /&gt; __UNCACHED_DATA_END = 0x2000FFF0;&lt;BR /&gt; &lt;BR /&gt; __EXTERNAL_MRAM_BASE = 0x60000000;&lt;BR /&gt; __EXTERNAL_MRAM_SIZE = 0x00080000;&lt;BR /&gt; __EXTERNAL_MRAM_ROM_BASE = 0x60000000;&lt;BR /&gt; __EXTERNAL_MRAM_ROM_SIZE = 0x00000000;&lt;BR /&gt; __EXTERNAL_MRAM_RAM_BASE = 0x60000000;&lt;BR /&gt; __EXTERNAL_MRAM_RAM_SIZE = 0x00080000;&lt;/P&gt;&lt;P&gt;__EXTERNAL_LCD_BASE = 0x60000000;&lt;BR /&gt; __EXTERNAL_LCD_SIZE = 0x1FFFF;&lt;BR /&gt; __EXTERNAL_LCD_DC_BASE = 0x60010000;&lt;/P&gt;&lt;P&gt;# MQX link time configurations&lt;BR /&gt; __DEFAULT_PROCESSOR_NUMBER = 1;&lt;BR /&gt; __DEFAULT_INTERRUPT_STACK_SIZE = 1024;&lt;BR /&gt; __KERNEL_DATA_VERIFY_ENABLE = 0; # Test SDRAM read/write&lt;/P&gt;&lt;P&gt;# Flashx configurations&lt;BR /&gt; __FLASHX_SECT_SIZE = 0x1000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;.vectors :&lt;BR /&gt; {&lt;BR /&gt; __VECTOR_TABLE_ROM_START = .; # Runtime vector table in sram&lt;BR /&gt; *(.vectors_rom)&lt;BR /&gt; . = ALIGN (0x4); &lt;BR /&gt; } &amp;gt; vectorrom&lt;/P&gt;&lt;P&gt;.cfmprotect :&lt;BR /&gt; {&lt;BR /&gt; *(.cfmconfig)&lt;BR /&gt; . = ALIGN (0x4);&lt;BR /&gt; } &amp;gt; cfmprotrom&lt;/P&gt;&lt;P&gt;.main_application :&lt;BR /&gt; {&lt;BR /&gt; *(KERNEL)&lt;BR /&gt; *(S_BOOT)&lt;BR /&gt; *(IPSUM)&lt;BR /&gt; *(.text)&lt;BR /&gt; *(.init)&lt;BR /&gt; *(.fini)&lt;BR /&gt; *(.eini)&lt;BR /&gt; *(.ctors)&lt;BR /&gt; *(.dtors)&lt;BR /&gt; . = ALIGN(0x4);&lt;BR /&gt; *(.rodata)&lt;BR /&gt; . = ALIGN(0x4);&lt;BR /&gt; *(.rdata)&lt;BR /&gt; . = ALIGN(0x4);&lt;BR /&gt; *(.exception)&lt;BR /&gt; . = ALIGN(0x4);&lt;BR /&gt; __exception_table_start__ = .;&lt;BR /&gt; EXCEPTION&lt;BR /&gt; __exception_table_end__ = .;&lt;BR /&gt; __sinit__ = .;&lt;BR /&gt; STATICINIT&lt;/P&gt;&lt;P&gt;. = ALIGN(0x4);&lt;BR /&gt; __COPY_OF_DATA = .;&lt;BR /&gt; } &amp;gt; rom&lt;/P&gt;&lt;P&gt;.main_application_data : AT(__COPY_OF_DATA)&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(128);&lt;BR /&gt; __VECTOR_TABLE_RAM_START = .; # Runtime vector table in sram&lt;BR /&gt; *(.vectors_ram)&lt;/P&gt;&lt;P&gt;. = ALIGN(512);&lt;BR /&gt; __BDT_BASE = .;&lt;BR /&gt; *(.usb_bdt)&lt;BR /&gt; __BDT_END = .;&lt;BR /&gt; &lt;BR /&gt; __START_DATA = .;&lt;BR /&gt; *(.data)&lt;BR /&gt; __END_DATA = .;&lt;/P&gt;&lt;P&gt;. = ALIGN(0x4);&lt;BR /&gt; __START_SDATA = .;&lt;BR /&gt; *(.sdata)&lt;BR /&gt; __END_SDATA = .;&lt;BR /&gt; &lt;BR /&gt; # Added this section for the internal flash update code to be relocated to RAM at run time &lt;BR /&gt; . = ALIGN(0x4);&lt;BR /&gt; __RELOCATE_START = .;&lt;BR /&gt; *(.relocate_code)&lt;BR /&gt; __RELOCATE_END = .;&lt;/P&gt;&lt;P&gt;. = ALIGN(0x4);&lt;BR /&gt; __SDA_BASE = .;&lt;BR /&gt; __SDA_BASE_ = __SDA_BASE;&lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt; ram&lt;/P&gt;&lt;P&gt;.main_application_bss :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(0x10);&lt;BR /&gt; __START_SBSS = .;&lt;BR /&gt; *(.sbss)&lt;BR /&gt; *(SCOMMON)&lt;BR /&gt; __END_SBSS = .;&lt;BR /&gt; &lt;BR /&gt; __START_BSS = .;&lt;BR /&gt; *(.bss)&lt;BR /&gt; *(COMMON)&lt;BR /&gt; __END_BSS = .;&lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt;&amp;gt; ram&lt;/P&gt;&lt;P&gt;.kernel_data : #AT(ADDR(.main_application_bss) + SIZEOF(.main_application_bss))&lt;BR /&gt; {&lt;BR /&gt; __KERNEL_DATA_START = ALIGN(0x10);&lt;BR /&gt; }&lt;BR /&gt; .end_of_kernel_data :&lt;BR /&gt; {&lt;BR /&gt; __KERNEL_DATA_END = .;&lt;BR /&gt; } &amp;gt; end_of_kd&lt;/P&gt;&lt;P&gt;.boot_stack :&lt;BR /&gt; {&lt;BR /&gt; _stack_end = .;&lt;BR /&gt; } &amp;gt; bstack&lt;BR /&gt; &lt;BR /&gt; .end_of_boot_stack :&lt;BR /&gt; {&lt;BR /&gt; _stack_addr = .;&lt;BR /&gt; __SP_INIT = .;&lt;BR /&gt; __BOOT_STACK_ADDRESS = .;&lt;BR /&gt; } &amp;gt; end_bstack&lt;BR /&gt; &lt;BR /&gt; __COPY_OF_EXT_RAM_DATA = __COPY_OF_DATA + SIZEOF(.main_application_data);&lt;BR /&gt; .ext_ram_data : AT(__COPY_OF_EXT_RAM_DATA)&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(0x4);&lt;BR /&gt; ___extRAMStart = .;&lt;BR /&gt; *(.data_extram)&lt;BR /&gt; *(.rodata_extram)&lt;BR /&gt; ___extRAMEnd = .;&lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt; ext_ram&lt;BR /&gt; &lt;BR /&gt; .ext_ram_bss :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(16); &lt;BR /&gt; *(.bss_extram)&lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt;&amp;gt; ext_ram&lt;/P&gt;&lt;P&gt;__UI_DATA_START = 0x00000;&lt;BR /&gt; __UI_DATA_END = 0xA0000;&lt;BR /&gt; __UI_DATA_LANG_ENGLISH_START = 0x00000;&lt;BR /&gt; __UI_DATA_LANG_FRENCH_START = 0x10000;&lt;BR /&gt; __UI_DATA_LANG_SPANISH_START = 0x20000;&lt;BR /&gt; __UI_DATA_LANG_GERMAN_START = 0x30000;&lt;BR /&gt; __UI_DATA_MENU_STORE_START = 0x090000;&lt;BR /&gt; __UI_DATA_MENU_STORE_END = __UI_DATA_MENU_STORE_START + 0xD000; &lt;BR /&gt; __UI_MENU_SIGNATURE = __UI_DATA_MENU_STORE_END - 4;&lt;BR /&gt; __UI_DATA_END_MARK = __UI_DATA_END - 4;&lt;BR /&gt; &lt;BR /&gt; .ext_flash_data_english : AT(__UI_DATA_LANG_ENGLISH_START + ADDR(ext_flash))&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(0x4); &lt;BR /&gt; &lt;STRONG&gt;OBJECT&lt;/STRONG&gt;(g_engStringSize, lang_english_strings_c.obj)&lt;BR /&gt; OBJECT(g_engString, lang_english_strings_c.obj) &lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt; ext_flash&lt;BR /&gt; &lt;BR /&gt; .ext_flash_data_french : AT(__UI_DATA_LANG_FRENCH_START + ADDR(ext_flash))&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(0x4); &lt;BR /&gt; OBJECT(g_frenchStringSize, lang_french_strings_c.obj)&lt;BR /&gt; OBJECT(g_frenchString, lang_french_strings_c.obj) &lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt;&amp;gt; ext_flash&lt;BR /&gt; &lt;BR /&gt; .ext_flash_data_spanish : AT(__UI_DATA_LANG_SPANISH_START + ADDR(ext_flash))&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(0x4); &lt;BR /&gt; OBJECT(g_spanishStringSize, lang_spanish_strings_c.obj)&lt;BR /&gt; OBJECT(g_spanishString, lang_spanish_strings_c.obj) &lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt;&amp;gt; ext_flash&lt;BR /&gt; &lt;BR /&gt; .ext_flash_data_german : AT(__UI_DATA_LANG_GERMAN_START + ADDR(ext_flash))&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(0x4); &lt;BR /&gt; OBJECT(g_germanStringSize, lang_german_strings_c.obj)&lt;BR /&gt; OBJECT(g_germanString, lang_german_strings_c.obj) &lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt;&amp;gt; ext_flash&lt;BR /&gt; &lt;BR /&gt; .ext_flash_data_menustore : AT(__UI_DATA_MENU_STORE_START + ADDR(ext_flash) )&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(0x4);&lt;BR /&gt; OBJECT(g_UIPageStoreSize, dr_menudata_c.obj) &lt;BR /&gt; OBJECT(g_UIPageStoreMenu, dr_menudata_c.obj)&lt;BR /&gt; . = ALIGN(16);&lt;BR /&gt; } &amp;gt;&amp;gt; ext_flash&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;BR /&gt; .ext_flash_data_menustore_sign : AT(__UI_MENU_SIGNATURE + ADDR(ext_flash))&lt;BR /&gt; { &lt;BR /&gt; OBJECT(g_UIPageSignature, dr_menu_renderer_c.obj)&lt;BR /&gt; } &amp;gt;&amp;gt; ext_flash&lt;BR /&gt; &lt;BR /&gt; .ext_flash_end : AT(__UI_DATA_END_MARK + ADDR(ext_flash))&lt;BR /&gt; { &lt;BR /&gt; OBJECT(g_flashUIDataEndMark, spiflash_ui_data_c.obj)&lt;BR /&gt; } &amp;gt;&amp;gt; ext_flash&lt;BR /&gt; &lt;BR /&gt; # Locate the ROM copy table into ROM after the initialized data&lt;BR /&gt; _romp_at = __COPY_OF_EXT_RAM_DATA + SIZEOF(.ext_ram_data);&lt;BR /&gt; .romp : AT (_romp_at)&lt;BR /&gt; {&lt;BR /&gt; __S_romp = _romp_at;&lt;BR /&gt; WRITEW(__COPY_OF_DATA); #ROM start address&lt;BR /&gt; WRITEW(ADDR(.main_application_data)); #RAM start address&lt;BR /&gt; WRITEW(SIZEOF(.main_application_data)); #size&lt;BR /&gt; &lt;BR /&gt; # Added for copying the SRAM data to SRAM in runtime&lt;BR /&gt; WRITEW(__COPY_OF_EXT_RAM_DATA); #ROM start address&lt;BR /&gt; WRITEW(ADDR(.ext_ram_data)); #RAM start address&lt;BR /&gt; WRITEW(SIZEOF(.ext_ram_data)); #size&lt;BR /&gt; &lt;BR /&gt; WRITEW(0);&lt;BR /&gt; WRITEW(0);&lt;BR /&gt; WRITEW(0);&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;_flashx_start = _romp_at + SIZEOF(.romp);&lt;/P&gt;&lt;P&gt;# flashx working area spans across the whole rest of Flash memory&lt;BR /&gt; __FLASHX_START_ADDR = ((_flashx_start + __FLASHX_SECT_SIZE - 1) / __FLASHX_SECT_SIZE) * __FLASHX_SECT_SIZE;&lt;BR /&gt; __FLASHX_END_ADDR = __INTERNAL_FLASH_BASE + __INTERNAL_FLASH_SIZE;&lt;/P&gt;&lt;P&gt;# This is for marking the end of FW area (8 Bytes)&lt;BR /&gt; .endmark :&lt;BR /&gt; {&lt;BR /&gt; WRITEW(0x12345678);&lt;BR /&gt; } &amp;gt; end_mark&lt;BR /&gt; &lt;BR /&gt; # This is for storing FW version(8 Bytes)&lt;BR /&gt; .fwvermark :&lt;BR /&gt; {&lt;BR /&gt; *(.fwvermark)&lt;BR /&gt; } &amp;gt; fwver_mark&lt;BR /&gt; &lt;BR /&gt; /* Section created to relocate code in specific Flash address */ &lt;BR /&gt; .ext_flash_txt :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4); &lt;BR /&gt; ext_flash_txt_start = .;&lt;BR /&gt; *(.section_ext_flash_txt)&lt;BR /&gt; ext_flash_txt_end = .;&lt;BR /&gt; . = ALIGN(4); &lt;BR /&gt; &lt;BR /&gt; } &amp;gt; ext_flash_txt &lt;BR /&gt;}&lt;BR /&gt;/* EOF */&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 May 2019 04:56:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899263#M7586</guid>
      <dc:creator>anand_s</dc:creator>
      <dc:date>2019-05-07T04:56:49Z</dc:date>
    </item>
    <item>
      <title>Re: Porting LCF file to LD</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899264#M7587</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Anand, I hope you're well,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've gone through your linker script and read a bit about the syntax and statements used in the .lcf format, and what I've learned is that the FORCE_ACTIVE statement prevents a function or code section from being cut from the code even if it's not being used.&lt;/P&gt;&lt;P&gt;An alternative to this statement would be to set the "volatile" attribute in your C code to any function you wish to keep from being optimized out of the code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As for the OBJECT statement, I haven't found an equivalent to it in the .ld format, however, when you include the libraries containing your used functions, the compiler should be smart enough to only include the functions that you're using (except If you set them as volatile!).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please let me know if this answers your question or if you have any other questions!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Sebastian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 May 2019 20:43:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899264#M7587</guid>
      <dc:creator>Sebastian_Del_Rio</dc:creator>
      <dc:date>2019-05-07T20:43:25Z</dc:date>
    </item>
    <item>
      <title>Re: Porting LCF file to LD</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899265#M7588</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Sebastian. For your information i want to avoid dead striping of constant values(FORCE ACTIVE keyword used) . So using volatile is not a good idea i think so...&lt;/P&gt;&lt;P&gt;Also how to relocate strings in external flash? Please help me..!&lt;/P&gt;&lt;P&gt;Thank and regards,&lt;/P&gt;&lt;P&gt;Anand&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 May 2019 08:36:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899265#M7588</guid>
      <dc:creator>anand_s</dc:creator>
      <dc:date>2019-05-10T08:36:48Z</dc:date>
    </item>
    <item>
      <title>Re: Porting LCF file to LD</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899266#M7589</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Anand, I hope you're doing well!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To use external flash memory with the k66F, you can use its Flexbus peripheral. This peripheral can interface with external SRAM, PROM, EPROM, EEPROM and flash.&lt;/P&gt;&lt;P&gt;You can read more information about this peripheral in the K66 Sub-Family Reference Manual located &lt;A href="https://www.nxp.com/docs/en/reference-manual/K66P144M180SF5RMV2.pdf"&gt;here&lt;/A&gt;, specifically, you can read chapter 34 "External Bus Interface (FlexBus)".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Sebastian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 May 2019 19:17:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Porting-LCF-file-to-LD/m-p/899266#M7589</guid>
      <dc:creator>Sebastian_Del_Rio</dc:creator>
      <dc:date>2019-05-13T19:17:38Z</dc:date>
    </item>
  </channel>
</rss>

