AVR embedded für verschiedene Controllertypen - geht!

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

AVR embedded für verschiedene Controllertypen - geht!

Beitragvon Timm Thaler » 7. Aug 2018, 13:00 AVR embedded für verschiedene Controllertypen - geht!

Es gab hier mal das Problem, dass man beim Verwenden verschiedener Controllertypen - Atmega, Attiny - den FPC immer mit dem entsprechenden Subsystem - avr5, avr2 - neu kompilieren muss. Leider finde ich den Thread dazu nicht mehr. Ist wohl durch die Hitze geschmolzen.

Ich hab jetzt naiv einen Atmega32 durch einen Atmega1284 ersetzt, weil der 32er am Ende des Speichers noch zuviel Programm übrig hatte. Und dummerweise stelle ich fest, der braucht ja Subsystem avr51 statt avr5.

Die Sourcen für alle diese Tinys, Megas... sind ja in fpcsrc vorhanden. Also hab ich mal verwegen das Verzeichnis fpc\units\avr-embedded\rtl in rtl-avr5 umbenannt. Dann mit Fpcupdeluxe einen neuen avr embedded Crosscompiler für avr51 installiert. Dabei entsteht wieder ein Verzeichnis rtl im obigen Pfad. Das nach rtl-avr51 umbenannt. Im Projekt noch alles auf ATmega1284 und unter den projekteigenen Compilereinstellungen auf avr51 eingestellt. Die Pfadeinstellungen für den Crosscompiler bleiben. Geht. Diverse Konstanten im Programm müssen natürlich angepasst werden (Uart => Uart0 usw.).

avr-embedded-multi.png


Offenbar ist es dem Compiler egal, in welchem Unterverzeichnis er die avr embedded units findet. Man könnte also auf diese Weise auch Subsysteme für ATtiny (rtl-avr2) und den Arduino Mega (ATmega2560 => rtl-avr6) installieren. Mag mal jemand, der mit diesen Controllern arbeitet das verifizieren? Dann könnte man das auch ins AVR embedded Tutorial übernehmen.

!!! Vorher wie immer bei Änderungen mit Fpcupdeluxe eine Kopie des Lazarus / FPC Ordners erstellen !!!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Timm Thaler
 
Beiträge: 730
Registriert: 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
Nach oben

Beitragvon Mathias » 7. Aug 2018, 13:16 Re: AVR embedded für verschiedene Controllertypen - geht!

Dies werde ich bei Gelegenheit testen

Wen dies funktionieren würde, müsste man die DonAlfredo mitteilen, vielleicht kann er dann fpcupdeluxe anpassen.

Hast du zufällig diesen Thread gesucht ? viewtopic.php?f=15&t=11044&p=98353#p98353
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 7. Aug 2018, 15:55 Re: AVR embedded für verschiedene Controllertypen - geht!

Sieht leider nach einem Traum an, ich kann es nicht nachvollziehen
Was stimmt, man kann den rtl-Ordner umbennen wie man will, dies ist FPC egal.

Ich habe mir einen neunen AVR-Compiler gebaut, ohne Setup+ Parameter ist dieser für AVR 5.
Nun habe ich den rtl --> rtl_5 umbenennt. Den Atmega kann ich kompilieren.

Nun habe ich bei Setup+ die Parameter für den ATTiny eingestellt. Somit habe ich einen neuen rtl-Ordner bekommen.
Aber der Compiler meldet dann einen Fehler. Erst wen ich den Ordner rtl_5 entferne, dann wird erst fehlerfrei compiliert.

Das Selbe bei ATmega2560.

Vielleicht könnte man ein Script machen, welcher den benötigten Ordner kopiert und löscht.

Nachtrag:
In den verschiedenen rtl-Ordner hat es Dateien wie avrsim.o, consoleio.o, etc. , welche sich unterscheiden.
Und das schlimmste, system.o ist auch anders.

