ARM9 Linux crosscompiling verschiedener CPUs

Antworten
NoCee
Beiträge: 170
Registriert: Do 3. Mär 2011, 21:34
OS, Lazarus, FPC: WinXp/7/10 Opensuse13.2/Leap15.3 (L 2.2.0 FPC 3.2.2 )
CPU-Target: Intel 32/64Bit, ARM9
Wohnort: Ulm

ARM9 Linux crosscompiling verschiedener CPUs

Beitrag von NoCee »

Hallo zusammen,
ich habe bei uns mehrere ARM9 Linuxsystemchen.
Bei einem ist eine Toolchain für Lazarus komplett mit der IDE (Crosscompiling Win>Linux) und allem was ich brauche dabei.
Mehrere Pandaboards hab ich auch da, aber noch nicht betriebsbereit.
Von der Fa. Moxa haben wir in unserern Anlagen einen RS232 Geräteserver für Ethernet verbaut.
Auf diesem ARM9 System läuft ebenfalls Linux und man kann dafür eine Toolchain runterladen.
Aber die ist natürlich für C/C++. Ich möchte da aber Lazarus einsetzen.

Ich möchte die serielle Schnittstellen mit Lazarus und Synaser verwenden was unter erstgenannten System
auch ohne die mitgelieferten speziellen Units für RS232 (für Lazarus) des Herstellers wunderbar funktioniert.

Jetzt hab ich folgende Frage:
Sind die verschiedenen ARM9 Systeme mit unterschiedlichen CPUs für mich und Lazarus (mit Synaser) programmtechnisch gleichwertig?
Kann ich also so einen ARM9-Deviceserver z.B. von Moxa ohne die C/C++-Toolchain nur mit Lazarus und Synaser (und mit Linux natürlich) betreiben?

Schon mal danke für die Antworten
(Es sei noch angemerkt daß ich mit Linux noch sehr wenig zu tun hatte)
Einen schönen Tag noch
NoCee

mschnell
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: ARM9 Linux crosscompiling verschiedener CPUs

Beitrag von mschnell »

NoCee hat geschrieben:Bei einem ist eine Toolchain für Lazarus komplett mit der IDE (Crosscompiling Win>Linux) und allem was ich brauche dabei.


Auch Lazarus remote-Debugging ? (Ich habe nämlich noch nie gehört, dass das jemand ans Laufen bekommen hat. ) Oder brauchst Du das nicht ?

-Michael

NoCee
Beiträge: 170
Registriert: Do 3. Mär 2011, 21:34
OS, Lazarus, FPC: WinXp/7/10 Opensuse13.2/Leap15.3 (L 2.2.0 FPC 3.2.2 )
CPU-Target: Intel 32/64Bit, ARM9
Wohnort: Ulm

Re: ARM9 Linux crosscompiling verschiedener CPUs

Beitrag von NoCee »

mschnell hat geschrieben:
Auch Lazarus remote-Debugging ? (Ich habe nämlich noch nie gehört, dass das jemand ans Laufen bekommen hat. ) Oder brauchst Du das nicht ?

Bei dem einen Prototypen Komplettsystem ist wohl irgend was dabei. Hab ich aber noch nie angeschaut.
http://www.mme-berlin.de/arm9-modul/index.htm
Brauchen tu ich das momentan auch nicht. Was ich da programmiere, wird vorher auf einem Win PC getestet
und wenns da läuft wirds auf das ARM System übertragen. Die Progrämchen sind auch relativ einfach. Da werden kurze serielle Strings
empfangen umgebaut und weitergeschickt (Telegrammanpassungen von Geräten und Maschinen die sich sonst nicht verstehen.
Wie zum Beispiel eine neue Paketwaage an einer alten Steuerung einer Paketfördertechnik. Thema Ersatzteilverfügbarkeit.

Wenn ich irgendwann mal die Pandaboards aufgebaut habe, soll da Lazarus direkt drauf laufen. Als OS mit Opensuse
da ich das schon hier im Betrieb habe.
Die später aktive Hardware sollte aber ein fertiges und vor allem industrietaugliches System sein das ich so längerfristig bekomme.
Und da wir solche Moxa Teile oder ähnliche schon einsetzen wären die schon mal nicht schlecht.
Panda oder RPi haben da eher Spielzeugkarakter. Das darf ich grad mal zum Üben oder Testen daherbringen.
Aber ob das mit Moxa auch so geht kann ich momentan selber nicht testen. Zum einen will ich die vorhandenen Geräte nicht schrotten
und zum andenen sollte das sicher funktionieren wenn ich relativ viel Kohle investiere wenn ich ein neues Gerät beschaffe
mit dem ich testen könnte.

Gruß
NoCee

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: ARM9 Linux crosscompiling verschiedener CPUs

Beitrag von Socke »

NoCee hat geschrieben:Jetzt hab ich folgende Frage:
Sind die verschiedenen ARM9 Systeme mit unterschiedlichen CPUs für mich und Lazarus (mit Synaser) programmtechnisch gleichwertig?
Kann ich also so einen ARM9-Deviceserver z.B. von Moxa ohne die C/C++-Toolchain nur mit Lazarus und Synaser (und mit Linux natürlich) betreiben?

Sofern es für die seriellen Schnittstellen Treiber für das Betriebssystem gibt, sollten die von Synaser unterstützt werden. Experte bin ich da aber nicht.

Für die CPUs gilt:
  1. Der Compiler muss die unterstützen
  2. Der Assembler muss die unterstützen
  3. Der Linker muss die unterstützen
Assembler und Linker hast du aus der C/C++-Toolchain; die kannst du auch dem FPC an die Hand geben. Der FPC unterstützt ARM9 prinzipiell (CPU Instruction Set ist ARMv5). Hier hast du einen Vorteil, wenn überall das gleiche instruction set unterstützt wird: Du musst die RTL und andere Bibliotheken nur ein mal übersetzen und nicht zwischen den verschiedenen Versionen wechseln.

Um zuverlässig Programme zu erstellen, solltest du noch einige Einstellungen in Erfahrung bringen. Die solltest/musst du als Compiler-Parameter angeben.
  • Genaue Prozessor-Bezeichnung (ARM-Typ). Damit kannst du unter http://en.wikipedia.org/wiki/List_of_ARM_microprocessor_cores das genaue instruction set herausfinden.
  • Läuft dort ein Linux armhf oder armel.
  • Fließkomma-Einheit und deren instruction set (nur relevant bei armhf oder wenn du Fließkommazahlen in Hardware berechnen musst)
  • Application Binary Interface (ABI) -- häufig EABI
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten