Què és un programa C incrustat i la seva estructura per a principiants

Proveu El Nostre Instrument Per Eliminar Problemes





Anteriorment, moltes aplicacions incrustades es van desenvolupar mitjançant la programació a nivell de muntatge. Tot i això, no van proporcionar portabilitat. Aquest desavantatge es va superar amb l’aparició de diversos llenguatges d’alt nivell com C, Pascal i COBOL. Tanmateix, va ser el llenguatge C el que va obtenir una àmplia acceptació dels sistemes incrustats i ho continua fent. El codi C escrit és més fiable, escalable i portàtil i, de fet, és molt més fàcil d’entendre. La programació C incrustada és l’ànima del processador que funciona dins de tots sistema incrustat ens trobem amb la nostra vida quotidiana, com ara telèfons mòbils, rentadores i càmeres digitals. Cada processador està associat amb programari incrustat. El primer i més important és el programari incrustat que decideix funcionar amb el sistema incrustat. El llenguatge C incrustat s’utilitza amb més freqüència programa el microcontrolador .

Què és el llenguatge C?

El llenguatge C va ser desenvolupat per Dennis Ritchie el 1969. Es tracta d’una col·lecció d’una o més funcions, i cada funció és una col·lecció d’enunciats que realitzen una tasca específica.
El llenguatge C és un llenguatge de nivell mitjà, ja que admet aplicacions d’alt nivell i baix nivell. Abans d’entrar en els detalls de la programació C incrustada, hem de conèixer l’organització de la memòria RAM.




Les principals característiques del llenguatge C són les següents.

  • El llenguatge C és un programari dissenyat amb diferents paraules clau, tipus de dades, variables, constants, etc.
  • C incrustat és un terme genèric donat a un llenguatge de programació escrit en C, que s’associa a una arquitectura de maquinari particular.
  • Embedded C és una extensió al llenguatge C amb alguns fitxers de capçalera addicionals. Aquests fitxers de capçalera poden canviar de controlador a controlador.
  • El microcontrolador 8051 S'utilitza #include.

Què és una programació C incrustada

En tots els projectes basats en sistemes incrustats, la programació Embedded C té un paper clau per fer que el microcontrolador funcioni i realitzi les accions preferides. Actualment, normalment utilitzem diversos dispositius electrònics com telèfons mòbils, rentadores, sistemes de seguretat, neveres, càmeres digitals, etc. El control d’aquests dispositius incrustats es pot fer amb l’ajuda d’un programa C incrustat. Per exemple, en una càmera digital, si premem un botó de càmera per capturar una foto, el microcontrolador executarà la funció necessària per fer clic a la imatge i emmagatzemar-la.



Programació C incrustada

Programació C incrustada

La programació incrustada C es crea amb un conjunt de funcions on cada funció és un conjunt d’instruccions que s’utilitzen per executar algunes tasques particulars. Tots dos llenguatges C i C incrustats són els mateixos i s’implementen a través d’alguns elements fonamentals com ara una variable, un conjunt de caràcters, paraules clau, tipus de dades, declaració de variables, expressions, sentències. Tots aquests elements juguen un paper clau en escriure un programa C incrustat.

Els dissenyadors de sistemes incrustats han de conèixer l’arquitectura de maquinari per escriure programes. Aquests programes tenen un paper destacat en la supervisió i control de dispositius externs. També operen i utilitzen directament l’arquitectura interna del microcontrolador, com ara la manipulació d’interrupcions, temporitzadors, comunicació en sèrie i altres funcions disponibles.


Programació de sistemes incrustats

Com hem comentat anteriorment, el disseny d'un sistema incrustat es pot fer mitjançant maquinari i programari. Per exemple, en un sistema incrustat senzill, el processador és el mòdul principal que funciona com el cor del sistema. Aquí un processador no és res més que un microprocessador, DSP, microcontrolador, CPLD i FPGA. Tots aquests processadors són programables de manera que defineix el funcionament del dispositiu.

Un programa de sistema incrustat permet al maquinari comprovar les entrades i controlar les sortides en conseqüència. En aquest procediment, el programa incrustat pot haver de controlar directament l’arquitectura interna del processador, com ara temporitzadors, manipulació d’interrupcions, ports d’E / S, interfície de comunicacions en sèrie, etc.

Per tant, la programació del sistema incrustat és molt important per al processador. Hi ha diferents llenguatges de programació disponibles per a sistemes incrustats com C, C ++, llenguatge d’ensamblatge, JAVA, script JAVA, visual basic, etc. Per tant, aquest llenguatge de programació juga un paper clau mentre es fa un sistema incrustat, però triar el llenguatge és molt essencial.

