Wat is een ingebed C-programma en de structuur ervan voor beginners

Probeer Ons Instrument Voor Het Oplossen Van Problemen





Eerder werden veel embedded applicaties ontwikkeld met behulp van programmering op assemblagelevel. Ze boden echter geen draagbaarheid. Dit nadeel werd overwonnen door de komst van verschillende talen op hoog niveau, zoals C, Pascal en COBOL. Het was echter de C-taal die uitgebreid werd geaccepteerd voor embedded systemen, en dat blijft zo. De geschreven C-code is betrouwbaarder, schaalbaarder en draagbaarder en in feite veel gemakkelijker te begrijpen. Embedded C Programming is de ziel van de processor die binnenin elk ingebouwd systeem we komen in ons dagelijks leven tegen, zoals mobiele telefoons, wasmachines en digitale camera's. Elke processor is gekoppeld aan embedded software. Het allerbelangrijkste is de embedded software die beslist om te functioneren van het embedded systeem. Ingesloten C-taal wordt het meest gebruikt programmeer de microcontroller

Wat is C-taal?

C-taal is ontwikkeld door Dennis Ritchie in 1969. Het is een verzameling van een of meer functies, en elke functie is een verzameling statements die een specifieke taak uitvoeren.
C-taal is een taal op middenniveau omdat deze toepassingen op hoog niveau en toepassingen op laag niveau ondersteunt. Voordat we ingaan op de details van embedded C-programmering, moeten we de RAM-geheugenorganisatie kennen.




De belangrijkste kenmerken van de C-taal zijn de volgende.

  • C-taal is software die is ontworpen met verschillende trefwoorden, gegevenstypen, variabelen, constanten, enz.
  • Embedded C is een algemene term die wordt gegeven aan een programmeertaal geschreven in C, die is gekoppeld aan een bepaalde hardware-architectuur.
  • Embedded C is een uitbreiding op de C-taal met enkele extra headerbestanden. Deze headerbestanden kunnen van controller naar controller veranderen.
  • De microcontroller 8051 #include wordt gebruikt.

Wat is een embedded C-programmering

In elk embedded-systeemgebaseerde projecten speelt Embedded C-programmering een sleutelrol om de microcontroller te laten draaien en de gewenste acties uit te voeren. Momenteel gebruiken we normaal gesproken verschillende elektronische apparaten zoals mobiele telefoons, wasmachines, beveiligingssystemen, koelkasten, digitale camera's, enz. De bediening van deze ingebouwde apparaten kan worden gedaan met behulp van een ingebed C-programma. Als we in een digitale camera bijvoorbeeld op een cameraknop drukken om een ​​foto te maken, voert de microcontroller de vereiste functie uit om op de afbeelding te klikken en deze op te slaan.



Ingebouwde C-programmering

Ingebouwde C-programmering

Embedded C-programmering bouwt met een set functies waarbij elke functie een set instructies is die worden gebruikt om bepaalde taken uit te voeren. Zowel de ingebedde C- als de C-taal zijn hetzelfde en geïmplementeerd via enkele fundamentele elementen zoals een variabele, tekenset, trefwoorden, gegevenstypen, declaratie van variabelen, uitdrukkingen, instructies. Al deze elementen spelen een sleutelrol bij het schrijven van een embedded C-programma.

De ontwerpers van embedded systemen moeten de hardware-architectuur kennen om programma's te schrijven. Deze programma's spelen een prominente rol bij het bewaken en besturen van externe apparaten. Ze bedienen en gebruiken ook rechtstreeks de interne architectuur van de microcontroller, zoals interruptafhandeling, timers, seriële communicatie en andere beschikbare functies.


Embedded systeemprogrammering

Zoals we eerder hebben besproken, kan het ontwerpen van een embedded systeem worden gedaan met behulp van hardware en software. In een eenvoudig embedded systeem is de processor bijvoorbeeld de hoofdmodule die werkt als het hart van het systeem. Hier is een processor niets anders dan een microprocessor, DSP, microcontroller, CPLD en FPGA. Al deze processors zijn programmeerbaar zodat ze de werking van het apparaat bepalen.

