Freepascal am ESP8266

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Freepascal am ESP8266

Beitrag von Mathias »

Aber ich habe mir auch mal einen bestellt
Ich auch, aber ohne Display.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: Freepascal am ESP8266

Beitrag von Ich934 »

Ich warte auf Erfahrungsberichte. Ich habe hier noch zig ESP8266 rum liegen (und auch mehrere im Einsatz - aber nicht mit Pascal programmiert). Das sind tolle Geräte und ich nutze diese auch bei der Heimautomatisierung und in einer Wetterstation. Wenn das jetzt mit FreePascal gehen würde, wäre das natürlich noch mal einen Schritt besser.
Tipp für PostgreSQL: www.pg-forum.de

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Freepascal am ESP8266

Beitrag von Mathias »

In fpcupdeluxe ist der xtensa schon vorhanden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Freepascal am ESP8266

Beitrag von Mathias »

Ich habe heute meine "ESP8266 NodeMCU V3" bekommen.

Ich habe das Teil an den USB-Port angeschlossen.
Ausser das kurz eine kleine blaue LED aufleuchtet, passiert nichts.

Der USB meldet sich auch nicht unter /dev/ttyUSBx an.

Ist das ein normales Verhalten ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Freepascal am ESP8266

Beitrag von Mathias »

Hat sich erledigt, mein USB Hub ist nicht kompatibel.

Erster Blinker läuft, aber nur mal mit Arduino.
Mal gucken, ob ich es mit Lazarus auch hinkriege.

Interessant, Arduino lädt den Sketch mit Python hoch.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Freepascal am ESP8266

Beitrag von Mathias »

Ich habe mal einen ersten Versuch gestartet.

fpcupdeluxe hat mir eine Cross-Compiler für xtensa gebaut.
Mit dem neunen Lazarus habe ich unter Ziele folgendes eingestellt: FReeRTOS; xtensa; lx106
Nur wen ich mit F9 starten will, kommt folgender Fehler:

Code: Alles auswählen

Projekt kompilieren, OS: freertos, CPU: xtensa, Ziel: /home/tux/fpcupdeluxe_xtensa/projects/project1: Exit code 1, Fehler: 2
Error: /bin/sh: 1: xtensa-esp32-elf-gcc: not found
Free Pascal Compiler version 3.3.1-r45732 [2020/07/05] for xtensa
Copyright (c) 1993-2020 by Florian Klaempfl and others
Target OS: FreeRTOS
Compiling /home/tux/fpcupdeluxe_xtensa/projects/project1.lpr
Assembling project1
project1.lpr(6,0) Error: Error while linking
Scheinbar findet er den gcc nicht.
In meinem neuen Lazarus wäre der fehlende gcc unter /home/tux/fpcupdeluxe_xtensa/cross/bin/xtensa-freertos vorhanden.
Kann ich Lazarus irgendwie beibringen, das die Datei dort zu finden ist ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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: Freepascal am ESP8266

Beitrag von af0815 »

für die Pfade und beim Crosscompiling die Crosstools zu finden ist der FPC zuständig. Kontrolliere mal, wohin die Einträge in der (zuständigen) fpc.cfg zeigen. Weil entweder findet er den Pfad nicht oder baut den Namen für die Tools nicht richtig zusammen, weil die werden vom Toolchain her vorgegeben.

Bei dir sind die Tools in xtensa-freertos und zusammenbauen tut er xtensa-esp32-elf-xxxx als Präfix. Schau also mal ob das in der Konfig stimmt. Notfalls kann man sich mit links helfen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Freepascal am ESP8266

Beitrag von PascalDragon »

Mathias hat geschrieben:
So 5. Jul 2020, 15:56
Scheinbar findet er den gcc nicht.
In meinem neuen Lazarus wäre der fehlende gcc unter /home/tux/fpcupdeluxe_xtensa/cross/bin/xtensa-freertos vorhanden.
Kann ich Lazarus irgendwie beibringen, das die Datei dort zu finden ist ?
Entweder die fügst den Pfad zur xtensa-esp32-elf-gcc in deine PATH Variable ein (also das Verzeichnis, nicht den Pfad zur Binary selbst) oder du gibst den Pfad per Parameter -FDxxx an, entweder in den Projekteinstellungen von Lazarus, in einer separaten cfg-Datei (welche du per @-Parameter einbinden kannst) oder in deiner fpc.cfg. Bei letzterem solltest du das dann wie folgt schützen:

Code: Alles auswählen

#ifdef CPUXTENSA
-FD/home/tux/fpcupdeluxe_xtensa/cross/bin/xtensa-freertos
#endif
FPC Compiler Entwickler

DonAlfredo
Beiträge: 74
Registriert: Do 28. Sep 2017, 10:26

