I just tried AVRpas on linux64.
In my opinion, a better interface than Arduino IDE v. 2, great job!
I compiled the blink example for ArduinoUNO board (AVR328P):
AVRpas (fpc): code 2816 byte, data 112 byte
Arduino IDE: code 924 byte, data 9 byte
Is Arduino IDE cheating or what ?
I wish I could program avr using fpc, but we are on a platform where we can't afford to waste flash and /or ram that way...
I hope I made some mistake or that with larger programs the differences will be reduced
Thank you for your comment and opinion, its nice for me
I made some quick tests for ATMega328p with your options settings:
- program which do nothing (only begin..end): 398 bytes code, 18 bytes data
- and with directive {$mode objfpc}: 792 bytes code, 46 bytes data (+394 bytes code, +28 bytes data)
All code and data seem to be initialization code of FPC RTL.
More tests:
- with timer.pas, with its own initialization code: 1720 bytes code, 73 bytes data (+928 bytes code, +27 bytes data)
- TestBlink.pas (+used units defs.pas and digital.pas) with commented Delay(1000): 2424 bytes code, 133 bytes data (+704 bytes code, +60 bytes data)
My conclusions:
1) part of the code is initialization data of RTL, hard to reduce without changing RTL library
2) part of the code is initialization code of timer.pas which (I suppose) can be improved.
3) yes, its possible that with larger programs the differences will be reduced
4) AVRPascal uses FPC 3.3.1, which (as far I know) is not final version of the compiler and it is in working process.