[fpc-devel] Arm embedded

Florian Klaempfl florian at freepascal.org
Fri Sep 25 12:59:26 CEST 2009


Carsten Bager schrieb:
> Hi
> I am trying  to move from FPC 205 to 251 my target is arm7 embedded
> I have used the 205 compiler for several years, and it is working fine, but I would like to use 
> some of the new facilitates 
> When I compile my test program  (Begin End. ) the new linker misplace the segments.
> Something must be wrong (maybe in my linker script), but I cannot figure out what. Do 
> anybody have a hint.

How does the linker script look like?
> 
> Carsten 
> 
> --
> 
> Output from the compiler/linker
> 
> J:\Fpc\Pas\Test\Led_test>\Fpc\ArmBin\ppcrossarm-251 -al -XX -Tembedded -Parm -XParm-
> embedded- -d
>  led.pas
> Hint: End of reading config file J:\Fpc\ArmBin\fpc.cfg
> Free Pascal Compiler version 2.5.1 [2009/09/24] for arm
> Copyright (c) 1993-2009 by Florian Klaempfl
> Target OS: Embedded
> Compiling led.pas
> Assembling led
> Linking led
> J:\Fpc\ArmBin\arm-embedded-ld.exe: led.elf: warning: allocated section `.data' not in 
> segment
> 13 lines compiled, 1.0 sec
> 1 warning(s) issued
> 1 hint(s) issued
> 
> 
> ---- Map file ----------------------------------------------------------------------
> Discarded input sections
> 
>  .text          0x00000000        0x0 led.o
>  .data          0x00000000        0x0 led.o
>  .bss           0x00000000        0x0 led.o
>  .text.n_main   0x00000000        0x0 led.o
>  .bss.n_u_p$led_i
>                 0x00000000        0x0 led.o
>  .bss.n_u_p$led_p
>                 0x00000000        0x0 led.o
>  .bss.n_u_p$led_q
>                 0x00000000        0x0 led.o
>  .bss.n_u_p$led_w
>                 0x00000000        0x0 led.o
>  .data.n_THREADVARLIST_P$LED
>                 0x00000000        0x0 led.o
>  .data.n_INITFINAL
>                 0x00000000        0x0 led.o
>  .data.n_FPC_THREADVARTABLES
>                 0x00000000        0x0 led.o
>  .data.n_FPC_RESOURCESTRINGTABLES
>                 0x00000000        0x0 led.o
>  .data.n___stklen
>                 0x00000000        0x0 led.o
>  .data.n___heapsize
>                 0x00000000        0x0 led.o
>  .data.n___fpc_valgrind
>                 0x00000000        0x0 led.o
>  .text          0x00000000        0x0 system.o
>  .data          0x00000000        0x0 system.o
>  .bss           0x00000000        0x0 system.o
>  .text.n_system_roundandpackint32$byte$qword$$longint
> --
> --
> --
> --
> 
> Memory Configuration
> 
> Name             Origin             Length             Attributes
> flash            0x00000000         0x00080000
> ram              0x40000000         0x00008000
> *default*        0x00000000         0xffffffff
> 
> Linker script and memory map
> 
>                 0x40007c00                __stack_end__ = 0x40007c00
>                 0x40007ffc                __ram_end__ = 0x40007ffc
>                 0x00000000                . = 0x0
> 
> startup
>  *(.startup)
> 
> prog            0x00000000        0x0
>  *(.text)
>  *(.rodata)
>  *(.rodata*)
>  *(.glue_7)
>  .glue_7        0x00000000        0x0 led.o
>  .glue_7        0x00000000        0x0 system.o
>  *(.glue_7t)
>  .glue_7t       0x00000000        0x0 led.o
>  .glue_7t       0x00000000        0x0 system.o
>                 0x00000000                __end_of_text__ = .
> 
> .data           0x40000000       0x2c load address 0x00000000
>                 0x40000000                __data_beg__ = .
>                 0x00000000                __data_beg_src__ = __end_of_text__
>  *(.data)
>                 0x40000000                __data_end__ = .
>                 0x40000000                _data = .
>  *(.data, .data.*)
>  *(.fpc .fpc.n_version .fpc.n_links)
>  .fpc.n_version
>                 0x40000000       0x2c led.o
>                 0x4000002c                _edata = .
> 
> .bss            0x4000002c        0x0
>                 0x4000002c                __bss_beg__ = .
>  *(.bss)
>                 0x4000002c                _bss_start = .
>  *(.bss, .bss.*)
>  *(COMMON)
>                 0x4000002c                . = ALIGN (0x4)
>                 0x4000002c                . = ALIGN (0x4)
>                 0x4000002c                _end = .
>                 0x4000002c                _bss_end__ = .
>                 0x4000002c                __bss_end__ = .
>                 0x4000002c                __end__ = .
>                 0x4000002c                PROVIDE (end, .)
> LOAD led.o
> LOAD system.o
> 
> .text           0x0000002c        0x0
>  *(.init, .init.*)
>  *(.text, .text.*)
>  *(.strings)
>  *(.rodata, .rodata.*)
>  *(.comment)
>                 0x0000002c                _etext = .
> 
> .vfp11_veneer   0x4000002c        0x0
>  .vfp11_veneer  0x4000002c        0x0 led.o
>  .vfp11_veneer  0x4000002c        0x0 system.o
>                 0x4000002c                . = ALIGN (0x4)
>                 0x4000002c                _bss_end = .
>                 0x4000002c                _end = .
> OUTPUT(led.elf elf32-littlearm)
> 
> .ARM.attributes
>                 0x00000000       0x14
>  .ARM.attributes
>                 0x00000000       0x14 led.o
>  .ARM.attributes
>                 0x00000014       0x14 system.o
> 
>  
> Med venlig hilsen
> Carsten Bager
> 
> BEAS A/S
> Brørupvænget 10
> DK-7650 Bøvlingbjerg
> Tlf. : +45 9788 5222 Fax : +45 9788 5434
> www.beas.dk
> 
> 
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
> 




More information about the fpc-devel mailing list