Ce este un program C încorporat și structura sa pentru începători

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Anterior, multe aplicații încorporate au fost dezvoltate folosind programarea la nivel de asamblare. Cu toate acestea, nu au oferit portabilitate. Acest dezavantaj a fost depășit de apariția diferitelor limbaje la nivel înalt, cum ar fi C, Pascal și COBOL. Cu toate acestea, limbajul C a fost acceptat pe scară largă pentru sistemele încorporate și continuă să o facă. Codul C scris este mai fiabil, scalabil și portabil și, de fapt, mult mai ușor de înțeles. Programarea C încorporată este sufletul procesorului care funcționează în interiorul fiecăruia sistem incorporat întâlnim în viața noastră de zi cu zi, cum ar fi telefoanele mobile, mașinile de spălat și camerele digitale. Fiecare procesor este asociat cu software încorporat. Primul și cel mai important lucru este software-ul încorporat care decide să funcționeze sistemul încorporat. Limbajul C încorporat este cel mai frecvent folosit programează microcontrolerul .

Ce este limbajul C?

Limbajul C a fost dezvoltat de Dennis Ritchie în 1969. Este o colecție de una sau mai multe funcții și fiecare funcție este o colecție de declarații care îndeplinesc o sarcină specifică.
Limbajul C este un limbaj de nivel mediu, deoarece acceptă aplicații de nivel înalt și aplicații de nivel scăzut. Înainte de a intra în detaliile programării C încorporate, ar trebui să știm despre organizarea memoriei RAM.




Principalele caracteristici ale limbajului C includ următoarele.

  • Limbajul C este un software conceput cu diferite cuvinte cheie, tipuri de date, variabile, constante etc.
  • Embedded C este un termen generic dat unui limbaj de programare scris în C, care este asociat cu o anumită arhitectură hardware.
  • Embedded C este o extensie a limbajului C cu câteva fișiere antet suplimentare. Aceste fișiere antet se pot schimba de la controler la controler.
  • microcontroler 8051 #include este utilizat.

Ce este o programare Embedded C

În fiecare proiect bazat pe sistem încorporat, programarea Embedded C joacă un rol cheie pentru a face microcontrolerul să ruleze și să efectueze acțiunile preferate. În prezent, în mod normal, utilizăm mai multe dispozitive electronice, cum ar fi telefoane mobile, mașini de spălat, sisteme de securitate, frigidere, camere digitale etc. Controlul acestor dispozitive încorporate se poate face cu ajutorul unui program C încorporat. De exemplu, într-o cameră digitală, dacă apăsăm un buton al camerei pentru a captura o fotografie, atunci microcontrolerul va executa funcția necesară pentru a face clic pe imagine, precum și pentru a o stoca.



Programare C încorporată

Programare C încorporată

Programarea încorporată C se construiește cu un set de funcții în care fiecare funcție este un set de instrucțiuni care sunt utilizate pentru a executa anumite sarcini particulare. Ambele limbaje C și C încorporate sunt aceleași și sunt implementate prin intermediul unor elemente fundamentale, cum ar fi o variabilă, un set de caractere, cuvinte cheie, tipuri de date, declararea variabilelor, expresii, instrucțiuni. Toate aceste elemente joacă un rol cheie în timp ce scriu un program C încorporat.

Proiectanții de sisteme încorporate trebuie să știe despre arhitectura hardware pentru a scrie programe. Aceste programe joacă un rol important în monitorizarea și controlul dispozitivelor externe. De asemenea, operează și utilizează direct arhitectura internă a microcontrolerului, cum ar fi gestionarea întreruperilor, cronometrele, comunicațiile seriale și alte caracteristici disponibile.


Programarea sistemului încorporat

După cum am discutat mai devreme, proiectarea unui sistem încorporat poate fi realizată folosind Hardware și Software. De exemplu, într-un sistem simplu încorporat, procesorul este modulul principal care funcționează ca inima sistemului. Aici un procesor nu este altceva decât un microprocesor, DSP, microcontroler, CPLD și FPGA. Toate aceste procesoare sunt programabile astfel încât să definească funcționarea dispozitivului.

Un program de sistem încorporat permite hardware-ului să verifice intrările și să controleze ieșirile în consecință. În această procedură, programul încorporat poate fi nevoit să controleze arhitectura internă a procesorului direct, cum ar fi cronometrele, gestionarea întreruperilor, porturile I / O, interfața de comunicații seriale etc.

Deci, programarea sistemului încorporat este foarte importantă pentru procesor. Există diferite limbaje de programare disponibile pentru sistemele încorporate, cum ar fi C, C ++, limbaj de asamblare, JAVA, script JAVA, Visual Basic etc. Așadar, acest limbaj de programare joacă un rol cheie în timp ce face un sistem încorporat, dar alegerea limbajului este foarte esențială.

