LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Rund um die LCL und andere Komponenten
Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von kupferstecher »

Den AVR-Wizard habe ich jetzt zu einem IDE-Plugin umgebaut, sodass man in Lazarus über "Projekt/Neu" ein AVR-Projekt erstellen kann. Inklusive Kommandozeile für den Programmieradapter. Installation des Plug-ins ganz normal als Package.

Download und Installationsanleitung auf Github:
https://github.com/kupferstecher/LazPackageEmbeddedAVR

Grüße~
Dateianhänge
1.png
2.png
3.png

Timm Thaler
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: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von Timm Thaler »

Na hübsch!

Wie kommt denn das Plugin mit verschiedenen AVR-Subsystemen (avr25, avr4, avr5, avr51...) für die unterschiedlichen Controller (ATtiny, ATmega8, ATmega328, ATmega1284...) klar?

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von kupferstecher »

Wie meinst du das mit den verschiedenen Subsystemen? Das Plugin erstellt nur ein Projekt, der passende Compiler muss schon (auch für die passenden Typen) installiert sein. Im Plugin ist eine Liste hinterlegt, welcher Controller welches Instruction-Set/Subsystem hat. Das Plugin trägt dann das passendene (z.B. avr4) in den Projekteinstellungen unter "Target processor (-Cp)" ein. Spezielle Bibliothekspfade für verschiedene Subsysteme werden im Projekt nicht angelegt, es wird davon ausgegangen, dass schon alles stimmt. Subsystemabhängige Bibliothekspfade kann man doch in der Compiler-Configdatei fpc.cfg festlegen?

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von six1 »

Hi,
ich habe Lazarus und fpc mit fpcupdeluxe erstellt. Hat soweit alles geklappt.

Danach habe ich in fpcupdeluxe "avr" und "embedded" ausgewählt und "Install cross-compiler" angeklickt.
Es gab einen neuen Ordner units/avr-embedded mit /rtl und /rtl-extra

Unter /rtl liegen die Dateien für die verschiedenen AVR's. Was jedoch fehlt ist atmega8 und atmega8a


Gleichzeitig habe ich in der Lazarus Installation den Ordner "cross/lib/avr-embedded/" mit den Sub Typen der AVR's...

Was habe ich falsch gemacht?
Gruß, Michael

Timm Thaler
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: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von Timm Thaler »

six1 hat geschrieben:Unter /rtl liegen die Dateien für die verschiedenen AVR's. Was jedoch fehlt ist atmega8 und atmega8a


Es gibt verschiedene "subsystems" für die unterschiedlichen AVR-Typen (https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html). Standardmäßig installiert fpcupdeluxe das avr5-Subsystem. Der ATmega8 braucht das avr4-Subsystem.

Hier wird beschrieben, wie Du verschiedene Subsysteme parallel installierst: https://www.lazarusforum.de/viewtopic.php?f=9&t=11718&hilit=avr

Bei fpxupdeluxe findest Du die Subsysteme unter Setup+ => Custom tools musst Du avr+embedded auswählen, dann bei Cross Build -Cavr4 eintragen, bei Cross SubArch avr4, und dann Crosscompiler neu installieren. Achtung, wenn Du den rtl-Ordner vorher nicht umbenennst, wird das alte Subsystem gelöscht.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von six1 »

..also so ganz verstehe ich es noch nicht. Der Grund hierfür ist nicht die Geschichte mit dem Umbennen der Ordner, eher, warum ich jetzt zwei Lokationen mit den Libs habe!
/cross/lib/avr-embedded
/fpc/units/avr-embedded

Wie ist der genaue Ablauf, Lazarus mit verschiedenen Cross compilern zu erstellen?

1) Lazarus und fpc kompilieren (in meinem Fall WIN10 / 32 Bit)
- muss jetzt hierbei schon in Setup+ bereits -Cavr5 und avr5 eingetragen werden?
laz1.png


2) weitere Cross Compiler nachinstallieren
-wie ist der Ablauf hierfür?
wenn ich hier auf der Hauptseite "avr" und "embedded" einstelle, in Setup+ -Cavr4 und avr4 und "install cross-compiler" anklicke, bekomme ich Fehlermeldungen!

Code: Alles auswählen

 
Building compiler for embedded-avr (OPT: -O2 ) [CROSSOPT: -Cavr4 ] {SUBARCH: avr4}.
fpcupdeluxe: info: TAny_embedded-avr: found correct binary utilities in directory C:\LAZARUS_BASE\cross\bin\avr-embedded
fpcupdeluxe: info: TAny_embedded-avr: found correct library in directory C:\LAZARUS_BASE\cross\lib\avr-embedded\avr5
fpcupdeluxe: Start of compile error summary.
Error: Illegal parameter: -Cavr4
fpcupdeluxe: Start of compile error summary.
fpcupdeluxe: ERROR: FPCCrossInstaller (BuildModuleCustom: FPC): Running cross compiler fpc make all for avr-embedded failed with an error code.
 