Met een ingebed systeemprogramma kan de hardware de inputs en besturingsoutputs dienovereenkomstig controleren. In deze procedure moet het ingebedde programma mogelijk de interne architectuur van de processor rechtstreeks besturen, zoals Timers, Interrupt Handling, I / O-poorten, seriële communicatie-interface, enz.

Programmering van embedded systemen is dus erg belangrijk voor de processor. Er zijn verschillende programmeertalen beschikbaar voor embedded systemen zoals C, C ++, assembleertaal, JAVA, JAVA script, visual basic, etc. Deze programmeertaal speelt dus een sleutelrol bij het maken van een embedded systeem, maar het kiezen van de taal is erg essentieel.

Stappen om een ​​ingebed C-programma te bouwen

Er zijn verschillende stappen betrokken bij het ontwerpen van een embedded c-programma, zoals de volgende.

  • Opmerkingen
  • Richtlijnen van verwerker
  • Configuratie van poort
  • Globale variabelen
  • Kernfunctie / hoofdfunctie
  • Verklaring van variabele
  • De logica van het programma

Opmerkingen

In programmeertalen zijn opmerkingen erg essentieel om de functie van het programma te beschrijven. De code van de commentaren is niet-uitvoerbaar, maar wordt gebruikt om programmadocumentatie te verstrekken. Om de functie van het programma te begrijpen, zal dit een eenvoudige methode zijn om de functie van het programma te begrijpen. In embedded C zijn opmerkingen beschikbaar in twee typen, namelijk enkele regel en hoofdregelcommentaar.

In een embedded C-programmeertaal kunnen we opmerkingen in onze code plaatsen, waardoor de lezer de code gemakkelijk kan begrijpen.

C = a + b / * voeg twee variabelen toe waarvan de waarde is opgeslagen in een andere variabele C * /

Enkele regel commentaar