Re: Freepascal am ESP8266

Beitrag von DonAlfredo »

AFAIK, the advises given will not work in case the PATH is not (correctly) set.
I am preparing a compiler (t_freertos.pas) patch that honors the standard settings (-FD) for all tools used.
It will also try to find the esp-idf without explicit PATH.
The tricky part will always be: does the patch get accepted.

Edit:
https://bugs.freepascal.org/view.php?id=37308

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Freepascal am ESP8266

Beitrag von Mathias »

Ich habe mal versucht, folgende Datei;
..../fpcupdeluxe_xtensa/cross/bin/xtensa-freertos/xtensa-esp32-elf-gcc
nach /bin zu kopieren.
Jetzt hat sich die Fehlermeldung ein wenig verändert:

Code: Alles auswählen

Projekt kompilieren, OS: freertos, CPU: xtensa, Ziel: Project1: Exit code 1, Fehler: 5
Error: xtensa-esp32-elf-gcc: error: /components/esp32/ld/esp32.ld: No such file or directory
Error: xtensa-esp32-elf-gcc: warning: '-x c' after last input file has no effect
Error: xtensa-esp32-elf-gcc: fatal error: no input files
Error: compilation terminated.
Free Pascal Compiler version 3.3.1-r45732 [2020/07/05] for xtensa
Copyright (c) 1993-2020 by Florian Klaempfl and others
Target OS: FreeRTOS
Compiling Project1.pas
Assembling project1
Project1.pas(6,0) Error: Error while linking
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

DonAlfredo
Beiträge: 74
Registriert: Do 28. Sep 2017, 10:26

Re: Freepascal am ESP8266

Beitrag von DonAlfredo »

New version of fpcupdeluxe. Tuned for Lazarus 2.0.10 and xtensa !
https://github.com/LongDirtyAnimAlf/fpc ... tag/1.6.8z

Please remove the fpcupdeluxe cross bins and libs for xtensa.

Build FPC with the patch from the bugtracker (if you did this already, please skip).
https://bugs.freepascal.org/file_downlo ... 9&type=bug

Build xtensa-freertos cross-compiler.

This worked for me:

Code: Alles auswählen

program project1;

{$linklib libesp_system.a}
{$linklib libesp_timer.a}
{$linklib libesp_ipc.a}
{$linklib libsoc_esp32.a}

begin
  writeln('hello');
end.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Freepascal am ESP8266

Beitrag von Mathias »

Jetzt bleibt er mit folgendem Fehler stecken.

Code: Alles auswählen

Projekt kompilieren, OS: freertos, CPU: xtensa, Ziel: /home/tux/fpcupdeluxe_xetensa/projects/project1: Exit code 1, Fehler: 2
Error: /usr/bin/env: »python“: Datei oder Verzeichnis nicht gefunden
project1.lpr(9,18) Error: Can't call the linker, switching to external linking
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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: Freepascal am ESP8266

Beitrag von Socke »

Die Meldung ist recht eindeutig: du hast kein Python installiert.
Im Wiki ist das nicht direkt angegeben; zum Flashen wird aber ein Python-Script aufgerufen - d.h. du brauchst es sowieso.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Freepascal am ESP8266

Beitrag von Mathias »

Die Meldung ist recht eindeutig: du hast kein Python installiert.
Folgende sind installiert:

Code: Alles auswählen

$ python
python2     python2.7   python3     python3.6   python3.6m  python3.8   
Aber ein einfaches python fehlte.

Jetz bekomme ich folgender Fehler:

Code: Alles auswählen

Projekt kompilieren, OS: freertos, CPU: xtensa, Ziel: project1: Exit code 1, Fehler: 3
Error: Traceback (most recent call last):
Error: ImportError: No module named pyparsing
project1.pas(11,0) Error: Error while linking
Egal mit und ohne $linklib Zeilen.

Ist wohl nichts mit schnell ausprobieren. 8)
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Freepascal am ESP8266

Beitrag von FPK »

Mathias hat geschrieben:
Fr 10. Jul 2020, 19:27
Jetz bekomme ich folgender Fehler:

Code: Alles auswählen

Projekt kompilieren, OS: freertos, CPU: xtensa, Ziel: project1: Exit code 1, Fehler: 3
Error: Traceback (most recent call last):
Error: ImportError: No module named pyparsing
project1.pas(11,0) Error: Error while linking
Egal mit und ohne $linklib Zeilen.
Da fehlt das Python-Paket. Das sollte allerdings normalerweise während der ESP-SDK-Installation installiert werden (beim esp8266 manuell, beim esp32 sollte es der Skript machen).

Ansonsten habe ich das Wiki aktualisiert, wie man den ESP8266 mit FPC nutzen kann, geht inzwischen auch dank der Patches von Christo Crause.

Antworten