Achso, ja, aber beim Arduino sind auch einige avr-as und so dabei. Ich weiss aber nicht, ob man die einfach nehmen kann. Aber wart mal, unter Linux müsstest Du die mit apt-get install binutils bekommen, das hab ich auf dem Raspi versucht, bin dann aber auch nicht weitergekommen.Mathias hat geschrieben:Schade, nur Windows-Versionen, ansonsten ist die Auswahl gross.
Lazarus embedded mit fpcupdeluxe geht nicht
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Ich hab jetzt die ppcrossavr.exe gefunden, die ist in fpcsrc\compiler\ gelandet. Dann hab ich die nach fpc\bin\i386-win32 kopiert, wo auch die ppcrossarm steht, die fpcupdeluxe automatisch erzeugt. Nun läuft der Compiler, bricht aber mit kann unit system nicht finden ab.
Es gibt auch unter fpc\units\avr-embedded keine system, nur eine systems.ppu und eine systems.o
Es gibt jeweils eine system.ppu und system.o unter fpc\units\arm-android\rtl\, fpc\units\arm-linux\rtl\, fpc\units\x86_64-win64\rtl\ und fpc\units\i386-win32\rtl\. Das sind die, die fpcupdeluxe da reingebastelt hat, wenn ich den Crosscompiler für ARM Linux und ARM Android mit installieren lasse.
Code: Alles auswählen
Compile Project, Mode: AVRcross, OS: embedded, CPU: avr, Target: test: Exit code 1, Errors: 1
Fatal: Can't find unit system used by test
Es gibt jeweils eine system.ppu und system.o unter fpc\units\arm-android\rtl\, fpc\units\arm-linux\rtl\, fpc\units\x86_64-win64\rtl\ und fpc\units\i386-win32\rtl\. Das sind die, die fpcupdeluxe da reingebastelt hat, wenn ich den Crosscompiler für ARM Linux und ARM Android mit installieren lasse.
-
- Beiträge: 6946
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Guck mal in diesen Ordner, da sollten die system.* sein.
./fpcsrc/fpc/lib/fpc/3.0.2/units/avr-embedded/rtl
./fpcsrc/fpc/lib/fpc/3.0.2/units/avr-embedded/rtl
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Nee. da gibt es bei mir nur die systems.o und systems.pp. Ich denke nicht, dass einfach Umbenennen das Problem behebt. 