Over het algemeen zijn opmerkingen van één regel voor de programmeertalen erg handig om een ​​deel van het programma te verduidelijken. Deze opmerkingen beginnen met een dubbele schuine streep (//) en kunnen overal in de programmeertaal staan. Door dit te gebruiken, kan de hele regel binnen een programma worden genegeerd.

Meerregelige opmerking

Commentaar van meerdere regels begint met een enkele schuine streep (/) en een asterisk (/ *) in de programmeertalen, wat een codeblok verklaart. Dit soort opmerkingen kan overal in de programmeertaal worden gerangschikt en wordt voornamelijk gebruikt om een ​​heel blok code binnen een programma te negeren.

Richtlijnen van verwerker

De regels in de programmacode worden preprocessorrichtlijnen genoemd die kunnen worden gevolgd door een hekje (#). Deze regels zijn de preprocessorrichtlijnen, maar geen geprogrammeerde instructies.
De code kan worden onderzocht via een preprocessor voordat de echte codecompilatie begint en lost deze richtlijnen op voordat een code wordt gegenereerd via reguliere instructies. Er zijn verschillende speciale preprocessorrichtlijnen beschikbaar, hoewel twee richtlijnen zeer nuttig zijn binnen de programmeertaal

zoals de volgende.

#inclusief
#inclusief
Sbit-led = P2 ^ 3
Hoofd()

LED = 0x0ff
Vertraging()
Led = 0x00

#bepalen
#inclusief
# definiëren LED P0
Hoofd()

LED = 0x0ff
Vertraging()
Led = 0x00

In het bovenstaande programma wordt de # include-richtlijn over het algemeen gebruikt om standaardbibliotheken zoals study en. h wordt gebruikt om I / O-functies mogelijk te maken met behulp van de bibliotheek van ‘C’. De #define-richtlijn wordt meestal gebruikt om de reeks variabelen te beschrijven en wijst de waarden toe door het proces uit te voeren binnen een bepaalde instructie, zoals macro's.

Configuratie van poort

De microcontroller bevat verschillende poorten waarbij elke poort verschillende pinnen heeft. Deze pinnen kunnen worden gebruikt voor het besturen van de interface-apparaten. Het declareren van deze pins kan binnen een programma gebeuren met behulp van keywords. De sleutelwoorden in het embedded c-programma zijn zowel standaard als voorgedefinieerd zoals een bit, sbit, SFR die worden gebruikt om de bits en enkele pin binnen een programma te vermelden.

Er zijn bepaalde woorden die zijn gereserveerd voor het uitvoeren van specifieke taken. Deze woorden staan ​​bekend als trefwoorden. Ze zijn standaard en vooraf gedefinieerd in de Embedded C. Trefwoorden worden altijd in kleine letters geschreven. Deze sleutelwoorden moeten worden gedefinieerd voordat het hoofdprogramma wordt geschreven. De belangrijkste functies van de trefwoorden zijn onder meer de volgende.

#inclusief
Sbit a = P 2 ^ 2
SFR 0x00 = PoRT0
Bit C
hoofd()



sbit

Dit is een soort gegevenstype dat wordt gebruikt om toegang te krijgen tot een enkele bit binnen een SFR-register.

De syntaxis voor dit gegevenstype is: sbit-variabelenaam = SFR-bit

Voorbeeld: sbit a = P2 ^ 1

Als we p2.1 als ‘a’ variabele toewijzen, dan kunnen we ‘a’ overal in het programma gebruiken in plaats van p2.1, wat de complexiteit van het programma vermindert.

Beetje

Dit type gegevenstype wordt voornamelijk gebruikt om het bit-adresseerbare geheugen van willekeurig toegankelijk geheugen zoals 20h tot 2fh mogelijk te maken.

De syntaxis van dit gegevenstype is: naam van bitvariabele

Voorbeeld: bit c

Het is een bitreeksinstelling binnen een klein datagebied die voornamelijk wordt gebruikt met behulp van een programma om iets te onthouden.

SFR

Dit soort datatype wordt gebruikt om de perifere poorten van het SFR-register te verkrijgen via een extra naam. De aangifte van alle SFR-registers kan dus in hoofdletters gebeuren.

De syntaxis van dit gegevenstype is: SFR-variabelenaam = SFR-adres voor SFR-register

Voorbeeld: SFR-poort 0 = 0 × 80

Als we 0 × 80 als ‘port0’ toewijzen, kunnen we daarna 0 × 80 gebruiken in plaats van port0 waar dan ook in de programmeertaal om de moeilijkheidsgraad van het programma te verminderen.

SFR-register

De SFR staat voor Special Function Register. In de 8051-microcontroller bevat het het RAM-geheugen met 256 bytes, dat is onderverdeeld in twee hoofdelementen: het eerste element van 128 bytes wordt voornamelijk gebruikt voor het opslaan van de gegevens, terwijl het andere element van 128 bytes voornamelijk wordt gebruikt voor SFR-registers. Alle randapparatuur zoals timers, tellers en I / O-poorten worden opgeslagen in het SFR-register en elk element bevat een enkel adres.

Globale variabelen

Wanneer de variabele wordt gedeclareerd voordat de sleutelfunctie bekend staat als de globale variabele. Deze variabele kan op elke functie binnen het programma worden toegestaan. De levensduur van de globale variabele hangt voornamelijk af van de programmering tot het einde ervan.

#inclusief
Unsigned int a, c = 10
Hoofd()



Kernfunctie / hoofdfunctie

De hoofdfunctie is een centraal onderdeel tijdens het uitvoeren van een programma en het begint eenvoudig met de hoofdfunctie. Elk programma gebruikt slechts één hoofdfunctie, want als het programma meer dan één hoofdfunctie bevat, zal de compiler vervolgens in de war raken bij het begin van de uitvoering van het programma.

#inclusief
Hoofd()



Verklaring van variabele

De naam zoals de variabele wordt gebruikt voor het opslaan van de waarden, maar deze variabele moet eerst worden gedeclareerd voordat deze in het programma wordt gebruikt. De variabeledeclaratie vermeldt zowel de naam als een gegevenstype. Hier is het gegevenstype niets anders dan de weergave van opslaggegevens. In embedded C-programmering gebruikt het vier fundamentele gegevenstypen zoals integer, float, karakter voor het opslaan van de gegevens in het geheugen. De grootte van het gegevenstype en het bereik kunnen worden gedefinieerd afhankelijk van de compiler.

Het datatype verwijst naar een uitgebreid systeem voor het declareren van variabelen van verschillende typen zoals integer, character, float, etc. De embedded C-software gebruikt vier datatypes die worden gebruikt om data in het geheugen op te slaan.

Het ‘char’ wordt gebruikt om elk willekeurig teken op te slaan ‘int’ wordt gebruikt om de gehele waarde op te slaan, en ‘float’ wordt gebruikt om elke precisie drijvende-kommawaarde op te slaan. De grootte en het bereik van verschillende gegevenstypen op een 32-bits machine worden gegeven in de volgende tabel. De grootte en het bereik kunnen variëren bij machines met verschillende woordgroottes.

  • De grootte van het gegevenstype teken / teken is 1 byte en het bereik is van -128 tot +128
  • De niet-ondertekende teken datatype grootte is 1 byte en het bereik is van 0 tot 255
  • De grootte van het gegevenstype Int / ondertekend int is 2 byte en het bereik loopt van -32768 tot 32767
  • Unsigned int-gegevenstypegrootte is 2 byte en het bereik is van 0 tot 65535

Hoofd()

Unsigned int a, b, c

De structuur van een ingebed C-programma wordt hieronder weergegeven.

  • opmerkingen
  • preprocessor richtlijnen
  • globale variabelen
  • hoofdfunctie

  • lokale variabelen
  • verklaringen

  • leuk (1)

  • lokale variabelen
  • verklaringen

De logica van het programma

De logica van het programma is een plan van de baan die verschijnt in de theorie achter en voorspelbare resultaten van acties van het programma. Het verklaart de verklaring anders theorie over waarom het ingebedde programma zal werken en toont de erkende effecten van acties anders middelen.

Hoofd

LED = 0x0f
vertraging (100)
Led = 0x00
vertraging (100)

Belangrijkste factoren van embedded C-programma

De belangrijkste factoren waarmee rekening moet worden gehouden bij het kiezen van de programmeertaal voor het ontwikkelen van een ingebed systeem, zijn onder meer de volgende.

Programmagrootte

Elke programmeertaal neemt wat geheugen in beslag, terwijl een ingebouwde processor, zoals een microcontroller, een extreem kleine hoeveelheid willekeurig toegankelijk geheugen bevat.

Snelheid van het programma

De programmeertaal moet erg snel zijn, dus moet zo snel mogelijk worden uitgevoerd. De snelheid van embedded hardware mag niet worden verminderd vanwege de traag werkende software.

Draagbaarheid

Voor de verschillende embedded processors kan de compilatie van gelijkaardige programma's worden gedaan.

  • Eenvoudige implementatie
  • Eenvoudig onderhoud
  • Leesbaarheid

Verschillen tussen C Program en Embedded C Program

Het verschil tussen embedded C- en C-programmering is eigenlijk niet veel los van de besturingsomgeving en enkele extensies. Deze programmeertalen zijn ISO-standaarden en hebben ook ongeveer vergelijkbare syntaxis, functies, gegevenstypen, enz. De belangrijkste verschillen tussen C-programmering en embedded c-programmering omvatten de volgende.

C Taal

Embedded C-taal

Over het algemeen wordt deze taal gebruikt om desktop-gebaseerde applicaties te ontwikkelen

Embedded C-taal wordt gebruikt om op microcontrollers gebaseerde applicaties te ontwikkelen.
C-taal is geen uitbreiding op een programmeertaal, maar een programmeertaal voor algemene doeleindenEmbedded C is een uitbreiding op de programmeertaal C met verschillende functies, zoals adressering van I / O, rekenkunde met vaste komma, adressering met meerdere geheugens, enz.

Het verwerkt inheemse ontwikkeling in de natuurHet verwerkt kruisontwikkeling in de natuur
Het is onafhankelijk voor hardware-architectuurHet hangt af van de hardware-architectuur van de microcontroller en andere apparaten
De compilers van C-taal zijn afhankelijk van het besturingssysteemEmbedded C-compilers zijn OS-onafhankelijk
In C-taal worden de standaardcompilers gebruikt voor het uitvoeren van een programmaIn embedded C-taal worden specifieke compilers gebruikt.
De populaire compilers die in deze taal worden gebruikt, zijn GCC, Borland turbo C, Intel C ++, enzDe populaire compilers die in deze taal worden gebruikt, zijn Keil, BiPOM Electronics en green hill
Het formaat van C-taal is vrij formaatHet formaat hangt voornamelijk af van het soort microprocessor dat wordt gebruikt.
Optimalisatie van deze taal is normaalOptimalisatie van deze taal is van hoog niveau
Het is heel gemakkelijk aan te passen en te lezenHet is niet gemakkelijk te wijzigen en te lezen
Bugfixatie is eenvoudigHet oplossen van fouten in deze taal is ingewikkeld

Voorbeelden van embedded C-programma's

Hier volgen enkele eenvoudige Embedded C-programma's die voor worden gebruikt op microcontroller gebaseerde projecten

Voorbeeld 1

Voorbeeld 1

Voorbeeld-2

Voorbeeld-2

Voorbeeld-3

Voorbeeld-3

Voorbeeld-4

Voorbeeld-4

Voordelen

De voordelen van embedded c programmin g omvatten het volgende.

  • Het is heel eenvoudig te begrijpen.
  • Het voert een gelijkaardige taak continu uit, dus het is niet nodig om hardware te veranderen, zoals extra geheugen of opslagruimte.
  • Het voert gewoon een enkele taak tegelijk uit
  • De kosten van de hardware die in de embedded c wordt gebruikt, zijn doorgaans zo laag.
  • De toepassingen van embedded zijn uitermate geschikt in industrieën.
  • Het kost minder tijd om een ​​applicatieprogramma te ontwikkelen.
  • Het vermindert de complexiteit van het programma.
  • Het is gemakkelijk te verifiëren en te begrijpen.
  • Het is draagbaar van de ene controller naar de andere.

Nadelen

De nadelen van embedded c-programmering omvatten de volgende.

  • Het voert per keer slechts één taak uit, maar kan de multitaken niet uitvoeren
  • Als we het programma wijzigen, moeten we ook de hardware wijzigen
  • Het ondersteunt alleen het hardwaresysteem.
  • Het heeft een schaalbaarheidsprobleem
  • Het heeft een beperking zoals beperkt geheugen, anders compatibiliteit van de computer.

Toepassingen van Embedded C-programma

De toepassingen van embedded c-programmering omvatten de volgende.

  • Embedded C-programmering wordt in industrieën voor verschillende doeleinden gebruikt
  • De programmeertaal die in de applicaties wordt gebruikt, is snelheidscontrole op de snelweg, bediening van verkeerslichten, bediening van straatverlichting, volgen van het voertuig, kunstmatige intelligentie, domotica en automatische intensiteitscontrole.

We hopen dat we erin zijn geslaagd een gemakkelijke en toegankelijke manier te bieden voor de beginners van Embedded C-programmering ​Inzicht in Embedded C-programmering is de meest essentiële voorwaarde voor het ontwerpen van embedded projecten. Daarnaast helpt een beter begrip en een goede kennis van embedded C-programmeren studenten enorm bij het kiezen van een lonende carrière.

We moedigen vragen, suggesties en opmerkingen van onze lezers aan en verwelkomen deze. Daarom kunt u uw vragen en feedback over dit artikel posten in het commentaargedeelte hieronder. Volg de onderstaande link voor Soldeerloze projecten