FPC fit für PIC & AVR

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: FPC fit für PIC & AVR

Beitrag von Christian »

schaut auf den ersten blick aus als ob die rtl nicht compiliert ist ?!
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

_Bernd
Beiträge: 145
Registriert: Di 13. Feb 2007, 11:16

Re: FPC fit für PIC & AVR

Beitrag von _Bernd »

Christian hat geschrieben:schaut auf den ersten blick aus als ob die rtl nicht compiliert ist ?!

doch, die objects und ppus befinden sich in D:\fpc311\31200\src\rtl\units\avr-embedded. Ich denke, der Linker findet sie auch.
Die Linker-Meldung "skipping incompatible...." deutet meiner Meinung nach auf das Problem hin.
Ich werde es demnächst mal unter Linux probieren.

Gruß, Bernd.

FPK
Beiträge: 65
Registriert: Mi 21. Mai 2008, 19:38
Wohnort: Erlangen

Re: FPC fit für PIC & AVR

Beitrag von FPK »

Was sagt objdump?

ws7
Beiträge: 18
Registriert: Mi 20. Jul 2011, 22:27

Re: FPC fit für PIC & AVR

Beitrag von ws7 »

Nur zur Info: es gibt einen guten Compiler für 80x51
http://turbo51.com

und einen für PIC10 bis PIC18
http://www.pmpcomp.fr/

_Bernd
Beiträge: 145
Registriert: Di 13. Feb 2007, 11:16

Re: FPC fit für PIC & AVR

Beitrag von _Bernd »

"Was sagt objdump?"

sowohl für test.o als auch für system.o test.o:
file format elf32-avr

Es sieht so aus, als ob eine Änderung in Rev. 31032 das Phänomen bei mir (Windows 2000) hervorruft. Bis Rev. 31031 erzeugt der Compiler/Linker ein Binary.
Folgende Dateien sind in Rev. 31032 geändert worden:
fpc\Makefile
fpc\utils\fpcm\fpcmake.inc
fpc\utils\fpcm\fpcmake.ini
fpc\rtl\embedded\Makefile
fpc\rtl\embedded\Makefile.fpc

Auffällig ist fpcmake.inc. Wenn man beide Revisionen vergleicht, dann fehlen in der 31032er Variante die Konstanten #013 am Zeilenende.

Gruß, Bernd.

_Bernd
Beiträge: 145
Registriert: Di 13. Feb 2007, 11:16

Re: FPC fit für PIC & AVR

Beitrag von _Bernd »

die aktuellen Revisionen laufen jetzt, danke. :-)

Dann bin ich mal neugierig, was der Compiler so macht:

# [35] DDRE:= DDRE or (1 shl 2);
sbi 2,2
# [36] PORTE:= PORTE and ((1 shl 2) xor $FF);
cbi 3,2

das hätte ich erst mal nicht erwartet. Hut ab :-)

Gruß, Bernd.

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: FPC fit für PIC & AVR

Beitrag von marcov »

ws7 hat geschrieben:Nur zur Info: es gibt einen guten Compiler für 80x51
http://turbo51.com

und einen für PIC10 bis PIC18
http://www.pmpcomp.fr/


Es gibt auch Mikroe Pascal fuer 16-bit (ds)pic glaube ich. Aber im FPC context wird meistens 32-bit PIC (=MIPS) gemeint

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: FPC-Programme auf AVR

Beitrag von Socke »

Hallo zusammen,

ich habe die Wiki-Seite zum AVR-Target um meinen Befehl zum Erstellen des Compilers und der RTL erweitert. Der Compiler arbeitet auch und gibt erfolg aus.

Wie kann ich das Programm auf den Arduino bringen? Habt ihr da schon ein Tool gefunden? Gibt es hier Probleme keine mit dem Arduino-Bootloader, sodass ich später neue Programme hochladen kann?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

AndreasMR
Beiträge: 98
Registriert: Di 4. Aug 2015, 15:29
OS, Lazarus, FPC: Linux, Raspbian, Windows
CPU-Target: 64/32 Bit

Re: FPC fit für PIC & AVR

Beitrag von AndreasMR »

Hallo Socke,

meinst Du etwas wie avrdude?

Beste Grüße

Andreas
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: FPC fit für PIC & AVR

Beitrag von Socke »

von avrdude hatte ich schon gehört? Muss ich bei dem Programm irgendetwas beachten oder kann ich einfach das Programm damit hochladen?

P.S: ich habe kein extra Programmiergerät für den AVR sondern möchte die wie bei Arduino einfach über die USB-Schnittstelle hochladen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

