X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/15c4dc5ace24e6081d1597b011148f156cdd599e..0691975406414516cdc977454a7965a8ca40b88d:/armsrc/ldscript?ds=sidebyside diff --git a/armsrc/ldscript b/armsrc/ldscript index 61eaa5d7..34da26bc 100644 --- a/armsrc/ldscript +++ b/armsrc/ldscript @@ -1,41 +1,67 @@ +/* +----------------------------------------------------------------------------- + This code is licensed to you under the terms of the GNU GPL, version 2 or, + at your option, any later version. See the LICENSE.txt file for the text of + the license. +----------------------------------------------------------------------------- + Linker script for the ARM binary +----------------------------------------------------------------------------- +*/ INCLUDE ../common/ldscript.common +PHDRS +{ + text PT_LOAD FLAGS(5); + data PT_LOAD; + bss PT_LOAD; +} + ENTRY(Vector) SECTIONS { - .fpgaimage : { - *(fpga_bit.data) - } >fpgaimage - .start : { *(.startos) } >osimage - .text : { + .start : { + *(.startos) + } >osimage :text + + .text : { + KEEP(*(stage1_image)) *(.text) *(.text.*) *(.eh_frame) *(.glue_7) *(.glue_7t) - *(.rodata) - *(.rodata*) - *(.version_information) - } >osimage - __end_of_text__ = .; - + } >osimage :text + + .rodata : { + *(.rodata) + *(.rodata.*) + *(fpga_all_bit.data) + KEEP(*(.version_information)) + . = ALIGN(8); + } >osimage :text + .data : { - __data_start__ = .; - __data_src_start__ = __end_of_text__; + KEEP(*(compressed_data)) *(.data) *(.data.*) - __data_end__ = .; - } >ram AT>osimage + *(.ramfunc) + . = ALIGN(4); + } >ram AT>osimage :data + + __data_src_start__ = LOADADDR(.data); + __data_start__ = ADDR(.data); + __data_end__ = __data_start__ + SIZEOF(.data); + __os_size__ = SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.rodata); .bss : { __bss_start__ = .; *(.bss) *(.bss.*) - } >ram - . = ALIGN(32 / 8); - __bss_end__ = .; + . = ALIGN(4); + __bss_end__ = .; + } >ram AT>ram :bss - .commonarea (NOLOAD) : { - *(.commonarea) - } >commonarea + .commonarea (NOLOAD) : { + *(.commonarea) + } >commonarea :NONE }