diff options
-rw-r--r-- | platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld | 12 | ||||
-rw-r--r-- | platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S | 31 |
2 files changed, 1 insertions, 42 deletions
diff --git a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld index 2feebd8..6699153 100644 --- a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld +++ b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld @@ -142,25 +142,15 @@ SECTIONS PROVIDE_HIDDEN (__fini_array_end = .); } > m_text - __etext = .; /* define a global symbol at end of code */ - __DATA_ROM = .; /* Symbol is used by startup for data initialization */ - - .data : AT(__DATA_ROM) + .data : { . = ALIGN(4); - __DATA_RAM = .; - __data_start__ = .; /* create a global symbol at data start */ *(.data) /* .data sections */ *(.data*) /* .data* sections */ KEEP(*(.jcr*)) . = ALIGN(4); - __data_end__ = .; /* define a global symbol at data end */ } > m_data - __DATA_END = __DATA_ROM + (__data_end__ - __data_start__); - text_end = ORIGIN(m_text) + LENGTH(m_text); - ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data") - /* Uninitialized data section */ .bss : { diff --git a/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S b/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S index 2a97408..a518a15 100644 --- a/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S +++ b/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S @@ -219,37 +219,6 @@ Reset_Handler: #ifndef __NO_SYSTEM_INIT bl SystemInit #endif -/* Loop to copy data from read only memory to RAM. The ranges - * of copy from/to are specified by following symbols evaluated in - * linker script. - * __etext: End of code section, i.e., begin of data sections to copy from. - * __data_start__/__data_end__: RAM address range that data should be - * copied to. Both must be aligned to 4 bytes boundary. */ - - ldr r1, =__etext - ldr r2, =__data_start__ - ldr r3, =__data_end__ - -#if 1 -/* Here are two copies of loop implemenations. First one favors code size - * and the second one favors performance. Default uses the first one. - * Change to "#if 0" to use the second one */ -.LC0: - cmp r2, r3 - ittt lt - ldrlt r0, [r1], #4 - strlt r0, [r2], #4 - blt .LC0 -#else - subs r3, r2 - ble .LC1 -.LC0: - subs r3, #4 - ldr r0, [r1, r3] - str r0, [r2, r3] - bgt .LC0 -.LC1: -#endif #ifdef __STARTUP_CLEAR_BSS /* This part of work usually is done in C library startup code. Otherwise, |