/* *********************************************************************** *name: IE_stm32.ld *author: Samuel Igwe *date: 08/04/2013 *description: linker script that I have created for use in all stm32 * development related matters on this board * * it took some time to set this up. the ld manual was * sadly inadequate. I must credit zilogic's "embedded * programming with the gnu toolchain" at * www.bravegnu.org/gnu-eprog-dist.pdf * for clearing up issues related to loading the .data * section into its appropriate position in ram and * setting up the linker appropriately. * * first this is the memory map I had decided on * * 0x2000 4fff +++++++++++++++++++++++++++++++ * + ram + * 0x2000 0000 +++++++++++++++++++++++++++++++ * + + * 0x0001 ffff +++++++++++++++++++++++++++++++ * + flash + * 0x0000 0000 +++++++++++++++++++++++++++++++ * * * my stm32f103 board is jumpered to boot from flash at * offset 0x2000 0000. the first 256*4 will be reserved * for the NVIC interrupt vector table and hopefull the * last 512 bytes for the stack * * adding the variable _loadaddr_data_section_ to the end * of the .text along with the AT> directive places a copy * of the .data right after .text but leaves the virtual * addresses pointing at .data in ram * * in the assembler initialization file I can copy .data * from bottom of .text into .data in sram *********************************************************************** */ MEMORY { STM32_RAM : ORIGIN = 0x20000000, LENGTH = (20480 - 1024) } SECTIONS { .data : { *(.data); } > STM32_RAM .text : { *(.text); *(.rodata*); } > STM32_RAM .bss : { *(.bss); } > STM32_RAM }
Thursday, August 22, 2013
IE_stm32.ld
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment