[fpc-devel] creating the embedded port of fpc

Michael Ring mail at michael-ring.org
Sun Oct 12 20:06:08 CEST 2014


I am wondering why compile did not fail, or did you rename your binutils 
tools? In case you did not rename them those commandlines should work:

make clean buildbase installbase CROSSINSTALL=1 OS_TARGET=embedded 
CPU_TARGET=arm SUBARCH=armv7m  INSTALL_PREFIX=/home/sietse 
*BINUTILSPREFIX=arm-none-eabi- *

You do not need to call fpc to successfully compile, it is good enough 
to use ppcrossarm.

/home/sietse/lib/fpc/2.7.1/ppcrossarm -Ch1024 -Cs1024 -Tembedded -Parm 
-Cparmv7m *-XParm-none-eabi-* tled1.pp

should compile the app. If those can't find system used by program 
errors stay there's propably a problem with your fpc.cfg.

pleae try with this commandline:

/home/sietse/lib/fpc/2.7.1/ppcrossarm -Ch1024 -Cs1024 -Tembedded -Parm 
-Cparmv7m *-XParm-none-eabi-* *-vu* tled1.pp

You should see output like this:

Target OS: Embedded
Compiling hello.pas
(HELLO)    Registering new unit SYSTEM
(HELLO)    Load from HELLO (implementation) unit SYSTEM
(SYSTEM)   Loading unit SYSTEM
(SYSTEM)   PPU Name: 
*/home/sietse/lib/fpc/2.7.1/units/arm-embedded/rtl/system.ppu*



Here's a list of files installed on my system for arm-embedded, your 
directory structure should look similar (except that you have a 
different INSTALL_PREFIX

/usr/local/lib/fpc/2.7.1//units/arm-embedded
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/consoleio.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/consoleio.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/cortexm3.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/cortexm3.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/cortexm4.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/cortexm4.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/heapmgr.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/heapmgr.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lm3fury.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lm3fury.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lm3tempest.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lm3tempest.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lm4f120.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lm4f120.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lpc13uxx.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lpc13uxx.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lpc13xx.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lpc13xx.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lpc1768.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/lpc1768.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/objpas.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/objpas.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/Package.fpc
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f100xx.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f100xx.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f101xx.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f101xx.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f102xx.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f102xx.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f103xx.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f103xx.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f105xx.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f105xx.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f107xx.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f107xx.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f40x.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f40x.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f41x.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f41x.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f427x.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f427x.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f429x.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f429x.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f437x.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f437x.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f439x.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/stm32f439x.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/sysconst.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/sysconst.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/system.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/system.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/sysutils.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/sysutils.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/uuchar.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/uuchar.ppu
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/xmc4500.o
/usr/local/lib/fpc/2.7.1//units/arm-embedded/rtl/xmc4500.ppu


Am 12.10.14 um 18:40 schrieb Sietse Achterop:
> On 10/12/2014 10:54 AM, Mark Morgan Lloyd wrote:
>> Sietse Achterop wrote:
>>>   Dear list,
>>> I try to get the embedded port of fpc (for both lcp1728 and stm32f4) 
>>> to work but fail.
>>> I use the info on
>>>    http://wiki.freepascal.org/TARGET_Embedded
>>> but immediate get:
>>>    make[1]: -iVSPTPSOTO: Command not found
>
>    .....
>> export PP=....
>> make clean all
>
>   Ok, thanks. I now see that you need the hosts fpc to create the 
> embedded version. I assumed only gcc was needed.
>
> The given make-command only works as root, so i use a INSTALL_PREFIX:
>    make clean buildbase installbase INSTALL_PREFIX=/home/sietse 
> CROSSINSTALL=1 OS_TARGET=embedded CPU_TARGET=arm SUBARCH=armv7m
> This works ok.
>
> But the command
>    fpc -Parm -Tembedded -Wplpc1768 -Cparmv7m tled1.pp
> gives:
>    Error: ppcarm can't be executed, error message: Failed to execute 
> "ppcarm", error code: 127
>
> I notice that "make installbase" did not install a program fpc in 
> /home/sietse/bin, but I find
>    /home/sietse/lib/fpc/2.7.1/ppcrossarm
> If I try
>    /home/sietse/lib/fpc/2.7.1/ppcrossarm -Parm -Tembedded -Wplpc1768 
> -Cparmv7m tled1.pp
>
> Free Pascal Compiler version 2.7.1 [2014/10/12] for arm
> Copyright (c) 1993-2014 by Florian Klaempfl and others
> Target OS: Embedded
> Compiling tled1.pp
> Fatal: Can't find unit system used by Program
> Fatal: Compilation aborted
>
> So the ppcrosarm probably is the correct main program, but it seems 
> that the fpc for the embedded port isn't installed.
> Where is the fpc that will call ppcrosarm?
>
>   Hopefully this make sense.
>        Sietse
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20141012/46427031/attachment.html>


More information about the fpc-devel mailing list