Ich denke, die Lazarus-Macher, könnten sicher etwas dagegen tun.
Solche CPU-Unterschiede gibt es auch auf der PC-Plattform und dort funktioniert es.
Unter "Projekt --> Projekteinstellungen... --> Konfiguration und Ziele --> Zielprozessor (-Cp):" Man könnte doch dies auswerten, wie auf dem PC.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 7. Aug 2018, 16:53 Re: AVR embedded für verschiedene Controllertypen - geht!

Doch geht, man muss nur für die Tinys bei Projekteinstellungen => Compilereinstellungen => Pfade => Andere Units den Pfad auf die rtl-avr25 angeben, sonst versucht der Compiler die avr51 zu nehmen. Da das aber in den Einstellungen zu jedem Projekt gespeicht wird, finde ich das akzeptabel, -CpAVR25 und -WpATTINY2313 muss man ja auch einmalig im Projekt festlegen.

Ich habe gerade meine Heizungssteuerung für ATmega1284 und ein Testprogramm für ATtiny2313 parallel kompiliert, und offensichtlich wird das auch sauber für ATmega und ATtiny gemacht, beim ersten wird Hardware-Mul verwendet, beim zweiten Software-Mul.

Aktuell blöd ist noch, dass bei einem Compiler Update jedes Embedded-Subsystem einzeln geholt werden muss und dann jeweils das rtl-Verzeichnis umbenannt oder die Dateien ins zum Subsystem passende Verzeichnis kopiert werden müssen.
Timm Thaler
 
Beiträge: 730
Registriert: 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
Nach oben

Beitragvon Mathias » 7. Aug 2018, 17:11 Re: AVR embedded für verschiedene Controllertypen - geht!

Doch geht, man muss nur für die Tinys bei Projekteinstellungen => Compilereinstellungen => Pfade => Andere Units den Pfad auf die rtl-avr25 angeben, sonst versucht der Compiler die avr51 zu nehmen. Da das aber in den Einstellungen zu jedem Projekt gespeicht wird, finde ich das akzeptabel, -CpAVR25 und -WpATTINY2313 muss man ja auch einmalig im Projekt festlegen.
Jetzt geht es bei mir auch, aber irgendwie ist es doch eine Notlösung.

Solche CPU-Unterschiede gibt es auch auf der PC-Plattform und dort funktioniert es.
Ich habe gerade gesehen, dort wird es ein wenig anders gelöst. Die verschiedenen Plattformen sind
schon unter /fpc/units gelistet, dort wo auch avr-embedded vorhanden ist.
Somit müsste es eigentlich hier folgende Ordner geben, wen es sauber sein soll.:
- avr-embedded-25
- avr-embedded-5
- avr-embedded-6
- etc.

Nachtrag.
Man könnte hier doch mal den Vorschlag machen: http://lists.freepascal.org/cgi-bin/mai ... /fpc-devel
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon sstvmaster » 7. Aug 2018, 22:01 Re: AVR embedded für verschiedene Controllertypen - geht!

Hi,

wäre es dann nicht besser es gibt eine ini Datei wo die ganzen Plattformen/Compiler, die installiert sind, eingetragen werden.
Und wenn man ein neues Projekt erstellt, die dann auch zur Verfügung stehenden Plattformen direkt angeboten würden?
So könnte man mit Templates direkt die Vorgaben in den Projekteinstellungen setzen.

Natürlich müsste man sich noch gedanken drum machen wie man die einzelnen Plattformen installiert, theoretisch immer aktuell aus dem SVN.

Das fiel mir jetzt nur so bei eurer interessanten Diskusion auf, das ihr immer manuell die Parameter der einzelnen Plattformen/Compiler setzen müsst.

Maik
Zuletzt geändert von sstvmaster am 7. Aug 2018, 22:15, insgesamt 1-mal geändert.
OS: Windows 7 32/64bit
Lazarus 1.8.4, 32bit
Lazarus 2.1.0 Trunk 3.3.1, 32bit
sstvmaster
 
