Accueil > Forum > obsolète > SlimLine (Linux) > Comment écrire mon premier programme "HelloWorld"
- Ce sujet a 6 réponses, 3 participants et a été mis à jour pour la dernière fois 11 années, 6 mois da Sergio Bertana.
-
auteurPost
-
Avril 21, 2012 à 8: 02 am #35204Sergio BertanaAdministrateur du forum
le module Processeur SlimLine Linux/Unix est basé sur un module Computer on Modules (CoMs) produit par Karo. Il est fourni par nos soins avec le système d'exploitation déjà pré-installé Linux embarqué - noyau 2.6.31 karo-axel avec busybox, bash et diverses applications et aucun gestionnaire graphique linux. Au démarrage, le système exécute le chargeur de démarrage RedBoot qui installe le noyau Linux.
Connectez un programme d'émulation de terminal série (exemple Toolly dans Windows ou Putty sous Linux), configuré 115200, e, 8, 1 au port série COM0 du module CPU SlimLine. Lorsque le module est allumé sur le terminal, il est possible d'avoir un rapport des opérations effectuées lors de la mise en service. Vous verrez quelque chose comme:
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
…Si la carte est connectée au réseau Ethernet et qu'un serveur DHCP est présent sur le réseau, le module demandera un bail d'une adresse IP au serveur et se configurera avec l'IP attribuée. Pour connaître l'IP, il est nécessaire de visualiser toutes les informations renvoyées par le port série et de rechercher celles faisant référence à DHCP. Nous aurons quelque chose comme:
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 secondsAinsi, à ce stade, nous pouvons abandonner la connexion série et atteindre notre module depuis le réseau Ethernet à l'adresse attribuée (dans l'exemple, il s'agit de 192.168.0.86). À toutes les mises sous tension ultérieures, le module recevra toujours la même adresse IP du serveur DHCP.
Avril 21, 2012 à 8: 41 am #37226Sergio BertanaAdministrateur du forumPour le développement des programmes, il est nécessaire d'utiliser un PC Linux (machine virtuelle VMware fournie par Elsist) ou tout autre PC Linux avec toutes les applications nécessaires installées. Depuis un shell de commande il est possible de se connecter en Telnet avec la carte en tapant simplement Telnet suivi de l'IP, vous serez connecté à l'interface de commande de la carte (Capture d'écran). Avec comamdi ls vous pouvez lancer la liste du répertoire courant et avec la commande cd date vous pouvez aller dans le répertoire données où notre premier programme sera transféré.
Pour la mise en œuvre du programme, nous utilisons CodeLite, un IDE multiplateforme open source pour C / C ++. Le programme est l'impression de chaîne classique bonjour tout le monde. Nous fournissons un projet CodeLite avec les fichiers source, il suffit de le compiler pour avoir le fichier dans le répertoire Debug HelloWorld à transférer vers la CPU SlimLine (Téléchargement du projet).
Pour le transfert, il est nécessaire d'utiliser n'importe quel client FTP (exemple FileZilla), mais dans notre exemple de projet, nous avons configuré CodeLite pour effectuer le transfert via Ftp lui-même à la fin de la compilation du projet. En cliquant avec le bouton droit sur le nom du projet et en sélectionnant Paramètres, la fenêtre avec les paramètres s'ouvrira, dans la commande Post-Build la commande Ftp du fichier exécutable sur la CPU est appelée à l'adresse IP définie dans le répertoire de données (Capture d'écran).
Avril 21, 2012 à 9: 18 am #37227Sergio BertanaAdministrateur du forumTerminé le transfert du projet vers la CPU SlimLine à partir de Telnet, il est possible de vérifier que le fichier exécutable a bien été transféré dans le répertoire de données du système et qu'il possède tous les attributs d'exécution nécessaires pour être exécuté. Avec commande ls -l vous pouvez visualiser les attributs du fichier, et éventuellement avec la commande chmod 777 BonjourWorld vous pouvez attribuer des attributs d'exécution.
À ce stade, en tapant ./helloworld suivi par le retour du programme est exécuté et l'écriture hello world renvoyé du système (Capture d'écran).
June 13, 2012 à 7: 59 am #37370StefanoPartecipanteOk, jusqu'àHelloWorld cela me semble clair ... Alors, où puis-je trouver la documentation / tutoriels / manuels spécifiques liés à la programmation en "C" pour le module ARM9? Je ne parle pas tant de la programmation en "C" que des bibliothèques à utiliser pour fonctionner avec des entrées / sorties?
Est-il possible de tester quelque chose avec un émulateur ou dois-je nécessairement avoir le module CPU physique pour faire des expériences? Je l'évaluais pour une utilisation en domotique (ma maison) et bien que je connaisse assez bien Linux / Réseaux / ... automates je me souviens de quelque chose à propos de LADDER et c'est tout et donc j'étais plus enclin à la solution "Open".
Août 10, 2012 à 1: pm 56 #37371Sergio BertanaAdministrateur du forumNous procédons à la rédaction de la bibliothèque de support système SlimLine, la bibliothèque qui s'appelle "eSLLinuxLib"Est actuellement disponible en version bêta. J'ai créé un projet simple avec CodeLite pour générer un exécutable, qui à l'aide de la bibliothèque (fournie avec le projet) permet de gérer les E / S logiques sur le bus d'extension.
L'exemple avec un simple menu de commandes de telnet permet de lire les entrées logiques, d'activer les sorties logiques, et d'activer un thread pour gérer le clignotement d'une sortie logique (Télécharger le programme source).
Malheureusement, il n'y a pas d'émulateur matériel, vous avez donc besoin du module CPU pour tester le programme SlimLine ARM9 (Linux Open).
Octobre 10, 2012 à 10: 53 am #37441AnonymeinactifJe voudrais savoir s'il existe une bibliothèque pour gérer à la fois RTU et TCP Modbus. J'ai vu qu'il y a la définition de la fonction qui calcule le CRC des paquets modbus, mais je n'ai pas trouvé de documentation sur la façon d'établir un dialogue modbus.
J'aimerais également savoir si la mise en œuvre de la gestion des E / S analogiques est prévue.
Octobre 10, 2012 à 2: pm 12 #37442Sergio BertanaAdministrateur du forumIl y a une bibliothèque utilitaire ElSLUtility (Code SFR069 ****) où vous pouvez trouver la classe CModbus pour la gestion du serveur modbus, la classe prend en charge le modbus Ascii, le modbus RTU et le modbus OverIP.
En ce qui concerne la gestion analogique dans la bibliothèque ElSLLinux (Code SFR064 ****) vous pouvez trouver les fonctions appropriées pour la gestion des modules analogiques.
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.