AndreasMR
Beiträge: 98
Registriert: Di 4. Aug 2015, 15:29
OS, Lazarus, FPC: Linux, Raspbian, Windows
CPU-Target: 64/32 Bit

Re: FPC fit für PIC & AVR

Beitrag von AndreasMR »

Hallo Socke,

avrdude ist das Programm, dass innerhalb der Arduino-IDE aufgerufen wird, wenn ein Sketch compiliert / gelinkt werden konnte und dann hochgeladen werden soll. Das Programm macht also nicht anderes, als den für das Zielgerät / Prozessor erzeugten Code hochzuladen.

Aus der Man-Page von avrdude:
Avrdude is a program for downloading code and data to Atmel AVR microcon‐
trollers. Avrdude supports Atmel's STK500 programmer, Atmel's AVRISP and
AVRISP mkII devices, Atmel's STK600, Atmel's JTAG ICE (mkI, mkII and 3,
the latter two also in ISP mode), programmers complying to AppNote AVR910
and AVR109 (including the Butterfly), as well as a simple hard-wired pro‐
grammer connected directly to a ppi(4) or parport(4) parallel port, or to
a standard serial port. In the simplest case, the hardware consists just
of a cable connecting the respective AVR signal lines to the parallel
port.



Beste Grüße

Andreas
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: FPC fit für PIC & AVR

Beitrag von Socke »

AndreasMR hat geschrieben:avrdude ist das Programm, dass innerhalb der Arduino-IDE aufgerufen wird, wenn ein Sketch compiliert / gelinkt werden konnte und dann hochgeladen werden soll. Das Programm macht also nicht anderes, als den für das Zielgerät / Prozessor erzeugten Code hochzuladen.

Wenn ich die Manpage richtig verstanden habe, kann ich mit dem "Programmer Type" Arduino den Arduino-Bootloader ansprechen um das Programm auf dem MCU zu speichern.

Gibt es Unterschiede zwischen Programmen, die von FPC oder von der Arduino-IDE erstellt wurden? Oder muss ich bestimmten Dinge beachten, damit die Programme kompatibel sind?

Wie gesagt: der Bootloader soll intakt bleiben, damit ich ohne den Bootloader neu zu brennen andere Programme aus der Arduino-IDE hochladen kann.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: FPC fit für PIC & AVR

Beitrag von Christian »

Hallo Socke, bei den AVRś ist der Bootloader am Ende des Flashes angesieselt. Es gibt in den Fuses je nach AVR meisst 4 Einstellungen für die Bootsection Grösse die bestimmt wo die Boot Section anfängt. Solang dein Programm nicht in den Bereich hereinragt ist alles gut.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: FPC fit für PIC & AVR

Beitrag von Socke »

Vielen Dank für die Information. Dann steht meinen Abenteuern mit dem Arduino vorerst nichts im Wege :P
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Re: FPC fit für PIC & AVR

Beitrag von Frank Ranis »

Hallo ,

seit kurzem beschäftige ich mich mit AVR's.
Habe zunächs mal mit BascomAVR und LunaAVR probiert , alles ja ganz schön , aber mit der Syntax kann ich mich einfach nicht anfreunden.

Ich will auf Pascal einfach nicht verzichten.

Also im www nach Freepascal/Lazarus und AVR gesucht.
Nach tagelanger Suche bin ich dann auf ppcavr.lpi
https://github.com/graemeg/freepascal/t ... r/compiler gestoßen .

Hier die Files runtergeladen und mit LAZ die ppcavr.lpi compiliert.

Ich habe nun ne pp.exe für avr gebaut , soweit , so gut .
Der Aufruf von pp -h
ergibt

Free Pascal Compiler version 3.1.1 [2016/10/17] for avr
Copyright (c) 1993-2016 by Florian Klaempfl and others
......
......

Die Liste der Compiler-Optionen ist schier unendlich, ich weis derzeit nicht weiter.

Ziel ist es nun zuächst , ein einfaches Pas-Programm , z.b. LED-Blick in Lazarus als Editor zu schreiben und hinten ein HEX-File rauszubekommen.
Dieses soll dann via 'AVRdude' in den Prozessor übertragen werden.
Die Nutzung von 'AVRdude' klappt , das habe ich ja mit den vorherigen Versuchen per. Bascom und Luna hinbekommen.
Zum probieren nutze ich derzeit folgende Hardware.

ATMega16
8MHZ Quarz
Ne LED am Ausgang PortA.7

Es hapert also derzeit schlicht weg daran , das LAZ für den AVR-Compiler pp.exe (für AVR , siehe oben) einzurichten.
Was muß ich tun ? , ich bin halt in dieser Richtung der totale Anfänger .

Gruß

Frank
www.flz-vortex.de

Antworten