Beiträge: 93
Registriert: 22. Okt 2016, 22:12
OS, Lazarus, FPC: Lazarus 1.8.4 + 2.1.0 Trunk 3.3.1 / Win32, Windows 7 32+64bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon Timm Thaler » 7. Aug 2018, 22:09 Re: AVR embedded für verschiedene Controllertypen - geht!

Ja, natürlich wäre das toll, aber gefühlt sind das 3 Leute, die AVR embedded programmieren. Wir sind ja schon froh, dass Verbesserungen und Bugreports ins Embedded System zügig einfließen, der Rest ist dann schon die Sahne auf der Torte.
Timm Thaler
 
Beiträge: 730
Registriert: 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
Nach oben

Beitragvon mse » 8. Aug 2018, 06:11 Re: AVR embedded für verschiedene Controllertypen - geht!

sstvmaster hat geschrieben:wäre es dann nicht besser es gibt eine ini Datei wo die ganzen Plattformen/Compiler, die installiert sind, eingetragen werden.
Und wenn man ein neues Projekt erstellt, die dann auch zur Verfügung stehenden Plattformen direkt angeboten würden?
So könnte man mit Templates direkt die Vorgaben in den Projekteinstellungen setzen.

Auf diese Art wird es in MSEide gehandhabt. Bewährt sich gut.
mse
 
Beiträge: 2013
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon Socke » 8. Aug 2018, 07:11 Re: AVR embedded für verschiedene Controllertypen - geht!

Mathias hat geschrieben:Nachtrag.
Man könnte hier doch mal den Vorschlag machen: http://lists.freepascal.org/cgi-bin/mai ... /fpc-devel

Ich hatte dazu mal einen Feature Request erstellt: https://bugs.freepascal.org/view.php?id=30294
Bisher hat sich aber noch niemand gefunden, der den umsetzen will.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
 
Beiträge: 2555
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon af0815 » 8. Aug 2018, 07:36 Re: AVR embedded für verschiedene Controllertypen - geht!

Socke hat geschrieben:
Mathias hat geschrieben:Nachtrag.
Man könnte hier doch mal den Vorschlag machen: http://lists.freepascal.org/cgi-bin/mai ... /fpc-devel

Ich hatte dazu mal einen Feature Request erstellt: https://bugs.freepascal.org/view.php?id=30294
Bisher hat sich aber noch niemand gefunden, der den umsetzen will.

Vielleicht den Vorschlag mit Begründung auf der fpc-devel posten mit dem Hinweis auf den Featurerequest. Zumindest kann man sich dann einmal eine Antwort erhoffen.

Alternativ kann man im englischen Forum den Vorschlag mal andiskutieren, sofern noch nicht geschehen.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3497
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Mathias » 8. Aug 2018, 15:56 Re: AVR embedded für verschiedene Controllertypen - geht!

Ich hatte dazu mal einen Feature Request erstellt: https://bugs.freepascal.org/view.php?id=30294
Bisher hat sich aber noch niemand gefunden, der den umsetzen will.
Den Report mal mit einem neuen Post wieder mal aufwärmen.

Und wenn man ein neues Projekt erstellt, die dann auch zur Verfügung stehenden Plattformen direkt angeboten würden?
Dies wäre natürlich Deluxe.

Wen unter "Datei --> neu... --> Project" die AVR kommen würde, das wäre natürlich die Ideallösung. :wink:

Unterstützen tut Lazarus so etwas. Sobald man pas2js installiert, kommt "Web Browser Application" zur Auswahl. Und wen man "Web Browser Application" anwählt, kommt sogar ein Dialog mit Optionen. Beim AVR könnte man diesen nutzen, zB. um den den AVR und Pfad zu avrdude anzugeben.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 24. Sep 2018, 17:29 Re: AVR embedded für verschiedene Controllertypen - geht!

