WIN32 und ARM
WIN32 und ARM
moin moin,
wie kann ich unter WIN32 einen ARM ( z.B. STM32F103 o.ä. ) programmieren?
Also kein Betriebssystem, alles selber.
Danke.
Mit Gruß
Der Pelikan
wie kann ich unter WIN32 einen ARM ( z.B. STM32F103 o.ä. ) programmieren?
Also kein Betriebssystem, alles selber.
Danke.
Mit Gruß
Der Pelikan
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: WIN32 und ARM
Was meinst Du mit "Programmieren" ?
Üblicherweise braucht man für "embedded" Prozessoren / Projekte:
- Ein (Prototypen-) Board mit dem Prozessor. Das hat meist eine JTAG-Schnittstelle für die "Programmierung"
- Einen USB <-> JTAG Adapter
- Software
Die Software besteht aus
- Cross-Compiler. Üblicherweise GNU, fpc sollte auch gehen, ist aber u.U. schwierig in die Entwicklungs-Umgebung zu integrieren
- Debugger, der sich mit dem Einen USB <-> JTAG Adapter versteht
- IDE (z.B. Eclipse). Ich habe mal ansatzweise versucht Lazarus für "remote debugging" zu konfigurieren. Das ist alles andere als einfach.
-Michael
Üblicherweise braucht man für "embedded" Prozessoren / Projekte:
- Ein (Prototypen-) Board mit dem Prozessor. Das hat meist eine JTAG-Schnittstelle für die "Programmierung"
- Einen USB <-> JTAG Adapter
- Software
Die Software besteht aus
- Cross-Compiler. Üblicherweise GNU, fpc sollte auch gehen, ist aber u.U. schwierig in die Entwicklungs-Umgebung zu integrieren
- Debugger, der sich mit dem Einen USB <-> JTAG Adapter versteht
- IDE (z.B. Eclipse). Ich habe mal ansatzweise versucht Lazarus für "remote debugging" zu konfigurieren. Das ist alles andere als einfach.
-Michael
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10: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
Re: WIN32 und ARM
Mit MSEide geht es recht gut, da ich MSEide häufig für remote-debugging und cross-compiling für embedded benutze - auch für gcc-Projekte.mschnell hat geschrieben:Das ist alles andere als einfach.
-
- Lazarusforum e. V.
- Beiträge: 3177
- 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: WIN32 und ARM
Der FPC ist wunderbar in die IDE Lazarus integriertmschnell hat geschrieben:Die Software besteht aus
- Cross-Compiler. Üblicherweise GNU, fpc sollte auch gehen, ist aber u.U. schwierig in die Entwicklungs-Umgebung zu integrieren

