Home > Forum > obsolet > SlimLine (Linux) > Wie schreibe ich mein erstes "HelloWorld" -Programm?
- Dieses Thema hat 6 Antworten, 3 Teilnehmer und wurde zuletzt aktualisiert 11 Jahre, 6 Monate da Sergio Bertana.
-
AutorPost
-
April 21, 2012 bei 8: 02 #35204Sergio BertanaAdministrator des Forums
das Modul CPU SlimLine Linux basiert auf einem Computer on Modules (CoMs) -Modul von Karo. Es wird von uns mit dem bereits vorinstallierten Betriebssystem geliefert Linux Embedded - Kernel 2.6.31 Karo-Axel mit Busybox, Bash und verschiedenen Anwendungen und ohne Linux Graphical Manager. Beim Booten führt das System den Bootloader aus RedBoot Hiermit wird der Linux-Kernel installiert.
Schließen Sie ein Emulationsprogramm für serielle Terminals an (Beispiel) Toolly in Windows oder Putty in Linux), konfiguriert a 115200, 8, 1 an die serielle COM0-Schnittstelle des CPU-Moduls SlimLine. Wenn das Modul am Terminal eingeschaltet ist, kann ein Bericht über die während des Startvorgangs ausgeführten Vorgänge erstellt werden. Sie werden so etwas sehen wie:
RedBoot> fis load linux
..
Uncompressing Linux………………………………………………………………………………………………………. done, booting the kernel.
Linux version 2.6.31 (gcc version 4.4.1 (GCC) ) #7 PREEMPT Wed Nov 30 10:48:25 CET 2011
CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177
…Wenn die Karte mit dem Ethernet-Netzwerk verbunden ist und ein DHCP-Server im Netzwerk vorhanden ist, fordert das Modul eine Lease einer IP-Adresse vom Server an und konfiguriert sich mit der zugewiesenen IP. Um die IP zu kennen, müssen Sie alle von der seriellen Schnittstelle zurückgegebenen Informationen anzeigen und nach Informationen suchen, die sich auf DHCP beziehen. Wir werden so etwas haben wie:
dhcpcd[1150]: eth0: broadcasting for a lease
dhcpcd[1150]: eth0: offered 192.168.0.86 from 192.168.0.1
dhcpcd[1150]: eth0: acknowledged 192.168.0.86 from 192.168.0.1
dhcpcd[1150]: eth0: checking for 192.168.0.86
dhcpcd[1150]: eth0: leased 192.168.0.86 for 86400 secondsAn diesem Punkt können wir die serielle Verbindung abbrechen und unser Modul vom Ethernet-Netzwerk unter der zugewiesenen Adresse erreichen (im Beispiel 192.168.0.86). Bei allen nachfolgenden Einschaltungen erhält das Modul immer die gleiche IP-Adresse vom DHCP-Server.
April 21, 2012 bei 8: 41 #37226Sergio BertanaAdministrator des ForumsFür die Entwicklung der Programme muss ein Linux-PC (VMware Virtual Machine von) verwendet werden Elsist) oder einen beliebigen Linux-PC mit allen erforderlichen Anwendungen installiert. Über eine Befehlsshell ist es möglich, in Telnet eine Verbindung mit der Karte herzustellen, indem Sie einfach Telnet gefolgt von der IP-Adresse eingeben. Sie werden dann mit der Befehlsschnittstelle der Karte verbunden (Bildschirmfoto). Mit dem Comamdi ls Sie können die Liste des aktuellen Verzeichnisses und mit dem Befehl ausführen CD-Datum Sie können in das Verzeichnis gehen technische Daten wo unser erstes Programm übertragen wird.
Für die Umsetzung des Programms verwenden wir Codelite, eine plattformübergreifende Open-Source-IDE für C / C ++. Das Programm ist der klassische Stringdruck Hallo Welt. Wir stellen ein CodeLite-Projekt mit den Quelldateien zur Verfügung. Kompilieren Sie es einfach, damit sich die Datei im Debug-Verzeichnis befindet Hello World auf die CPU übertragen werden SlimLine (Projektdownload).
Für die Übertragung muss ein beliebiger FTP-Client (Beispiel FileZilla) verwendet werden. In unserem Beispielprojekt haben wir CodeLite so konfiguriert, dass die Übertragung über Ftp selbst am Ende der Projektkompilierung durchgeführt wird. Wenn Sie mit der rechten Maustaste auf den Projektnamen klicken und Einstellungen auswählen, wird das Einstellungsfenster geöffnet. Im Befehl Nach dem Erstellen wird der Befehl FTP der ausführbaren Datei auf der CPU unter der im Datenverzeichnis definierten IP-Adresse aufgerufen (Bildschirmfoto).
April 21, 2012 bei 9: 18 #37227Sergio BertanaAdministrator des ForumsAbschluss der Übertragung des Projekts in die CPU SlimLine Über Telnet kann überprüft werden, ob die ausführbare Datei tatsächlich in das Datenverzeichnis des Systems übertragen wurde und über alle erforderlichen Ausführungsattribute verfügt, die ausgeführt werden müssen. Mit Befehl ls -l Sie können die Dateiattribute und möglicherweise mit dem Befehl anzeigen chmod 777 HelloWorld Sie können Laufattribute zuweisen.
An dieser Stelle tippen ./HelloWorld gefolgt von return wird das Programm ausgeführt und das Schreiben hello world aus dem System zurückgegeben (Bildschirmfoto).
Juni 13, 2012 bei 7: 59 am #37370StefanoPartecipanteOk, bisHello World es scheint mir klar zu sein ... Wo finde ich dann in "C" für das ARM9-Modul spezifische Dokumentationen / Tutorials / Handbücher zur Programmierung? Ich beziehe mich nicht so sehr auf die Programmierung in "C", sondern auf die Bibliotheken, die für den Betrieb mit Ein- / Ausgängen verwendet werden sollen.
Ist es möglich, etwas mit einem Emulator zu testen, oder muss ich unbedingt das physikalische CPU-Modul haben, um einige Experimente durchführen zu können? Ich habe es für den Einsatz in der Heimautomation (mein Haus) evaluiert und obwohl ich mit Linux / Networks / ... SPS ziemlich vertraut bin, erinnere ich mich an etwas über LADDER und das war's, und deshalb neigte ich eher zur „offenen“ Lösung.
August 10, 2012 bei 1: 56 pm #37371Sergio BertanaAdministrator des ForumsWir fahren mit dem Entwurf der Systemunterstützungsbibliothek fort SlimLine, die Bibliothek mit dem Namen "eSLLinuxLibIst derzeit in der Beta verfügbar. Ich habe mit CodeLite ein einfaches Projekt erstellt, um eine ausführbare Datei zu generieren, mit der Sie mithilfe der Bibliothek (im Lieferumfang des Projekts enthalten) die logischen E / A auf dem Erweiterungsbus verwalten können.
Das Beispiel mit einem einfachen Befehlsmenü aus Telnet ermöglicht es Ihnen, die Logikeingänge zu lesen, die Logikeingänge zu aktivieren und einen Thread zu aktivieren, um das Blinken eines Logikausgangs zu verwalten (Quellprogramm herunterladen).
Leider gibt es keinen Hardware-Emulator. Zum Testen des Programms benötigen Sie das CPU-Modul SlimLine ARM9 (Linux Open).
Oktober 10, 2012 bei 10: 53 #37441AnonymLeerlaufIch würde gerne wissen, ob es eine Bibliothek für die Verwaltung von RTU- und TCP-Modbus gibt. Ich habe gesehen, dass es die Definition der Funktion gibt, die die CRC von Modbus-Paketen berechnet, aber ich habe keine Dokumentation zum Einrichten eines Modbus-Dialogs gefunden.
Ich würde auch gerne wissen, ob die Implementierung eines analogen IO-Managements geplant ist.
Oktober 10, 2012 bei 2: 12 pm #37442Sergio BertanaAdministrator des ForumsEs gibt eine Hilfsbibliothek ElSLUtility (Code SFR069 ****) wo Sie die Klasse finden können CModbus Für die Verwaltung des Modbus-Servers unterstützt die Klasse den Modbus Ascii, den Modbus RTU und den Modbus OverIP.
Über die analoge Verwaltung in der Bibliothek ElSLLinux (Code SFR064 ****) finden Sie die entsprechenden Funktionen zur Verwaltung von Analogmodulen.
-
AutorPost
- Sie müssen angemeldet sein, um auf dieses Thema antworten zu können.