sstvmaster hat geschrieben:Hi,

wäre es dann nicht besser es gibt eine ini Datei wo die ganzen Plattformen/Compiler, die installiert sind, eingetragen werden.
Und wenn man ein neues Projekt erstellt, die dann auch zur Verfügung stehenden Plattformen direkt angeboten würden?
So könnte man mit Templates direkt die Vorgaben in den Projekteinstellungen setzen.

Natürlich müsste man sich noch gedanken drum machen wie man die einzelnen Plattformen installiert, theoretisch immer aktuell aus dem SVN.

Das fiel mir jetzt nur so bei eurer interessanten Diskusion auf, das ihr immer manuell die Parameter der einzelnen Plattformen/Compiler setzen müsst.

Maik

Mit meiner Package, kommt man diesem Ziel immer näher.

Im Prinzip könnte man mit Timms Anleitung, die verschiedenen Plattformen einrichten.
Die Unit-Pfade könnte man dann mit der Package setzen.

In der Maillist, habe ich folgende Antwort bekommen:
At the moment one needs to manually compile the RTL for different sub architectures, then copy to different folders, then modify fpc.cfg to locate the correct RTL for the sub architecture n the user program.


Somit könnte dies aber in Zukunft ändern.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 24. Sep 2018, 18:57 Re: AVR embedded für verschiedene Controllertypen - geht!

Ja, das wäre nett und sicher auch hilfreich für kommende MPS und ARM Subarches. Vor allem ein automatisches Update der verschiedenen Subarches wäre wünschenswert, sonst verliert man schnell den Überblick.
Timm Thaler
 
Beiträge: 730
Registriert: 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
Nach oben

Beitragvon Mathias » 24. Sep 2018, 21:26 Re: AVR embedded für verschiedene Controllertypen - geht!

Vor allem ein automatisches Update der verschiedenen Subarches wäre wünschenswert

Man könnte mal fragen, ob man dies in fpcupdeluxe einbauen könnte.

Ein solche Ordnerstruktur wie oben beschrieben wäre eine Option:
Ich habe gerade gesehen, dort wird es ein wenig anders gelöst. Die verschiedenen Plattformen sind
schon unter /fpc/units gelistet, dort wo auch avr-embedded vorhanden ist.
Somit müsste es eigentlich hier folgende Ordner geben, wen es sauber sein soll.:
- avr-embedded-25
- avr-embedded-5
- avr-embedded-6
- etc.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon DonAlfredo » 27. Sep 2018, 16:14 Re: AVR embedded für verschiedene Controllertypen - geht!

Just to keep you informed.

For a renewal of some hardware with PIC24/PIC32 MCU, I am going to use the SAMD / SAMC Cortex-M0 by ATmel/Microchip.
And a switch from C towards Pascal (FPC) for writing firmware.

As maintainer (and user) of fpcupdeluxe, I am going to keep fpcupdeluxe as embedded friendly as possible.

For the moment, this means a better handling of embedded settings.
AND a fork of FPC and Lazarus that is suitable for many SAMC and SAMD (ARMV6M) and STM (ARMV7EM) micro's.
Fpcupdeluxe will enable easy install of this new FPC and Lazarus. See included screenshot.
If the "embedded"-speedbutton is used, two libraries will also be installed: mbf and pxl.

The embedded work is done together with the author of the mbf framework.
https://github.com/michael-ring/mbf

Many changes are ongoing right now. So do not expect 100% success at all moments.

I will also monitor the changes in FPC and Lazarus to be able to install multiple subarchs the easy way.
And to auto-update them when needed.
(the reason to post here)

Feel free to test the latest release of fpcupdeluxe.
https://github.com/newpascal/fpcupdelux ... ses/latest
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
DonAlfredo
 
Beiträge: 16
Registriert: 28. Sep 2017, 09:26

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron
porpoises-institution
accuracy-worried