Acasă > forum > învechit > SlimLine (Linux) > Cum să scriu primul meu program "HelloWorld"
- Acest subiect are 6 răspunsuri, 3 participanți și a fost actualizat ultima dată 11 ani, acum 6 luni da Sergio Bertana.
-
AutorPost
-
Aprilie 21, 2012 la 8: 02 am #35204Sergio BertanaAdministrator al forumului
Formularul Procesor SlimLine Linux se bazează pe un modul Computer on Modules (CoMs) produs de țiglă. Este furnizat de noi cu sistemul de operare deja preinstalat Linux încorporat - kernel 2.6.31 karo-axel cu busybox, bash și diverse aplicații și fără manager grafic Linux. La pornire, sistemul rulează boot-loader-ul RedBoot care instalează kernel-ul Linux.
Conectați un program de emulare a terminalului serial (exemplu Toolly în Windows sau Putty în Linux), a configurat a 115200, e, 8, 1 la portul serial COM0 al modulului CPU SlimLine. Când modulul este pornit pe terminal, este posibil să aveți un raport al operațiunilor efectuate în timpul pornirii. Veți vedea ceva de genul:
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
…Dacă placa este conectată la rețeaua Ethernet și un server DHCP este prezent în rețea, modulul va solicita închirierea unei adrese IP de la server și se va configura cu IP-ul atribuit. Pentru a cunoaște IP-ul este necesar să vizualizați toate informațiile returnate de portul serial și să le căutați pe cele referitoare la DHCP. Vom avea ceva de genul:
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 secondsDeci, în acest moment putem abandona conexiunea serială și ajunge la modulul nostru din rețeaua ethernet la adresa atribuită (în exemplu este 192.168.0.86). La toate alimentările ulterioare, modulul va primi întotdeauna aceeași adresă IP de la serverul DHCP.
Aprilie 21, 2012 la 8: 41 am #37226Sergio BertanaAdministrator al forumuluiPentru dezvoltarea programelor este necesară utilizarea unui computer Linux (mașină virtuală VMware furnizată de Elsist) sau orice computer Linux cu toate aplicațiile necesare instalate. Dintr-un shell de comandă este posibil să vă conectați în Telnet cu cardul pur și simplu tastând Telnet urmat de IP, veți fi conectat la interfața de comandă a cardului (screenshot). Cu comamdi ls puteți rula listarea directorului curent și cu comanda data cd puteți accesa directorul de date unde va fi transferat primul nostru program.
Pentru realizarea programului pe care îl folosim CodeLite, un IDE open-source, multiplataforma pentru C / C ++. Programul este tipărirea clasică a șirurilor Bună ziua lume. Oferim un proiect CodeLite cu fișierele sursă, doar compilați-l pentru a avea fișierul în directorul Debug HelloWorld pentru a fi transferat la CPU SlimLine (Proiect descărcare).
Pentru transfer este necesar să utilizați orice client FTP (exemplu FileZilla), dar în exemplul nostru de proiect am configurat CodeLite pentru a efectua transferul prin Ftp însuși la sfârșitul compilării proiectului. Făcând clic dreapta pe numele proiectului și selectând Setări, se va deschide fereastra de setări; în comanda Post-Build comanda Ftp a fișierului executabil de pe CPU este invocată la adresa IP definită în directorul de date (screenshot).
Aprilie 21, 2012 la 9: 18 am #37227Sergio BertanaAdministrator al forumuluiFinalizat transferul proiectului către procesor SlimLine de la Telnet este posibil să se verifice dacă fișierul executabil a fost transferat în directorul de date al sistemului și are toate atributele de execuție necesare pentru a fi executate. Cu comandă ls -l puteți vizualiza atributele fișierului și, eventual, cu comanda chmod 777 HelloWorld puteți atribui atribute de rulare.
În acest moment, tastând ./HelloWorld urmată de returnarea programului și executarea acestuia hello world returnat din sistem (screenshot).
Iunie 13, 2012 la 7: 59 am #37370StefanoparticipantOk, pânăHelloWorld mi se pare clar ... Atunci, unde pot găsi documentație / tutoriale / manuale specifice legate de programare în „C” pentru modulul ARM9? Nu mă refer atât de mult la programarea în „C”, ci la bibliotecile care vor fi utilizate pentru a opera cu intrări / ieșiri?
Este posibil să testez ceva cu un emulator sau trebuie neapărat să am modulul cpu fizic pentru a face niște experimente? L-am evaluat pentru a fi folosit în automatizarea casei (casa mea) și, deși sunt destul de familiarizat cu Linux / Networks / ... PLC-uri, îmi amintesc ceva despre LADDER și atât și, prin urmare, am fost mai înclinat spre soluția „Open”.
August 10, 2012 la 1: 56 pm #37371Sergio BertanaAdministrator al forumuluiContinuăm redactarea bibliotecii de asistență a sistemului SlimLine, biblioteca numită „eSLLinuxLib”Este disponibil în prezent în versiune beta. Am făcut un proiect simplu cu CodeLite pentru a genera un executabil, care folosind biblioteca (Furnizat cu proiectul) vă permite să gestionați I / O logică pe magistrala de expansiune.
Exemplul cu un meniu simplu de comenzi de la telnet vă permite să citiți intrările logice, să activați ieșirile logice și să activați un fir pentru a gestiona intermitentul unei ieșiri logice (Descărcați programul sursă).
Din păcate nu există un emulator hardware, deci pentru a testa programul aveți nevoie de modulul CPU SlimLine ARM9 (Linux Open).
Octombrie 10, 2012 la 10: 53 am #37441AnonimInactivAș dori să știu dacă există o bibliotecă pentru gestionarea modbus RTU și TCP. Am văzut că există o definiție a funcției care calculează CRC-ul pachetelor modbus, dar nu am găsit documentație despre cum să stabilim un dialog modbus.
De asemenea, aș dori să știu dacă este planificată implementarea managementului IO analogic.
Octombrie 10, 2012 la 2: 12 pm #37442Sergio BertanaAdministrator al forumuluiExistă o bibliotecă de utilități ElSLUtility (Codul SFR069 ****) unde puteți găsi clasa CModbus pentru gestionarea serverului modbus, clasa acceptă modbus Ascii, modbus RTU și modbus OverIP.
În ceea ce privește gestionarea analogică în bibliotecă ElSLLinux (Codul SFR064 ****) puteți găsi funcțiile corespunzătoare pentru gestionarea modulelor analogice.
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.