Du musst vorher den Cross-Compiler selbst bauen; Grundsätzlich funktioniert das für ARM genau so wie für die AVR-Prozessoren beschrieben unter http://wiki.freepascal.org/AVR; ersetze hier imm AVR mit ARM.
Du brauchst Binutils für ARM z.B. von http://svn.freepascal.org/cgi-bin/viewv ... t=fpcbuild; je nachdem welche Binutils du verwendest, müssen die Parameter unten angepasst werden.
Je nach verwendetem Microcontroller musst du die Subarchitektur setzen. Ich habe hier z.B. einen Cortex-M0 LPC1114; daher ist die Subarchitektur armv6m (vgl. https://en.wikipedia.org/wiki/List_of_A ... hitectures Spalte "ARM Architecture"). Eine Erläuterung der Optionen findest du in der BuildFAQ
Bei mir ist die Befehlzeile:
Code: Alles auswählen
make buildbase installbase CPU_TARGET=arm OS_TARGET=embedded SUBARCH=armv6m CROSSINSTALL=1 CROSSBINDIR=C:\\FPC\\arm-none-eabi INSTALL_PREFIX=C:\\FPC\\3.1.1 NOGDB=1 BINUTILSPREFIX=arm-none-eabi- PP=C:\FPC\3.0.0\bin\i386-win32\fpc.exe
Bitte beachte: aktuell werden keine Bibliotheken mitgeliefert; du musst also direkt die jeweiligen Prozessor-Register ansprechen. Zum Glück musst du die Registerdefinitionen nicht mehr selbst schreiben; der FPC bringt diese für folgenden STM32F103-Modelle bereits mit: STM32F103X4, STM32F103X6, STM32F103X8, STM32F103XB, STM32F103XC, STM32F103XD, STM32F103XE, STM32F103XF, STM32F103XG.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 56
- Registriert: So 24. Jan 2016, 18:31
- OS, Lazarus, FPC: Windows(10,8.1,7), Archlinux, Debian
- CPU-Target: 64Bit + 32Bit
- Wohnort: Winnenden
- Kontaktdaten:
Re: WIN32 und ARM
Bei der Hardware würde ich zu einem Arduino greifen. Günstig, und du kannst in als Programmer einsetzen.
Ein Betriebssystem läuft einem Micro Controller nie und es ist meist nicht schwer, Programme dafür zu schreiben, da du die Hardware direkt ansprechen kannst und das OS nicht als Vermittlungsschicht vorhanden ist. Das heißt, du musst nicht auf OS Spezifische dinge achten musst dafür aber die DOKU der Hardware lesen.
https://www.amazon.de/Vorstands-Develop ... ds=arduino
Das ist kein orginal, aber mindestens genauso gut, da Arduino OpenSource ist, wurden die Orginal Baupläne verwendet.
https://www.amazon.de/SunFounder-Sideki ... +lcd&psc=1
Das könnte nützlich sein, wenn du was mit dem Arduino anfangen willst, außer eine LED am Board selbst zum Blinken zu bringen.
LG
Rene Steiner
Ein Betriebssystem läuft einem Micro Controller nie und es ist meist nicht schwer, Programme dafür zu schreiben, da du die Hardware direkt ansprechen kannst und das OS nicht als Vermittlungsschicht vorhanden ist. Das heißt, du musst nicht auf OS Spezifische dinge achten musst dafür aber die DOKU der Hardware lesen.
https://www.amazon.de/Vorstands-Develop ... ds=arduino
Das ist kein orginal, aber mindestens genauso gut, da Arduino OpenSource ist, wurden die Orginal Baupläne verwendet.
https://www.amazon.de/SunFounder-Sideki ... +lcd&psc=1
Das könnte nützlich sein, wenn du was mit dem Arduino anfangen willst, außer eine LED am Board selbst zum Blinken zu bringen.
LG
Rene Steiner
Wissen ist Macht und ich weis, das ich nichts weis
Re: WIN32 und ARM
moin moin,
melde mich vom Urlaub zurück...
Mit dem Bau des Cross-Compilers tu ich mich schwer.
MSEide werde ich mir mal ansehen.
Um die Anwendung zu verdeutlichen:
Eine Steuerung für meine CNC-Fräse (G-Code-Interpreter) von ASM (ca. 20KB 8051-Code) auf Pascal ( STM32F746 ) umzustellen.
Die Win-Version mit Delphi läuft perfekt, mit FPC-Win32 hakelt das zeichnen auf Canvas. Sieht nicht schön aus.
Arduino und so will ich nicht.
Danke für Eure Tips.
Der Pelikan
melde mich vom Urlaub zurück...
Mit dem Bau des Cross-Compilers tu ich mich schwer.
MSEide werde ich mir mal ansehen.
Um die Anwendung zu verdeutlichen:
Eine Steuerung für meine CNC-Fräse (G-Code-Interpreter) von ASM (ca. 20KB 8051-Code) auf Pascal ( STM32F746 ) umzustellen.
Die Win-Version mit Delphi läuft perfekt, mit FPC-Win32 hakelt das zeichnen auf Canvas. Sieht nicht schön aus.
Arduino und so will ich nicht.
Danke für Eure Tips.
Der Pelikan
-
- Beiträge: 56
- Registriert: So 24. Jan 2016, 18:31
- OS, Lazarus, FPC: Windows(10,8.1,7), Archlinux, Debian
- CPU-Target: 64Bit + 32Bit
- Wohnort: Winnenden
- Kontaktdaten:
Re: WIN32 und ARM
Warum kein Arduino?Pelikan hat geschrieben:moin moin,
melde mich vom Urlaub zurück...
Mit dem Bau des Cross-Compilers tu ich mich schwer.
MSEide werde ich mir mal ansehen.
Um die Anwendung zu verdeutlichen:
Eine Steuerung für meine CNC-Fräse (G-Code-Interpreter) von ASM (ca. 20KB 8051-Code) auf Pascal ( STM32F746 ) umzustellen.
Die Win-Version mit Delphi läuft perfekt, mit FPC-Win32 hakelt das zeichnen auf Canvas. Sieht nicht schön aus.
Arduino und so will ich nicht.
Danke für Eure Tips.
Der Pelikan
Wissen ist Macht und ich weis, das ich nichts weis
Re: WIN32 und ARM
moin moin,
STM32F746 ganz kurz:
216MHz Takt
FPU
1MB Flash
320KB RAM
Kann da ein Arduino mitbieten?
STM32F746 ganz kurz:
216MHz Takt
FPU
1MB Flash
320KB RAM
Kann da ein Arduino mitbieten?
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: WIN32 und ARM
Die ARM Cortex CPU ist natürlich sehr "Standard".
Eine (Arduino) ATMega CPU würde ich heute nicht mehr in Betracht ziehen, da Microchip ATMEL gekauft hat und meiner Ansicht nach die Zukunft der Atmel CPUs als direkte Konkurrenz zu PIC fraglich ist.
Hast Du Dir schon mal den PIC32 MZ angesehen -> https://www.microchip.com/design-centers/32-bit ?
Das ist eine MIPS-Architektur. FPC für MIPS ("embedded", was bei fpc "ohne Betriebssystem" heißt) ist - soweit ich das weiß inzwischen gut brauchbar.
Vorteil für schnelle Reaktionen: mehrere Registersätze, die beim Interrupt automatisch umgeschaltet werden. D.h fast kein Overhead für die ISR.
-Michael
Eine (Arduino) ATMega CPU würde ich heute nicht mehr in Betracht ziehen, da Microchip ATMEL gekauft hat und meiner Ansicht nach die Zukunft der Atmel CPUs als direkte Konkurrenz zu PIC fraglich ist.
Hast Du Dir schon mal den PIC32 MZ angesehen -> https://www.microchip.com/design-centers/32-bit ?
Das ist eine MIPS-Architektur. FPC für MIPS ("embedded", was bei fpc "ohne Betriebssystem" heißt) ist - soweit ich das weiß inzwischen gut brauchbar.
Vorteil für schnelle Reaktionen: mehrere Registersätze, die beim Interrupt automatisch umgeschaltet werden. D.h fast kein Overhead für die ISR.
-Michael
-
- Lazarusforum e. V.
- Beiträge: 3177
- 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: WIN32 und ARM
Das Embedded-Target gibt es für viele Architekturen (MIPS, ARM, AVR, i386, x64_86, i8086).mschnell hat geschrieben:Das ist eine MIPS-Architektur. FPC für MIPS ("embedded", was bei fpc "ohne Betriebssystem" heißt) ist - soweit ich das weiß inzwischen gut brauchbar.
Nach meinen Recherchen gibt es hier derzeit kein Hardware Abstraction Layer, sodass man für alles (GPIO, Schnittstellen, etc.) direkt die Register ansprechen muss.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: WIN32 und ARM
Das müsste ja auch für jeden Chip einzeln existieren. Das kann niemand leisten.Socke hat geschrieben:Nach meinen Recherchen gibt es hier derzeit kein Hardware Abstraction Layer, sodass man für alles (GPIO, Schnittstellen, etc.) direkt die Register ansprechen muss.
Bei Microchip gibt es dafür natürlich Libraries (.h-dateien) für C und ein komplexes Konfigurationssystem für deren IDE, aber Pascal ist nicht unterstützt.
-Michael
-
- Lazarusforum e. V.
- Beiträge: 3177
- 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: WIN32 und ARM
Dann muss ich ja tatsächlich C-Code übersetzenmschnell hat geschrieben:Das müsste ja auch für jeden Chip einzeln existieren. Das kann niemand leisten.Socke hat geschrieben:Nach meinen Recherchen gibt es hier derzeit kein Hardware Abstraction Layer, sodass man für alles (GPIO, Schnittstellen, etc.) direkt die Register ansprechen muss.

MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein