<?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>ColdFire/68K Microcontrollers and ProcessorsのトピックRe: ROM-RAM copying</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168298#M6008</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Thank you for your quick answer crazy cat! But I still don't catch everything!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;1/ I thought the startup code was in mcf523x_lo.s, see below :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/********************************************************************&lt;BR /&gt;&amp;nbsp;* This is the main entry point upon hard reset.&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;asm_startmeup:&lt;BR /&gt;_asm_startmeup:&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;move.w&amp;nbsp;#0x2700,sr&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Initialize IPSBAR */&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;#(___IPSBAR + 1),d0&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;d0,0x40000000&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;/* Initialize RAMBAR1: locate SRAM and validate it */&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;#(___SRAM + 0x21),d0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp; 0x4e7b0C05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* movec d0,RAMBAR1&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Point Stack Pointer into SRAM temporarily */&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;#(___SRAM + 0x10000),sp&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Initialize mcf523x periphs, etc */&lt;BR /&gt;&amp;nbsp;jsr&amp;nbsp;&amp;nbsp;mcf523x_init&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Relocate Stack Pointer */&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;#___SP_INIT,sp&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Jump to the main process */&lt;BR /&gt;&amp;nbsp;/* jmp&amp;nbsp;&amp;nbsp;_main */&lt;BR /&gt;&amp;nbsp; jmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;bra&amp;nbsp;&amp;nbsp;.&lt;BR /&gt;&amp;nbsp;nop&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;nop&lt;BR /&gt;/*&amp;nbsp;halt */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;What is executed first? mcf523x_lo.s or E68k_startup.c?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;2/ So for you, if I want to do my conditionnal ROM-RAM copying, I have to modify E68k_startup.c and recompile it.&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks again&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Nov 2007 18:06:33 GMT</pubDate>
    <dc:creator>mickael</dc:creator>
    <dc:date>2007-11-29T18:06:33Z</dc:date>
    <item>
      <title>ROM-RAM copying</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168296#M6006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi everybody,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am working with a coldfire MCF5235.&lt;/DIV&gt;&lt;DIV&gt;I have two questions concerning ROM-RAM copying :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;1/ I am using the rom-ram copying with the lcf file. This works great. See below my linker file:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;# Sample Linker Command File for CodeWarrior for ColdFire&lt;/DIV&gt;&lt;DIV&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;user &amp;nbsp;&amp;nbsp;(RX) &amp;nbsp;: ORIGIN = 0x00000500, LENGTH = 0x0&lt;BR /&gt;&amp;nbsp;sdram&amp;nbsp;&amp;nbsp;(RWX)&amp;nbsp;: ORIGIN = 0x00000000, LENGTH = 0x0&lt;BR /&gt;&amp;nbsp;vector_ram&amp;nbsp;(RWX)&amp;nbsp;: ORIGIN = 0x00000000, LENGTH = 0x0&lt;BR /&gt;&amp;nbsp;sram&amp;nbsp;&amp;nbsp;(RWX)&amp;nbsp;: ORIGIN = 0x20000000, LENGTH = 0x0&lt;BR /&gt;&amp;nbsp;ext_sram&amp;nbsp;(RWX)&amp;nbsp;: ORIGIN = 0x30000000, LENGTH = 0x0&lt;BR /&gt;&amp;nbsp;ipsbar&amp;nbsp;&amp;nbsp;(RWX)&amp;nbsp;: ORIGIN = 0x40000000, LENGTH = 0x0&lt;BR /&gt;&amp;nbsp;ext_flash&amp;nbsp;(RWX)&amp;nbsp;: ORIGIN = 0xFF800000, LENGTH = 0x0&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;SECTIONS&lt;BR /&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;.sdram&amp;nbsp;&amp;nbsp;: {} &amp;gt; sdram&lt;BR /&gt;&amp;nbsp;.vector_ram&amp;nbsp;: {} &amp;gt; vector_ram&lt;BR /&gt;&amp;nbsp;.ipsbar&amp;nbsp;&amp;nbsp;: {} &amp;gt; ipsbar&lt;BR /&gt;&amp;nbsp;.sram&amp;nbsp;&amp;nbsp;: {&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;. = ALIGN(0x10);&amp;nbsp;#align next section on 16-byte boundary.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *(.fec_data)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;. = ALIGN(0x10);&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; } &amp;gt; sram &amp;nbsp;&amp;nbsp;&amp;nbsp;#places the section contents at the beginning of the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#memory segment "sram"&lt;BR /&gt;&amp;nbsp;.ext_sram&amp;nbsp;: {} &amp;gt; ext_sram&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;.boot_flash :&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;vectors.s &amp;nbsp;(.text)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;mcf523x_lo.s&amp;nbsp;(.text)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;hwinit.c&amp;nbsp;&amp;nbsp;(.text)&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;C_4i_CF_StdABI_Runtime_Sodimas.a (.text)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;.= ALIGN(0x4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;} &amp;gt; ext_flash&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;__end_of_text = .;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;___DATA_ROM&amp;nbsp;&amp;nbsp;= __end_of_text;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;___DATA_RAM &amp;nbsp;= ADDR(user);&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;.sys_sram : AT(___DATA_ROM)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;.= ALIGN(0x4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*(.text)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(.rodata)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;.= ALIGN(0x4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;__START_DATA = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(.data)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;__END_DATA = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;__START_SDATA = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(.sdata)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;__END_SDATA = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;__SDA_BASE = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;.= ALIGN(0x4);&amp;nbsp;&lt;BR /&gt;&amp;nbsp;} &amp;gt; user&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;.uninitialized_data :&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;__START_SBSS = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(.sbss)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(SCOMMON)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;__END_SBSS = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;__START_BSS = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(.bss)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(COMMON)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;__END_BSS = .;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;. = ALIGN (0x4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;___HEAP_START&amp;nbsp;= .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;___HEAP_END&amp;nbsp;&amp;nbsp;= ___HEAP_START + 0x10000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;___SP_END&amp;nbsp;&amp;nbsp;= ___HEAP_END;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;___SP_INIT&amp;nbsp;&amp;nbsp;= ___SP_END + 0x1000;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= ALIGN(0x4);&lt;BR /&gt;&amp;nbsp;} &amp;gt;&amp;gt; user&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;_romp_at = ___DATA_ROM + SIZEOF(.sys_sram);&lt;BR /&gt;&amp;nbsp;.romp : AT(_romp_at)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;__S_romp = _romp_at;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;WRITEW(___DATA_ROM);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;WRITEW(ADDR(.sys_sram));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;WRITEW(SIZEOF(.sys_sram));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;WRITEW(0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;WRITEW(0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;WRITEW(0);&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;___IPSBAR&amp;nbsp;&amp;nbsp;= ADDR(.ipsbar);&lt;BR /&gt;&amp;nbsp;___VECTOR_RAM&amp;nbsp;&amp;nbsp;= ADDR(.vector_ram);&lt;BR /&gt;&amp;nbsp;___SDRAM&amp;nbsp;&amp;nbsp;= ADDR(.sdram);&lt;BR /&gt;&amp;nbsp;___SDRAM_SIZE&amp;nbsp;&amp;nbsp;= 0x01000000;&lt;BR /&gt;&amp;nbsp;___SRAM&amp;nbsp;&amp;nbsp;&amp;nbsp;= ADDR(.sram);&lt;BR /&gt;&amp;nbsp;___SRAM_SIZE&amp;nbsp;&amp;nbsp;= 0x00010000;&lt;BR /&gt;&amp;nbsp;___EXT_SRAM&amp;nbsp;&amp;nbsp;= ADDR(.ext_sram);&lt;BR /&gt;&amp;nbsp;___EXT_SRAM_SIZE&amp;nbsp;= 0x00080000;&lt;BR /&gt;&amp;nbsp;___EXT_FLASH&amp;nbsp;&amp;nbsp;= ADDR(.boot_flash);&lt;BR /&gt;&amp;nbsp;___EXT_FLASH_SIZE&amp;nbsp;= 0x00800000;&lt;BR /&gt;&amp;nbsp;___heap_addr &amp;nbsp;&amp;nbsp;= ___HEAP_START;&lt;BR /&gt;&amp;nbsp;___heap_size &amp;nbsp;&amp;nbsp;= 0x10000;&lt;BR /&gt;&amp;nbsp;__SP_INIT &amp;nbsp;&amp;nbsp;= ___SP_INIT;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;My question is to know when is done the copy of the section "user"&amp;nbsp;from ram to rom.&amp;nbsp;Is it done after the execution of the section boot flash?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;2/ My second question is to know if it is possible to&amp;nbsp;have a conditionnal&amp;nbsp;ROM RAM copying.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;I would like to specify in the lcf file wether I copy&amp;nbsp;&amp;nbsp;to ramone flash zone or another.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Typically :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;if (flag)&lt;/DIV&gt;&lt;DIV&gt;copy the flash zone A to RAM&lt;/DIV&gt;&lt;DIV&gt;else&lt;/DIV&gt;&lt;DIV&gt;copy the flash zone B to RAM&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Nov 2007 16:52:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168296#M6006</guid>
      <dc:creator>mickael</dc:creator>
      <dc:date>2007-11-29T16:52:51Z</dc:date>
    </item>
    <item>
      <title>Re: ROM-RAM copying</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168297#M6007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;1- The copy of the data from ROM to RAM is performed by the startup code.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Basically the startup code is doing the following:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;Disable interrupts&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Initialize stack pointer and diverse registers&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Initialize hardware&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Initialize section bss &amp;amp; sbss to 0&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Copy data from ROM to RAM&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - call main&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; You can look at the code of the startup function in&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Install}\E68K_Support\Runtime\Runtime_68K\Runtime_ColdFire\(Source)\E68k_startup.c&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;2- There is no way to add conditional code in the linker control file.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The linker file syntax does not provide support for conditional blocks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;CrasyCat&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Nov 2007 17:38:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168297#M6007</guid>
      <dc:creator>CrasyCat</dc:creator>
      <dc:date>2007-11-29T17:38:39Z</dc:date>
    </item>
    <item>
      <title>Re: ROM-RAM copying</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168298#M6008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Thank you for your quick answer crazy cat! But I still don't catch everything!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;1/ I thought the startup code was in mcf523x_lo.s, see below :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/********************************************************************&lt;BR /&gt;&amp;nbsp;* This is the main entry point upon hard reset.&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;asm_startmeup:&lt;BR /&gt;_asm_startmeup:&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;move.w&amp;nbsp;#0x2700,sr&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Initialize IPSBAR */&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;#(___IPSBAR + 1),d0&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;d0,0x40000000&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;/* Initialize RAMBAR1: locate SRAM and validate it */&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;#(___SRAM + 0x21),d0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp; 0x4e7b0C05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* movec d0,RAMBAR1&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Point Stack Pointer into SRAM temporarily */&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;#(___SRAM + 0x10000),sp&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Initialize mcf523x periphs, etc */&lt;BR /&gt;&amp;nbsp;jsr&amp;nbsp;&amp;nbsp;mcf523x_init&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Relocate Stack Pointer */&lt;BR /&gt;&amp;nbsp;move.l&amp;nbsp;#___SP_INIT,sp&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Jump to the main process */&lt;BR /&gt;&amp;nbsp;/* jmp&amp;nbsp;&amp;nbsp;_main */&lt;BR /&gt;&amp;nbsp; jmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;bra&amp;nbsp;&amp;nbsp;.&lt;BR /&gt;&amp;nbsp;nop&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;nop&lt;BR /&gt;/*&amp;nbsp;halt */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;What is executed first? mcf523x_lo.s or E68k_startup.c?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;2/ So for you, if I want to do my conditionnal ROM-RAM copying, I have to modify E68k_startup.c and recompile it.&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks again&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Nov 2007 18:06:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168298#M6008</guid>
      <dc:creator>mickael</dc:creator>
      <dc:date>2007-11-29T18:06:33Z</dc:date>
    </item>
    <item>
      <title>Re: ROM-RAM copying</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168299#M6009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;"asm_startmeup"&lt;/STRONG&gt; is executed first and &lt;STRONG&gt;"jmp start"&lt;/STRONG&gt; jump to&amp;nbsp;E68k_startup code.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I think you have to&amp;nbsp;define different lcf file and target for each configuration you want.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I Hope this helps..&lt;BR /&gt;&lt;BR /&gt;Bye&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;lt;&amp;lt; Freescale MCF5234/35 with CodeWarrior 6.2 &amp;gt;&amp;gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Nov 2007 18:49:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168299#M6009</guid>
      <dc:creator>Arev</dc:creator>
      <dc:date>2007-11-29T18:49:31Z</dc:date>
    </item>
    <item>
      <title>Re: ROM-RAM copying</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168300#M6010</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;1/ Thank you Arev for you help on boot sequence.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Times New Roman" size="3"&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;2/ Defining several &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;lcf and several targets is useless for me. I ‘am in the following configuration :&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Times New Roman" size="3"&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;FLASH MEMORY :&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;Boot zone&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;Zone A&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;Zone B&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Times New Roman" size="3"&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;I want to boot on the boot zone and then (considering a flag in the flash) either copy to RAM zone A or zone B. Then I want to boot in RAM.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;FONT face="Times New Roman"&gt;Thanks&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Nov 2007 20:42:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/ROM-RAM-copying/m-p/168300#M6010</guid>
      <dc:creator>mickael</dc:creator>
      <dc:date>2007-11-29T20:42:05Z</dc:date>
    </item>
  </channel>
</rss>