Laz2.png


Irgendwie habe ich noch keinen richtigen Plan :?
Gruß, Michael

Timm Thaler
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: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von Timm Thaler »

Muss heissen -Cpavr4

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von six1 »

jetzt habe ich mir so Mühe gegeben, alles schön darzustellen und du beantwortest meine FRAGEN mit 3 Worten...

ok -->geht :lol: :lol:

wobei die XMega Libs kann ich nicht compilieren..

also z.B. mit -Cpavrxmega2 und xmega2 Eintrag bricht fcupdeluxe mit Fehlermeldung ab
Gruß, Michael

Timm Thaler
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: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von Timm Thaler »

Sorry, mit xmega hab ich noch nichts gemacht.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von six1 »

Nach vielen Tests habe ich festgestellt, dass ich keine Lazarus Version zusammenschrauben kann, welche meine derzeitigen Projekt unter win32 und Linux i386 zulässt und gleichfalls die Cross-Compiler hat.
Dies liegt im Grunde daran, dass ich für die Cross-Compiler AVR die Trunc Version des fpc installieren muss (3.0.4 funktioniert nicht), ich aber an dieser Stelle Probleme mit Devart Bibliothek Probleme bekomme (SecureBridge Komponenten).
Also bleibt doch nur eine gesonderte Installation speziell für AVR.
Gruß, Michael

Timm Thaler
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: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von Timm Thaler »

Ich hab momentan auch zwei Installationen: Die 3.2.x stable für Win/Linux-Projekte und die 3.3.x trunk für Tests und den AVR crosscompiler.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von af0815 »

Das Paket sieht recht gut aus. Habe gerade so meine ersten Schritte dazu gemacht.

Ich habe im Paket die Synapse Dateien gelöscht, da es nur Probleme gemacht hat, das ich zugleich eine Laz_Synapse installation über OPM habe. AVRDude habe ich ins Projekt kopieren müss und mir die Config (für AVRDude) über die Einträge von Mathias im Wiki geholt. Irgendwie hat das nicht funktioniert die Pfade für die Dateien anzugeben. Die Arduino Umgebung ist bei mir nicht im Pfad vorhanden.

Gibt es Pläne für eine Weiterentwicklung des Wizards ?!

BTW: Ich bin absoluter Neuling im AVR/Arduino Bereich :-) aber der Blinker von Mathias hat sofort funktioniert.

:D :D :D Gratulation an Mathias und Kupferstecher für die Arbeit :D :D :D :D

BTW: fpc fixes 3.2 und Laz fixes 2.0
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von kupferstecher »

Hallo af0815,

den Installationskonflikt mit LazSynapse schau ich mir mal an. Allerdings hat mein Rechner am Wochenende das Zeitliche gesegnet und bis Ersatz da ist und eingerichtet, kanns dauern...

Wenn jemand ein Patentrezept zu dem Package-Thema weiß, bitte melden! Die Synaser-Dateien liegen momentan in einem eigenen Verzeichnis (werden mit dem Wizard-Package mitgeliefert), vermutlich kommt es zum Namenskonflikt, wenn die gleichen Dateien bereits in Lazarus installiert sind.

af0815 hat geschrieben:AVRDude habe ich ins Projekt kopieren müss und mir die Config (für AVRDude) über die Einträge von Mathias im Wiki geholt.

Unter Windows kannst du den Pfad wo AVRDude installiert ist, also wo AVRDude.exe liegt, in die Umgebungsvariable "Path" aufnehmen. Dann kann AVRDude von überall aufgerufen werden. Einfach mal in der Konsole "avrdude" eingeben und schauen was passiert.
Unter Linux kenn ich mich nicht aus, ich meine aber es gibt einen speziellen Pfad (bin?), die darin befindlichen Programme sind von überall aufrufbar. Ein Symlink in besagtem Order zum Programm wenn es an anderer Stelle installiert ist, funktioniert genauso.

Gibt es Pläne für eine Weiterentwicklung des Wizards ?!

Nicht konkret, Fehler möcht ich aber schon ausmerzen. Wenn es gute Ideen für Erweiterungen gibt, einfach sagen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von af0815 »

ich habe die Synapse Dazeien gelöscht und laz_synapse als package aufgenommen, damit hat es sofort funktioniert. Das Package wird dann bei OPM gefunden.

zu AVRdude, ich habe es extra NICHT im Pfad. Deswegen der Umweg über den vollen Dateinamen inkl. Pfad. Ich schau mir das sowiso noch an, da ich aktuell mit Arduino herumbastel. :D
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: LazPackageEmbeddedAVR: Projekt-Dialog für Target AVR

Beitrag von fliegermichl »

Das hat mich auch schon gewaltig Nerven gekostet. In Lazarus darf es keinen Dateinamen zweimal geben. Ich hab mir angewöhnt Package_Dateiname.pas zu nehmen.

Antworten