Passos per construir un programa C incrustat

Hi ha diferents passos per dissenyar un programa c incrustat com el següent.

  • Comentaris
  • Directrius del processador
  • Configuració del port
  • global variables
  • Funció bàsica / Funció principal
  • Declaració de variable
  • La lògica del programa

Comentaris

En els llenguatges de programació, els comentaris són molt essencials per descriure la funció del programa. El codi dels comentaris no és executable, però s’utilitza per proporcionar documentació del programa. Per entendre la funció del programa, això farà un mètode senzill per entendre la funció del programa. A C incrustat, els comentaris estan disponibles en dos tipus, és a dir, de línia simple i principal.

En un llenguatge de programació C incrustat, podem col·locar comentaris al nostre codi que ajudi el lector a entendre el codi fàcilment.

C = a + b / * afegiu dues variables el valor de les quals s'emmagatzema en una altra variable C * /

Comentari d'una sola línia

En general, per als llenguatges de programació, els comentaris d’una sola línia són molt útils per aclarir una fracció del programa. Aquests comentaris comencen amb una barra diagonal doble (//) i es poden localitzar en qualsevol lloc del llenguatge de programació. En utilitzar-ho, es pot ignorar tota la línia dins d’un programa.

Comentari de diverses línies

Els comentaris de diverses línies comencen amb una sola barra (/) i un asterisc (/ *) en els llenguatges de programació que explica un bloc de codi. Aquest tipus de comentaris es poden organitzar en qualsevol lloc del llenguatge de programació i s’utilitzen principalment per ignorar tot un bloc de codi dins d’un programa.

Directrius del processador

Les línies incloses dins del codi del programa s’anomenen directrius de preprocessador que es poden seguir mitjançant un símbol hash (#). Aquestes línies són les directives del preprocessador, però no les declaracions programades.
El codi es pot examinar mitjançant un preprocessador abans que comenci la compilació de codis reals i resolgui aquestes directives abans de generar un codi mitjançant sentències regulars. Hi ha diverses directives especials de preprocessador disponibles, tot i que dues directives són extremadament útils dins del llenguatge de programació

com el següent.

#incloure
#incloure
LED Sbit = P2 ^ 3
Principal ()
{
LED = 0x0ff
Retard()
LED = 0x00
}
#define
#incloure
#define LED P0
Principal ()
{
LED = 0x0ff
Retard()
LED = 0x00
}

En el programa anterior, la directiva #include s'utilitza generalment per incloure biblioteques estàndard com l'estudi i. h s’utilitza per permetre les funcions d’E / S mitjançant la biblioteca de ‘C’. La directiva #define s'utilitza generalment per descriure la sèrie de variables i assigna els valors executant el procés dins d'una instrucció particular com les macros.

Configuració del port

El microcontrolador inclou diversos ports on cada port té pins diferents. Aquests pins es poden utilitzar per controlar els dispositius d'interfície. La declaració d’aquests pins es pot fer dins d’un programa amb l’ajut de paraules clau. Les paraules clau del programa c incrustat són estàndard i estan predefinides com a bit, sbit, SFR, que s’utilitzen per indicar els bits i el pin únic dins d’un programa.

Hi ha certes paraules que es reserven per fer tasques específiques. Aquestes paraules es coneixen com a paraules clau. Són estàndard i estan predefinits a l’incrustat C. Les paraules clau s’escriuen sempre en minúscula. Aquestes paraules clau s’han de definir abans d’escriure el programa principal. Les funcions principals de les paraules clau inclouen les següents.

#incloure
Sbit a = P 2 ^ 2
SFR 0x00 = PoRT0
Bit C
main ()
{
............... ..
............... ..
}

sbit

Es tracta d’un tipus de tipus de dades que s’utilitza per accedir a un sol bit dins d’un registre SFR.

La sintaxi d’aquest tipus de dades és: nom de la variable sbit = bit SFR

Exemple: sbit a = P2 ^ 1

Si assignem p2.1 com a variable 'a', podem utilitzar 'a' en lloc de p2.1 a qualsevol lloc del programa, cosa que redueix la complexitat del programa.

Poc

Aquest tipus de tipus de dades s'utilitza principalment per permetre la memòria de bits adreçable de memòria d'accés aleatori com 20h a 2fh.

La sintaxi d’aquest tipus de dades és: nom de la variable de bits

Exemple: bit c

Es tracta d'una configuració de sèrie de bits dins d'una petita regió de dades que s'utilitza principalment amb l'ajuda d'un programa per memoritzar alguna cosa.

SFR

Aquest tipus de tipus de dades s’utilitza per obtenir els ports perifèrics del registre SFR mitjançant un nom addicional. Per tant, la declaració de tots els registres SFR es pot fer amb majúscules.

La sintaxi d’aquest tipus de dades és: nom de la variable SFR = adreça SFR per al registre SFR

Exemple: port SFR0 = 0 × 80

Si assignem 0 × 80 com 'port0', després d'això podem utilitzar 0 × 80 en lloc de port0 en qualsevol lloc del llenguatge de programació per disminuir la dificultat del programa.

Registre SFR

El SFR significa Registre de funcions especials. Al microcontrolador 8051, inclou la memòria RAM de 256 bytes, que es divideix en dos elements principals: el primer element de 128 bytes s’utilitza principalment per emmagatzemar les dades mentre que l’altre element de 128 bytes s’utilitza principalment als registres SFR. Tots els dispositius perifèrics, com temporitzadors, comptadors i ports d'E / S, s'emmagatzemen al registre SFR i cada element inclou una única adreça.

global Variables

Quan es declara la variable abans que la funció clau sigui coneguda com a variable global. Aquesta variable es pot permetre en qualsevol funció del programa. La vida útil de la variable global depèn principalment de la programació fins que finalitza.

#incloure
Sense signar int a, c = 10
Principal ()
{
...............
............ ..
}

Funció bàsica / Funció principal

La funció principal és una part central mentre s’executa qualsevol programa i comença simplement amb la funció principal. Cada programa utilitza simplement una funció important, ja que si el programa inclou una funció principal, el compilador es confondrà al començar l'execució del programa.

#incloure
Principal ()
{
...............
............ ..
}

Declaració de variable

El nom com la variable s’utilitza per emmagatzemar els valors, però aquesta variable s’ha de declarar abans d’utilitzar-la al programa. La declaració de variables indica el seu nom i un tipus de dades. Aquí, el tipus de dades no és res més que la representació de dades d’emmagatzematge. A la programació C incrustada, utilitza quatre tipus de dades fonamentals com enter, float, caràcter per emmagatzemar les dades a la memòria. La mida del tipus de dades, així com l'interval, es poden definir en funció del compilador.

El tipus de dades fa referència a un ampli sistema per declarar variables de diferents tipus com a enter, caràcter, flotant, etc. El programari C incrustat utilitza quatre tipus de dades que s’utilitzen per emmagatzemar dades a la memòria.

El 'char' s'utilitza per emmagatzemar qualsevol caràcter 'int' s'utilitza per emmagatzemar el valor enter i 'float' s'utilitza per emmagatzemar qualsevol valor de punt flotant de precisió. La mida i l'abast dels diferents tipus de dades en una màquina de 32 bits es donen a la taula següent. La mida i l’interval poden variar en màquines amb diferents mides de paraules.

  • La mida del tipus de dades de caràcters signats / signats és d'1 byte i el seu interval oscil·la entre -128 i +128
  • La mida del tipus de dades de caràcters sense signar és d'1 byte i el seu rang és de 0 a 255
  • La mida del tipus de dades int / signat int és de 2 bytes i el seu rang és de -32768 a 32767
  • La mida del tipus de dades int sense signar és de 2 bytes i el seu rang és de 0 a 65535

Principal ()
{
Sense signar int a, b, c
}

A continuació es mostra l'estructura d'un programa C incrustat.

  • comentaris
  • directrius de preprocessador
  • global variables
  • funció main ()

{

  • variables locals
  • declaracions
  • ............ ..
  • ............ ..

}

  • divertit (1)

{

  • variables locals
  • declaracions
  • ............ ..
  • ............ ..

}

La lògica del programa

La lògica del programa és un pla del carril que apareix a la teoria darrere de les sortides previsibles de les accions del programa. S’explica la teoria de la declaració d’una altra manera sobre per què funcionarà el programa incrustat i es mostren els efectes reconeguts de les accions en cas contrari.

Principal
{
LED = 0x0f
retard (100)
LED = 0x00
retard (100)
}

Principals factors del programa Embedded C

Els principals factors a tenir en compte a l’hora d’escollir el llenguatge de programació per desenvolupar un sistema incrustat són els següents.

Mida del programa

Tots els llenguatges de programació ocupen certa memòria on el processador incrustat com el microcontrolador inclou una quantitat extremadament inferior de memòria amb accés aleatori.

Velocitat del programa

El llenguatge de programació ha de ser molt ràpid, de manera que s’ha d’executar el més ràpidament possible. La velocitat del maquinari incrustat no s'ha de reduir a causa del programari de funcionament lent.

Portabilitat

Per als diferents processadors incrustats, es pot fer la compilació de programes similars.

  • Implementació senzilla
  • Manteniment senzill
  • Legibilitat

Diferències entre el programa C i el programa C incrustat

La diferència entre la programació C i C incrustada no es diferencia gaire de l'entorn operatiu i d'algunes extensions. Aquests llenguatges de programació són estàndards ISO i també tenen una sintaxi, funcions, tipus de dades, aproximadament similars, entre les principals diferències entre la programació C i la programació c incrustada s’inclouen les següents.

Llenguatge C

Llenguatge C incrustat

En general, aquest llenguatge s’utilitza per desenvolupar aplicacions basades en ordinadors

El llenguatge C incrustat s’utilitza per desenvolupar aplicacions basades en microcontroladors.
El llenguatge C no és una extensió a cap llenguatge de programació, sinó un llenguatge de programació d’ús generalEmbedded C és una extensió al llenguatge de programació C que inclou diferents funcions com E / S d’adreçament, aritmètica de punt fix, adreçament de memòria múltiple, etc.

Processa el desenvolupament natiu a la naturaProcessa el desenvolupament creuat a la natura
És independent per a l'arquitectura de maquinariDepèn de l'arquitectura de maquinari del microcontrolador i d'altres dispositius
Els compiladors de llenguatge C depenen del sistema operatiuEls compiladors C incrustats són independents del sistema operatiu
En llenguatge C, els compiladors estàndard s’utilitzen per executar un programaEn llenguatge C incrustat, s’utilitzen compiladors específics.
Els compiladors més utilitzats en aquest llenguatge són GCC, Borland turbo C, Intel C ++, etc.Els compiladors més populars que s’utilitzen en aquest idioma són Keil, BiPOM Electronics i Green Hill
El format del llenguatge C és de format lliureEl seu format depèn principalment del tipus de microprocessador utilitzat.
L’optimització d’aquest llenguatge és normalL’optimització d’aquest llenguatge és d’alt nivell
És molt fàcil de modificar i llegirNo és fàcil de modificar i llegir
La correcció d’errors és fàcilLa correcció d’errors d’aquest idioma és complicada

Exemples de programa C incrustats

A continuació es detallen alguns programes simples de C incrustat que s’utilitzen projectes basats en microcontroladors .

Exemple-1

Exemple-1

Exemple-2

Exemple-2

Exemple-3

Exemple-3

Exemple-4

Exemple-4

Avantatges

El avantatges de programmin c incrustat g inclouen el següent.

  • És molt senzill d’entendre.
  • Executa una tasca similar contínuament, de manera que no hi ha cap requisit per canviar maquinari, com ara memòria addicional, en cas contrari, espai d'emmagatzematge.
  • Executa simplement una sola tasca alhora
  • El cost del maquinari utilitzat al c incrustat sol ser molt baix.
  • Les aplicacions dels incrustats són extremadament adequades a les indústries.
  • Es necessita menys temps per desenvolupar un programa d'aplicació.
  • Redueix la complexitat del programa.
  • És fàcil de comprovar i comprendre.
  • És portàtil d’un controlador a un altre.

Desavantatges

El desavantatges de la programació incrustada de c inclou el següent.

  • A la vegada, només executa una tasca, però no pot executar les tasques múltiples
  • Si canviem el programa, també haurem de canviar el maquinari
  • Només admet el sistema de maquinari.
  • Té un problema d’escalabilitat
  • Té una restricció com la memòria limitada, en cas contrari, la compatibilitat de l'ordinador.

Aplicacions del programa Embedded C.

El aplicacions de programació incrustada de c inclou el següent.

  • La programació C incrustada s’utilitza en indústries amb diferents propòsits
  • El llenguatge de programació utilitzat a les aplicacions és el control de velocitat a l’autopista, el control dels semàfors, el control dels enllumenats públics, el seguiment del vehicle, la intel·ligència artificial, la domòtica i el control d’intensitat automàtica.

Esperem que hàgim aconseguit una manera fàcil i accessible per als principiants de Programació C incrustada . La comprensió de la programació Embedded C és el requisit previ més essencial per dissenyar projectes basats en incrustats. A més d’això, una millor comprensió i un coneixement adequat sobre la programació incrustada de C ajuden els estudiants a escollir una carrera gratificant.

Animem i donem la benvinguda a consultes, suggeriments i comentaris dels nostres lectors. Per tant, podeu publicar les vostres consultes i comentaris sobre aquest article a la secció de comentaris que es mostra a continuació. Seguiu l'enllaç següent per a Projectes sense soldadura