[fpc-devel] FPC for Linux-ARM

Michel Catudal michelcatudal at gmail.com
Thu Jan 20 04:01:19 CET 2011


On 19/01/2011 11:57, Henry Vermaak wrote:
> On 19/01/11 16:49, Jonas Maebe wrote:
>>
>> On 19 Jan 2011, at 17:13, Henry Vermaak wrote:
>>
>>> There is another consideration, though: float abi.  You can build a 
>>> toolchain that enables use of an fpu, but still passes floats in int 
>>> registers or on the stack (-mfloat-abi=softfp).  This is how the 
>>> android toolchain is configured.  I don't think fpc can do this, 
>>> though.
>>
>> Actually, the softfp abi is the only abi that FPC supports when using 
>> VFP: 
>> http://wiki.freepascal.org/FPC_New_Features_Trunk#Support_for_VFPv2_and_VFPv3 
>>
>
> Excellent, thanks!
>
> Henry
> _______________________________________________

I have a few questions for the ARM team. I am not working on the ARM 
port but basing mine on it to start with.
I am porting FPC to the AVR32. I am starting with the AT32UC3C0512C, 
AT32UC3C1512C, AT32UC3B0256ES and AT32UC3B064
and will eventually support the rest. This port will not support an OS 
at all, it is for embedded projects like we usually do in C or assembler.
I will have units for digital filters, convolution, waveform generation, 
CAN, LIN, USB, LCD, etc ...

The UC3C series has a single precision hardware float and dsp. The UC3B 
series has context environment, meaning has shadow registers kind of 
like the NEC devices. When you get into an interrupt the interrupts has 
its own set of registers so you do not need to push any registers on the 
stack.
The UC3A have some similarity to the UC3C series except that the UC3C 
series is automotive and can run at +5V. The UC3C devices are fully ppap 
qualified.
On the UC3C devices the hardware floats uses the regular registers (16 
of them) and not its own as the ix86 or ARM.

My questions are at the end of the list that follows.


      AT32UC3A0128,
      AT32UC3A0256,
      AT32UC3A0512,
      AT32UC3A1128,
      AT32UC3A1256,
      AT32UC3A1512,
      AT32UC3B064,
      AT32UC3B0128,
      AT32UC3B0256,
      AT32UC3B0512,
      AT32UC3B164,
      AT32UC3B1128,
      AT32UC3B1256,
      AT32UC3B1512,
      AT32UC3B064ES,
      AT32UC3B01128ES,
      AT32UC3B0256ES,
      AT32UC3B0512ES,
      AT32UC3B164ES,
      AT32UC3B1128ES,
      AT32UC3B1256ES,
      AT32UC3B1512ES,
      AT32UC3C064,
      AT32UC3C0256C,
      AT32UC3C0512C,
      AT32UC3C164C,
      AT32UC3C1256C,
      AT32UC3C1512C,
      AT32UC3C264C,
      AT32UC3C2256C,
      AT32UC3C2512C,
      AT32UC3C0512REVC,
      AT32UC3C1512REVC,
      AT32UC3L016,
      AT32UC3L032,
      AT32UC3L064


In the Makefile I see these after I do a fpcmake -Tall. I looked all 
over the project and cannot find where I would put the information
so fpcmake would generate a Makefile with : ifeq 
($(FULL_TARGET),avr32-embedded)

Makefile:ifeq ($(FULL_TARGET),i386-embedded)
Makefile:ifeq ($(FULL_TARGET),m68k-embedded)
Makefile:ifeq ($(FULL_TARGET),powerpc-embedded)
Makefile:ifeq ($(FULL_TARGET),sparc-embedded)
Makefile:ifeq ($(FULL_TARGET),x86_64-embedded)
Makefile:ifeq ($(FULL_TARGET),arm-embedded)
Makefile:ifeq ($(FULL_TARGET),powerpc64-embedded)
Makefile:ifeq ($(FULL_TARGET),avr-embedded)
Makefile:ifeq ($(FULL_TARGET),armeb-embedded)
Makefile:ifeq ($(FULL_TARGET),i386-embedded)
Makefile:ifeq ($(FULL_TARGET),m68k-embedded)
Makefile:ifeq ($(FULL_TARGET),powerpc-embedded)
Makefile:ifeq ($(FULL_TARGET),sparc-embedded)
Makefile:ifeq ($(FULL_TARGET),x86_64-embedded)
Makefile:ifeq ($(FULL_TARGET),arm-embedded)
Makefile:ifeq ($(FULL_TARGET),powerpc64-embedded)
Makefile:ifeq ($(FULL_TARGET),avr-embedded)
Makefile:ifeq ($(FULL_TARGET),armeb-embedded)

Can anyone explain where I can find information on what is needed to do 
the port? On the embedded site there is almost nothing.
I know about the units and compiler directory but there is a lot of 
important information missing. It looks like the information has been
written for someone who has allready done several ports.
Part of that would be where I would get the information on the file 
where I put the assembler information so FPC can generate the correct 
assembler?

Thank you very much


Michel Catudal

-- 
Tired of Microsoft's rebootive multitasking?
then it's time to upgrade to Linux.
http://home.comcast.net/~mcatudal




More information about the fpc-devel mailing list