-
- Beiträge: 6946
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Umbenennen bringt sicher nichts.Nee. da gibt es bei mir nur die systems.o und systems.pp. Ich denke nicht, dass einfach Umbenennen das Problem behebt.
Im Anhang meine beiden Dateien, aber ich den mit denen kommst auch nicht viel weiter.
- Dateianhänge
-
system.tar.gz
- (180.48 KiB) 159-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Ich habe jetzt aus dem Anhang dieses Posts http://www.lazarusforum.de/viewtopic.php?p=89132#p89132 die .o und .ppu nach lib\avr-embedded rauskopiert und die ppcrossavr.exe nach fpc\bin\i386-win32. In meine alte Laz 1.6.4 und FPC 3.0.2 Installation.
Und damit kann ich ein Programm kompilieren bis zum Hexfile.
Komischerweise steht in der entstehenden .o Datei "FPC 3.1.1 [2016/10/18] for avr"
Auch in die "trunk"-Installation mit Laz 1.9 und FPC3.1.1 kopiert funktioniert das.
Ist natürlich alles andere als eine saubere Installation. Und es fehlen die ATtinys, aber zum Rumprobieren reichts erstmal.
Und damit kann ich ein Programm kompilieren bis zum Hexfile.
Komischerweise steht in der entstehenden .o Datei "FPC 3.1.1 [2016/10/18] for avr"
Auch in die "trunk"-Installation mit Laz 1.9 und FPC3.1.1 kopiert funktioniert das.
Ist natürlich alles andere als eine saubere Installation. Und es fehlen die ATtinys, aber zum Rumprobieren reichts erstmal.
-
- Beiträge: 6946
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Lazarus embedded mit fpcupdeluxe geht nicht
So weit bin ich leider noch nicht, da ich erst mal die "avr-embedded-as" suchen muss.Und damit kann ich ein Programm kompilieren bis zum Hexfile.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Ich hab grad mal auf dem Raspi geschaut: Wenn Du die binutils installiert hast, müssten die in /usr/bin liegen: avr-ar, avr-as, avr-ld, avr-objcopy, avr-objdump, avr-strip. Ausserdem noch avr-readelf und avr-nm, weiss aber nicht ob die gebraucht werden.Mathias hat geschrieben:So weit bin ich leider noch nicht, da ich erst mal die "avr-embedded-as" suchen muss.
Also eigentlich sollte es reichen /usr/bin als Pfad anzugeben.
-
- Beiträge: 6946
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Auf dem PC sind dort nur folgende avr-Dateien vorhanden:
Code: Alles auswählen
avr-addr2line avr-c++filt avr-gprof avr-nm avr-ranlib avr-strings
avr-ar avrdude avr-ld avr-objcopy avr-readelf avr-strip
avr-as avr-elfedit avr-ld.bfd avr-objdump avr-size
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Ja, sollten die sein, die Du brauchst.Mathias hat geschrieben:Auf dem PC sind dort nur folgende avr-Dateien vorhanden:Code: Alles auswählen
avr-addr2line avr-c++filt avr-gprof avr-nm avr-ranlib avr-strings [b][color=#FF0000]avr-ar[/color][/b] avrdude [b][color=#FF0000]avr-ld[/color][/b] [b][color=#FF0000]avr-objcopy[/color][/b] avr-readelf [b][color=#FF0000]avr-strip[/color][/b] [b][color=#FF0000]avr-as[/color][/b] avr-elfedit avr-ld.bfd [b][color=#FF0000]avr-objdump[/color][/b] avr-size
-
- Beiträge: 6946
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Ja es waren diese, aber man muss überall noch ein "-embedded" dazischen hängen.Ja, sollten die sein, die Du brauchst.
Aber ich denke, das Einrichten geht irgendwie viel einfacher, wen man weis wie.

Jetzt habe ich eine HEX.
Dies hat er mit kompiliert.

Code: Alles auswählen
program test;
uses
atmega128;
begin
PORTC:=0;
end.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Das ist das Problem mit den Anleitungen: Ich hab bestimmt ein Dutzend Forenthreads, Wikis, Howtos gefunden, aber teilweise sind die schon 6 Jahre alt und die angegebenen Quellen nicht mehr da, teilweise steht da halt, kopier Dir die und die Dateien, aber nicht woher, und viel schlimmer nicht wohin. Dann liegen die Daten bei Linux wild verteilt in diversen /usr und /bin und /lib Verzeichnissen. Das eine Makefile ist unvollständig, das nächste Makefile compilert Zeug was nicht zur Anleitung passt.Mathias hat geschrieben:Aber ich denke, das Einrichten geht irgendwie viel einfacher, wen man weis wie.
Ich würd ja gern ein aktuelles Tutorial machen, aber ich bin mit meiner zusammenkopierten Lösung so wenig zufrieden, dass kann man auch keinem antun. Ich muss das nochmal in Ruhe durchgehen.
-
- Beiträge: 6946
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Ich habe versucht, meine HEX hochzuladen. Die Ausgabe von avrdude sieht fehlerfrei aus, nur leider sieht es so aus, wie wen es nicht geflasht wurde.
Ich habe vorhin ein blink-Sketch mit der Arduino-IDE hochgeladen, aber nach dem Aufruf von avrdude, blink die LED immer noch.
Diese müsste eigentlich jetzt ein Dauerbrenner haben.
Ich habe vorhin ein blink-Sketch mit der Arduino-IDE hochgeladen, aber nach dem Aufruf von avrdude, blink die LED immer noch.

Diese müsste eigentlich jetzt ein Dauerbrenner haben.
Code: Alles auswählen
avrdude -Cavrdude.conf -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:test.hex:i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "test.hex"
avrdude: writing flash (1920 bytes):
Writing | ################################################## | 100% 0.56s
avrdude: 1920 bytes of flash written
avrdude: verifying flash memory against test.hex:
avrdude: load data flash data from input file test.hex:
avrdude: input file test.hex contains 1920 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.42s
avrdude: verifying ...
avrdude: 1920 bytes of flash verified
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
avrdude done. Thank you.
Code: Alles auswählen
program test;
uses
atmega128;
begin
DDRB := 255;
PORTB := 255;
end.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Meine Compilereinstellungen:
Erzeugt mir in test\lib\embedded: test.o, test.ppu, test.s <= enthält das Assembler-Listing, welches der FPC erzeugt und aus dem der avr-Compiler das hexfile macht
Erzeugt in test: test.hex, das muss etwa so aussehen (im Texteditor):
Allerdings habe ich das Projekt mit http://forum.lazarus.freepascal.org/ind ... ic=35486.0 erstellt. Dabei wird die Unit atmega328p.pp automatisch eingebunden.
Code: Alles auswählen
Verzeichnisse Units (-Fu): fpc\units\avr-embedded\;cross\lib\avr_embedded\
Unit-Ausgabe (-FU): lib\$(TargetCPU)-$(TargetOS)
Ziel-Dateiname (-o): test
Standart-Config fpc.cfg
Ziel-OS: Embedded
Ziel-CPU: avr
Zielprozessor: AVR5
Optimierung: -O2 oder -O3
Benutzerdef. Einstellungen:
-Cpavr5
-Wpatmega328p
-a
Erzeugt in test: test.hex, das muss etwa so aussehen (im Texteditor):
Code: Alles auswählen
Adresse..Programmcode..Prüfsumme
:100000000C9434000C94AF000C94AF000C94AF002F
:100010000C94AF000C94AF000C94AF000C94AF00A4
:100020000C94AF000C94AF000C94AF000C94AF0094
:100030000C94AF000C94AF000C94AF000C94AF0084
:100040000C94AF000C94AF000C94AF000C94AF0074
:100050000C94AF000C94AF000C94AF000C94AF0064 <= Interrupt-Einsprungpunkte
:100060000C94AF000C94AF001124EFEFEDBFE8E06B <= Dein Programm
:10007000EEBFA0E0B1E0D1E0E2E6F1E002C0059021
:100080000D92A230BD07D9F7A2E0B1E0D1E00C9407
:100090004A001D92A230BD07E1F70C94A100DF9346
:1000A000CF93CDB7DEB7C650D0400FB6F894DEBFC1
:1000B0000FBECDBF512D212D312D412D5A832B83C4
:1000C0003C834D835A814B812C813D8151504109A4
:1000D000210931095A834B832C833D833A816B81FB
:1000E0004C815D81A1E02A2F320F611D411D511D00
:1000F0003A836B834C835D83209100013091010131
:100100002150310920930001309301017A818B81C4
:100110006C819D81A0E83A2FAAE14A2FA6E05A2FD0
:10012000212D73178407650792070CF4D7CFCA5F98
:10013000DF4F0FB6F894DEBF0FBECDBFCF91DF917A
:1001400008950E94AE0027B12061206227B944982B
:100150000E944F00449A0E944F00F9CF08950C94DA
:02016000AF00EE
:0201620000009B
:00000001FF <= Endemarker
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus embedded mit fpcupdeluxe geht nicht
Allerdings unterscheiden sich atmega128.pp und atmega128p.pp nur gering, sollte keinen Einfluss haben.Mathias hat geschrieben:Code: Alles auswählen
program test; uses atmega128;[color=#FF0000] <= das müsste atmega128[b]p[/b] sein[/color] begin DDRB := 255; PORTB := 255; end.