Pași pentru construirea unui program C încorporat

Există diferiți pași implicați în proiectarea unui program c încorporat, cum ar fi următorul.

  • Comentarii
  • Directivele procesorului
  • Configurarea portului
  • Variabile globale
  • Funcția de bază / funcția principală
  • Declarația de variabilă
  • Logica programului

Comentarii

În limbajele de programare, comentariile sunt foarte esențiale pentru a descrie funcția programului. Codul comentariilor nu este executabil, dar este utilizat pentru a furniza documentația programului. Pentru a înțelege funcția programului, aceasta va face o metodă simplă pentru a înțelege funcția programului. În C încorporat, comentariile sunt disponibile în două tipuri și anume un singur comentariu și un comentariu principal.

Într-un limbaj de programare C încorporat, putem plasa comentarii în codul nostru, care ajută cititorul să înțeleagă codul cu ușurință.

C = a + b / * adăugați două variabile a căror valoare este stocată într-o altă variabilă C * /

Comentariu pe o singură linie

În general, pentru limbajele de programare, comentariile pe o singură linie sunt foarte utile pentru a clarifica o fracțiune din program. Aceste comentarii încep cu o bară dublă (//) și pot fi localizate oriunde în limbajul de programare. Utilizând acest lucru, întreaga linie poate fi ignorată în cadrul unui program.

Comentariu pe mai multe linii

Comentariile pe mai multe linii încep cu o singură bară (/) și un asterisc (/ *) în limbajele de programare, ceea ce explică un bloc de cod. Aceste tipuri de comentarii pot fi aranjate oriunde în limbajul de programare și utilizate în principal pentru a ignora un întreg bloc de cod din cadrul unui program.

Directivele procesorului

Liniile incluse în codul programului se numesc directive preprocesor care pot fi urmate printr-un simbol hash (#). Aceste linii sunt directivele preprocesorului, dar nu instrucțiunile programate.
Codul poate fi examinat printr-un preprocesor înainte ca compilarea codului real să înceapă și să rezolve aceste directive înainte de a genera un cod prin instrucțiuni regulate. Există mai multe directive speciale de preprocesare disponibile, deși două directive sunt extrem de utile în limbajul de programare

ca următoarele.

#include
#include
LED Sbit = P2 ^ 3
Principal()
{
LED = 0x0ff
Întârziere()
LED = 0x00
}
#defini
#include
#define LED P0
Principal()
{
LED = 0x0ff
Întârziere()
LED = 0x00
}

În programul de mai sus, directiva #include este în general utilizată pentru a cuprinde biblioteci standard precum studiu și. h este utilizat pentru a permite funcțiile I / O folosind biblioteca de „C”. Directiva #define utilizată de obicei pentru a descrie seria de variabile și alocă valorile executând procesul într-o anumită instrucțiune, cum ar fi macrocomenzile.

Configurarea portului

Microcontrolerul include mai multe porturi în care fiecare port are pini diferiți. Acești pini pot fi folosiți pentru controlul dispozitivelor de interfață. Declararea acestor ace poate fi făcută în cadrul unui program cu ajutorul cuvintelor cheie. Cuvintele cheie din programul încorporat c sunt standard, precum și predefinite, cum ar fi un bit, sbit, SFR, care sunt utilizate pentru a indica biții și pinul unic într-un program.

Există anumite cuvinte care sunt rezervate pentru a efectua sarcini specifice. Aceste cuvinte sunt cunoscute sub numele de cuvinte cheie. Acestea sunt standard și predefinite în Embedded C. Cuvintele cheie sunt întotdeauna scrise cu litere mici. Aceste cuvinte cheie trebuie definite înainte de a scrie programul principal. Principalele funcții ale cuvintelor cheie includ următoarele.

#include
Sbit a = P 2 ^ 2
SFR 0x00 = PoRT0
Bitul C
principal()
{
…………… ..
…………… ..
}

sbit

Acesta este un tip de tip de date, utilizat pentru a accesa un singur bit într-un registru SFR.

Sintaxa pentru acest tip de date este: numele variabilei sbit = bit SFR

Exemplu: sbit a = P2 ^ 1

Dacă atribuim p2.1 ca variabilă „a”, atunci putem folosi „a” în loc de p2.1 oriunde în program, ceea ce reduce complexitatea programului.

Pic

Acest tip de tip de date este utilizat în principal pentru a permite memoria adresabilă pe biți a memoriei cu acces aleatoriu, cum ar fi 20h la 2fh.

Sintaxa acestui tip de date este: numele variabilei de biți

Exemplu: bitul c

Este o serie de setări de biți într-o mică regiune de date care este utilizată în principal cu ajutorul unui program pentru a memora ceva.

SFR

Acest tip de tip de date este utilizat pentru a obține porturile periferice ale registrului SFR printr-un nume suplimentar. Deci, declararea tuturor registrelor SFR se poate face cu majuscule.

Sintaxa acestui tip de date este: numele variabilei SFR = adresa SFR pentru registrul SFR

Exemplu: port SFR0 = 0 × 80

Dacă alocăm 0 × 80 ca „port0”, după aceea putem folosi 0 × 80 în locul port0 oriunde în limbajul de programare pentru a reduce dificultatea programului.

Registrul SFR

SFR înseamnă Special Function Register. În microcontrolerul 8051, acesta include memoria RAM cu 256 de octeți, care este împărțită în două elemente principale: primul element de 128 de octeți este utilizat în principal pentru stocarea datelor, în timp ce celălalt element de 128 de octeți este utilizat în principal în registrele SFR. Toate dispozitivele periferice, cum ar fi cronometre, contoare și porturi I / O, sunt stocate în registrul SFR și fiecare element include o singură adresă.

Variabile globale

Când variabila este declarată înainte ca funcția cheie să fie cunoscută sub numele de variabilă globală. Această variabilă poate fi permisă pentru orice funcție din program. Durata de viață a variabilei globale depinde în principal de programare până când ajunge la final.

#include
Nesemnat int a, c = 10
Principal()
{
……………
………… ..
}

Funcția de bază / funcția principală

Funcția principală este o parte centrală în timpul executării oricărui program și începe pur și simplu cu funcția principală. Fiecare program folosește pur și simplu o funcție majoră, deoarece dacă programul include peste o funcție majoră, apoi compilatorul va fi confuz în a începe executarea programului.

#include
Principal()
{
……………
………… ..
}

Declarația de variabilă

Numele ca variabila este folosit pentru stocarea valorilor, dar această variabilă trebuie declarată mai întâi înainte de a fi utilizată în cadrul programului. Declarația variabilă menționează numele, precum și un tip de date. Aici, tipul de date nu este altceva decât reprezentarea datelor de stocare. În programarea C încorporată, folosește patru tipuri fundamentale de date, cum ar fi întreg, float, caracter pentru stocarea datelor în memorie. Dimensiunea tipului de date, precum și intervalul, pot fi definite în funcție de compilator.

Tipul de date se referă la un sistem extins pentru declararea variabilelor de diferite tipuri, cum ar fi întreg, caracter, float, etc. Software-ul C încorporat utilizează patru tipuri de date care sunt utilizate pentru a stoca date în memorie.

„Char” este utilizat pentru a stoca orice caracter unic „int” este utilizat pentru a stoca valoarea întreagă, iar „float” este utilizat pentru a stoca orice valoare în virgulă mobilă de precizie. Dimensiunea și gama diferitelor tipuri de date pe o mașină pe 32 de biți sunt date în tabelul următor. Dimensiunea și intervalul pot varia pe mașinile cu dimensiuni diferite de cuvinte.

  • Dimensiunea tipului de date char / semnat este de 1 octet și intervalul său este de la -128 la +128
  • Dimensiunea tipului de date de caractere nesemnate este de 1 octet și intervalul său este de la 0 la 255
  • Dimensiunea tipului de date int / semnat int este de 2 octeți și intervalul său este de la -32768 la 32767
  • Dimensiunea tipului de date int nesemnate este de 2 octeți și intervalul său este de la 0 la 65535

Principal()
{
Nesemnat int a, b, c
}

Structura unui program C încorporat este prezentată mai jos.

  • comentarii
  • directive preprocesator
  • variabile globale
  • functie principala

{

  • variabile locale
  • declarații
  • ………… ..
  • ………… ..

}

  • distractiv (1)

{

  • variabile locale
  • declarații
  • ………… ..
  • ………… ..

}

Logica programului

Logica programului este un plan al benzii care apare în teoria din spatele și rezultatele previzibile ale acțiunilor programului. Acesta explică teoria afirmației altfel cu privire la motivele pentru care programul încorporat va funcționa și arată efectele recunoscute ale acțiunilor în caz contrar resurse.

Principal
{
LED = 0x0f
întârziere (100)
LED = 0x00
întârziere (100)
}

Factorii principali ai programului Embedded C

Principalii factori care trebuie luați în considerare la alegerea limbajului de programare pentru dezvoltarea unui sistem încorporat includ următorii.

Dimensiunea programului

Fiecare limbaj de programare ocupă o anumită memorie în care procesorul încorporat, cum ar fi microcontrolerul, include o cantitate extrem de mică de memorie cu acces aleatoriu.

Viteza programului

Limbajul de programare ar trebui să fie foarte rapid, deci ar trebui să ruleze cât mai repede posibil. Viteza hardware-ului încorporat nu trebuie redusă din cauza software-ului cu funcționare lentă.

Portabilitate

Pentru diferitele procesoare încorporate, se poate realiza compilarea de programe similare.

  • Implementare simplă
  • Întreținere simplă
  • Lizibilitate

Diferențe între programul C și programul C încorporat

Diferența dintre programarea C și C încorporată nu se deosebește de fapt de mediul de operare și de unele extensii. Aceste limbaje de programare sunt standarde ISO și au, de asemenea, o sintaxă aproximativ similară, funcții, tipuri de date etc. Principalele diferențe dintre programarea C și programarea c încorporată includ următoarele.

Limbajul C

Limbaj C încorporat

În general, acest limbaj este utilizat pentru a dezvolta aplicații bazate pe desktop

Limbajul C încorporat este utilizat pentru a dezvolta aplicații bazate pe microcontroler.
Limbajul C nu este o extensie la orice limbaj de programare, ci un limbaj de programare de uz generalEmbedded C este o extensie a limbajului de programare C care include diferite caracteristici, cum ar fi adresarea I / O, aritmetica punct fix, adresarea cu memorie multiplă etc.

Procesează dezvoltarea nativă în naturăProcesează dezvoltarea încrucișată în natură
Este independent pentru arhitectura hardwareDepinde de arhitectura hardware a microcontrolerului și a altor dispozitive
Compilatoarele de limbaj C depind de sistemul de operareCompilatoarele C încorporate sunt independente de sistemul de operare
În limbajul C, compilatoarele standard sunt utilizate pentru executarea unui programÎn limbajul C încorporat, sunt utilizate compilatoare specifice.
Compilatoarele populare utilizate în acest limbaj sunt GCC, Borland turbo C, Intel C ++ etc.Compilatoarele populare utilizate în această limbă sunt Keil, BiPOM Electronics și Green Hill
Formatul limbajului C este în format liberFormatul său depinde în principal de tipul de microprocesor utilizat.
Optimizarea acestui limbaj este normalăOptimizarea acestui limbaj este un nivel ridicat
Este foarte ușor de modificat și cititNu este ușor de modificat și citit
Remedierea erorilor este ușoarăRemedierea erorilor în acest limbaj este complicată

Exemple de programe încorporate C

Următoarele sunt câteva programe simple Embedded C utilizate pentru proiecte bazate pe microcontrolere .

Exemplul-1

Exemplul-1

Exemplul-2

Exemplul-2

Exemplul-3

Exemplul-3

Exemplul-4

Exemplul-4

Avantaje

avantajele programului c încorporat g include următoarele.

  • Este foarte simplu de înțeles.
  • Execută o sarcină similară în mod continuu, astfel încât nu este necesară schimbarea hardware-ului, cum ar fi memoria suplimentară, altfel spațiu de stocare.
  • Execută pur și simplu o singură sarcină simultan
  • Costul hardware-ului utilizat în c încorporat este de obicei atât de mic.
  • Aplicațiile încorporate sunt extrem de adecvate în industrii.
  • Este nevoie de mai puțin timp pentru a dezvolta un program de aplicație.
  • Reduce complexitatea programului.
  • Este ușor de verificat și de înțeles.
  • Este portabil de la un controler la altul.

Dezavantaje

dezavantaje ale programării încorporate c include următoarele.

  • La un moment dat, execută o singură sarcină, dar nu poate executa mai multe sarcini
  • Dacă schimbăm programul, atunci trebuie să schimbăm și hardware-ul
  • Suportă doar sistemul hardware.
  • Are o problemă de scalabilitate
  • Are o restricție precum memoria limitată, altfel compatibilitatea computerului.

Aplicații ale programului Embedded C

aplicații de programare încorporată c include următoarele.

  • Programarea C încorporată este utilizată în industrii în scopuri diferite
  • Limbajul de programare utilizat în aplicații este verificatorul de viteză pe autostradă, controlul semafoarelor, controlul luminilor stradale, urmărirea vehiculului, inteligență artificială, automatizarea casei și controlul intensității automate.

Sperăm că am reușit să oferim un mod ușor și accesibil pentru începătorii din Programare C încorporată . Înțelegerea programării Embedded C este cea mai esențială condiție prealabilă pentru proiectarea proiectelor bazate pe embedded. În plus, o mai bună înțelegere și cunoștințe adecvate despre programarea C încorporată îi ajută pe elevi să selecteze o carieră plină de satisfacții.

Încurajăm și primim întrebări, sugestii și comentarii de la cititorii noștri. Prin urmare, puteți posta întrebările și feedback-ul dvs. despre acest articol în secțiunea de comentarii de mai jos. Urmați linkul de mai jos pentru Proiecte fără sudură