Was ist ein Embedded C-Programm und seine Struktur für Anfänger?

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





Zuvor wurden viele eingebettete Anwendungen mithilfe der Programmierung auf Baugruppenebene entwickelt. Sie boten jedoch keine Portabilität. Dieser Nachteil wurde durch das Aufkommen verschiedener Hochsprachen wie C, Pascal und COBOL überwunden. Es war jedoch die C-Sprache, die für eingebettete Systeme breite Akzeptanz fand und dies auch weiterhin tut. Der geschriebene C-Code ist zuverlässiger, skalierbarer und portabler und in der Tat viel einfacher zu verstehen. Embedded C-Programmierung ist die Seele des Prozessors, der in jedem einzelnen funktioniert Eingebettetes System Wir stoßen in unserem täglichen Leben auf Mobiltelefone, Waschmaschinen und Digitalkameras. Jeder Prozessor ist eingebetteter Software zugeordnet. In erster Linie handelt es sich um die eingebettete Software, die sich für die Funktion des eingebetteten Systems entscheidet. Embedded C-Sprache wird am häufigsten verwendet Programmieren Sie den Mikrocontroller .

Was ist C-Sprache?

Die C-Sprache wurde 1969 von Dennis Ritchie entwickelt. Sie besteht aus einer oder mehreren Funktionen, und jede Funktion ist eine Sammlung von Anweisungen, die eine bestimmte Aufgabe ausführen.
Die Sprache C ist eine Sprache der mittleren Ebene, da sie Anwendungen auf hoher Ebene und Anwendungen auf niedriger Ebene unterstützt. Bevor wir uns mit den Details der Embedded C-Programmierung befassen, sollten wir uns mit der Organisation des RAM-Speichers vertraut machen.




Die Hauptmerkmale der C-Sprache umfassen Folgendes.

  • C-Sprache ist eine Software, die mit verschiedenen Schlüsselwörtern, Datentypen, Variablen, Konstanten usw. entwickelt wurde.
  • Embedded C ist ein Oberbegriff für eine in C geschriebene Programmiersprache, die einer bestimmten Hardwarearchitektur zugeordnet ist.
  • Embedded C ist eine Erweiterung der C-Sprache mit einigen zusätzlichen Header-Dateien. Diese Header-Dateien können sich von Controller zu Controller ändern.
  • Das Mikrocontroller 8051 #include wird verwendet.

Was ist eine eingebettete C-Programmierung?

In allen auf eingebetteten Systemen basierenden Projekten spielt die Embedded C-Programmierung eine Schlüsselrolle, damit der Mikrocontroller ausgeführt wird und die bevorzugten Aktionen ausführt. Gegenwärtig verwenden wir normalerweise mehrere elektronische Geräte wie Mobiltelefone, Waschmaschinen, Sicherheitssysteme, Kühlschränke, Digitalkameras usw. Die Steuerung dieser eingebetteten Geräte kann mit Hilfe eines eingebetteten C-Programms erfolgen. Wenn wir beispielsweise in einer Digitalkamera eine Kamerataste drücken, um ein Foto aufzunehmen, führt der Mikrocontroller die erforderliche Funktion aus, um auf das Bild zu klicken und es zu speichern.



Embedded C-Programmierung

Embedded C-Programmierung

Die eingebettete C-Programmierung besteht aus einer Reihe von Funktionen, wobei jede Funktion eine Reihe von Anweisungen ist, die zum Ausführen bestimmter Aufgaben verwendet werden. Sowohl die eingebettete C- als auch die C-Sprache sind identisch und werden durch einige grundlegende Elemente wie Variable, Zeichensatz, Schlüsselwörter, Datentypen, Deklaration von Variablen, Ausdrücke und Anweisungen implementiert. Alle diese Elemente spielen beim Schreiben eines eingebetteten C-Programms eine Schlüsselrolle.

Die Entwickler eingebetteter Systeme müssen die Hardwarearchitektur kennen, um Programme schreiben zu können. Diese Programme spielen eine herausragende Rolle bei der Überwachung und Steuerung externer Geräte. Sie bedienen und verwenden auch direkt die interne Architektur des Mikrocontrollers, z. B. Interrupt-Behandlung, Timer, serielle Kommunikation und andere verfügbare Funktionen.


Programmierung eingebetteter Systeme

Wie bereits erwähnt, kann der Entwurf eines eingebetteten Systems mithilfe von Hardware und Software erfolgen. In einem einfachen eingebetteten System ist beispielsweise der Prozessor das Hauptmodul, das wie das Herz des Systems funktioniert. Hier ist ein Prozessor nichts anderes als ein Mikroprozessor, DSP, Mikrocontroller, CPLD und FPGA. Alle diese Prozessoren sind so programmierbar, dass sie die Funktionsweise des Geräts definieren.

Ein Embedded-System-Programm ermöglicht es der Hardware, die Ein- und Steuerausgänge entsprechend zu überprüfen. Bei diesem Verfahren muss das eingebettete Programm möglicherweise die interne Architektur des Prozessors direkt steuern, z. B. Timer, Interrupt-Behandlung, E / A-Ports, serielle Kommunikationsschnittstelle usw.

Daher ist die Programmierung eingebetteter Systeme für den Prozessor sehr wichtig. Für eingebettete Systeme wie C, C ++, Assemblersprache, JAVA, JAVA-Skript, Visual Basic usw. stehen verschiedene Programmiersprachen zur Verfügung. Daher spielt diese Programmiersprache eine wichtige Rolle bei der Erstellung eines eingebetteten Systems. Die Auswahl der Sprache ist jedoch sehr wichtig.

Schritte zum Erstellen eines eingebetteten C-Programms

Das Entwerfen eines eingebetteten c-Programms umfasst verschiedene Schritte wie die folgenden.

  • Bemerkungen
  • Anweisungen des Prozessors
  • Konfiguration des Ports
  • Globale Variablen
  • Kernfunktion / Hauptfunktion
  • Deklaration der Variablen
  • Die Logik des Programms

Bemerkungen

In Programmiersprachen sind Kommentare sehr wichtig, um die Funktion des Programms zu beschreiben. Der Code der Kommentare ist nicht ausführbar, wird jedoch zur Bereitstellung der Programmdokumentation verwendet. Um die Funktion des Programms zu verstehen, ist dies eine einfache Methode, um die Funktion des Programms zu verstehen. In eingebettetem C sind Kommentare in zwei Typen verfügbar, nämlich einzeilige und Hauptzeilenkommentare.

In einer eingebetteten C-Programmiersprache können wir Kommentare in unseren Code einfügen, die dem Leser helfen, den Code leicht zu verstehen.

C = a + b / * addiere zwei Variablen, deren Wert in einer anderen Variablen C * / gespeichert ist

Einzeiliger Kommentar

Im Allgemeinen sind einzeilige Kommentare für die Programmiersprachen sehr nützlich, um einen Bruchteil des Programms zu verdeutlichen. Diese Kommentare beginnen mit einem doppelten Schrägstrich (//) und können sich an einer beliebigen Stelle in der Programmiersprache befinden. Auf diese Weise kann die gesamte Zeile innerhalb eines Programms ignoriert werden.

Mehrzeiliger Kommentar

Mehrzeilige Kommentare beginnen mit einem einzelnen Schrägstrich (/) und einem Sternchen (/ *) in den Programmiersprachen, der einen Codeblock erklärt. Diese Arten von Kommentaren können überall in der Programmiersprache angeordnet werden und werden hauptsächlich verwendet, um einen ganzen Codeblock innerhalb eines Programms zu ignorieren.

Anweisungen des Prozessors

Die im Programmcode enthaltenen Zeilen werden als Präprozessoranweisungen bezeichnet, denen ein Hash-Symbol (#) folgen kann. Diese Zeilen sind die Präprozessoranweisungen, jedoch keine programmierten Anweisungen.
Der Code kann durch einen Präprozessor überprüft werden, bevor die Kompilierung des echten Codes beginnt und diese Anweisungen auflöst, bevor ein Code durch reguläre Anweisungen generiert wird. Es stehen mehrere spezielle Präprozessor-Direktiven zur Verfügung, obwohl zwei Direktiven in der Programmiersprache äußerst hilfreich sind

wie das folgende.

#einschließen
#einschließen
Sbit LED = P2 ^ 3
Main()
{
LED = 0x0ff
Verzögern()
LED = 0x00
}}
#definieren
#einschließen
# LED P0 definieren
Main()
{
LED = 0x0ff
Verzögern()
LED = 0x00
}}

Im obigen Programm wird die Direktive #include im Allgemeinen verwendet, um Standardbibliotheken wie study und zu umfassen. h wird verwendet, um E / A-Funktionen unter Verwendung der Bibliothek von 'C' zuzulassen. Die Direktive #define wird normalerweise verwendet, um die Reihe von Variablen zu beschreiben und die Werte zuzuweisen, indem der Prozess innerhalb einer bestimmten Anweisung wie Makros ausgeführt wird.

Konfiguration des Ports

Der Mikrocontroller enthält mehrere Ports, an denen jeder Port unterschiedliche Pins hat. Diese Pins können zur Steuerung der Schnittstellengeräte verwendet werden. Die Deklaration dieser Pins kann innerhalb eines Programms mit Hilfe von Schlüsselwörtern erfolgen. Die Schlüsselwörter im eingebetteten c-Programm sind sowohl Standard- als auch vordefinierte Schlüsselwörter wie Bit, Sbit und SFR, mit denen die Bits und der einzelne Pin innerhalb eines Programms angegeben werden.

Es gibt bestimmte Wörter, die für bestimmte Aufgaben reserviert sind. Diese Wörter werden als Schlüsselwörter bezeichnet. Sie sind Standard und in Embedded C vordefiniert. Schlüsselwörter werden immer in Kleinbuchstaben geschrieben. Diese Schlüsselwörter müssen vor dem Schreiben des Hauptprogramms definiert werden. Die Hauptfunktionen der Schlüsselwörter umfassen Folgendes.

#einschließen
Sbit a = P 2 ^ 2
SFR 0x00 = PoRT0
Bit C.
Main()
{
…………… ..
…………… ..
}}

sbit

Dies ist eine Art von Datentyp, der verwendet wird, um auf ein einzelnes Bit innerhalb eines SFR-Registers zuzugreifen.

Die Syntax für diesen Datentyp lautet: sbit Variablenname = SFR-Bit

Beispiel: sbit a = P2 ^ 1

Wenn wir p2.1 als 'a' -Variable zuweisen, können wir 'a' anstelle von p2.1 an einer beliebigen Stelle im Programm verwenden, was die Komplexität des Programms verringert.

Bisschen

Diese Art von Datentyp wird hauptsächlich verwendet, um den bitadressierbaren Speicher eines Direktzugriffsspeichers wie 20h bis 2fh zuzulassen.

Die Syntax dieses Datentyps lautet: Name der Bitvariablen

Beispiel: Bit c

Es handelt sich um eine Bitreiheneinstellung in einem kleinen Datenbereich, die hauptsächlich mit Hilfe eines Programms zum Speichern von Daten verwendet wird.

SFR

Diese Art von Datentyp wird verwendet, um die Peripherieports des SFR-Registers über einen zusätzlichen Namen zu erhalten. Die Deklaration aller SFR-Register kann also in Großbuchstaben erfolgen.

Die Syntax dieses Datentyps lautet: SFR-Variablenname = SFR-Adresse für das SFR-Register

Beispiel: SFR-Port0 = 0 × 80

Wenn wir 0 × 80 wie 'port0' zuweisen, können wir danach überall in der Programmiersprache 0 × 80 anstelle von port0 verwenden, um die Schwierigkeit des Programms zu verringern.

SFR-Register

Der SFR steht für Special Function Register. In einem 8051-Mikrocontroller enthält er den RAM-Speicher mit 256 Bytes, der in zwei Hauptelemente unterteilt ist: Das erste Element von 128 Bytes wird hauptsächlich zum Speichern der Daten verwendet, während das andere Element von 128 Bytes hauptsächlich für SFR-Register verwendet wird. Alle Peripheriegeräte wie Timer, Zähler und E / A-Ports werden im SFR-Register gespeichert und jedes Element enthält eine einzelne Adresse.

Globale Variablen

Wenn die Variable deklariert wird, bevor die Schlüsselfunktion als globale Variable bezeichnet wird. Diese Variable kann für jede Funktion innerhalb des Programms zugelassen werden. Die Lebensdauer der globalen Variablen hängt hauptsächlich von der Programmierung ab, bis sie ein Ende erreicht.

#einschließen
Vorzeichenlos int a, c = 10
Main()
{
……………
………… ..
}}

Kernfunktion / Hauptfunktion

Die Hauptfunktion ist ein zentraler Bestandteil bei der Ausführung eines Programms und beginnt einfach mit der Hauptfunktion. Jedes Programm verwendet einfach eine Hauptfunktion, da, wenn das Programm mehr als eine Hauptfunktion enthält, der Compiler als nächstes verwirrt ist, wenn er mit der Ausführung des Programms beginnt.

#einschließen
Main()
{
……………
………… ..
}}

Deklaration der Variablen

Der Name wie die Variable wird zum Speichern der Werte verwendet, diese Variable sollte jedoch zuerst deklariert werden, bevor sie im Programm verwendet wird. Die Variablendeklaration gibt ihren Namen sowie einen Datentyp an. Hier ist der Datentyp nichts anderes als die Darstellung von Speicherdaten. Bei der eingebetteten C-Programmierung werden vier grundlegende Datentypen wie Integer, Float und Character zum Speichern der Daten im Speicher verwendet. Die Datentypgröße sowie der Bereich können je nach Compiler definiert werden.

Der Datentyp bezieht sich auf ein umfangreiches System zum Deklarieren von Variablen verschiedener Typen wie Ganzzahl, Zeichen, Gleitkomma usw. Die eingebettete C-Software verwendet vier Datentypen, die zum Speichern von Daten im Speicher verwendet werden.

Das 'char' wird verwendet, um ein einzelnes Zeichen zu speichern. 'Int' wird verwendet, um einen ganzzahligen Wert zu speichern, und 'float' wird verwendet, um einen präzisen Gleitkommawert zu speichern. Die Größe und der Bereich der verschiedenen Datentypen auf einem 32-Bit-Computer sind in der folgenden Tabelle angegeben. Die Größe und der Bereich können auf Maschinen mit unterschiedlichen Wortgrößen variieren.

  • Die Datentypgröße char / signiertes Zeichen beträgt 1 Byte und der Bereich reicht von -128 bis +128
  • Die Größe des vorzeichenlosen char-Datentyps beträgt 1 Byte und der Bereich liegt zwischen 0 und 255
  • Die Größe des Int / Signed Int-Datentyps beträgt 2 Byte und der Bereich reicht von -32768 bis 32767
  • Die Größe des vorzeichenlosen int-Datentyps beträgt 2 Byte und der Bereich liegt zwischen 0 und 65535

Main()
{
Unsigned int a, b, c
}}

Die Struktur eines eingebetteten C-Programms ist unten dargestellt.

  • Bemerkungen
  • Präprozessor-Direktiven
  • globale Variablen
  • Hauptfunktion

{

  • lokale Variablen
  • Aussagen
  • ………… ..
  • ………… ..

}}

  • Spaß (1)

{

  • lokale Variablen
  • Aussagen
  • ………… ..
  • ………… ..

}}

Die Logik des Programms

Die Logik des Programms ist ein Plan der Fahrspur, der in der Theorie hinter und vorhersehbaren Ergebnissen der Aktionen des Programms erscheint. Es erklärt die Aussage ansonsten Theorie darüber, warum das eingebettete Programm funktionieren wird und zeigt die erkannten Auswirkungen von Aktionen ansonsten Ressourcen.

Main
{
LED = 0x0f
Verzögerung (100)
LED = 0x00
Verzögerung (100)
}}

Hauptfaktoren des Embedded C-Programms

Die wichtigsten Faktoren, die bei der Auswahl der Programmiersprache für die Entwicklung eines eingebetteten Systems berücksichtigt werden müssen, sind die folgenden.

Programmgröße

Jede Programmiersprache belegt einen Speicher, in dem eingebettete Prozessoren wie Mikrocontroller extrem wenig Direktzugriffsspeicher enthalten.

Geschwindigkeit des Programms

Die Programmiersprache sollte sehr schnell sein und daher so schnell wie möglich ausgeführt werden. Die Geschwindigkeit eingebetteter Hardware sollte aufgrund der langsam laufenden Software nicht verringert werden.

Portabilität

Für die verschiedenen eingebetteten Prozessoren kann die Kompilierung ähnlicher Programme durchgeführt werden.

  • Einfache Implementierung
  • Einfache Wartung
  • Lesbarkeit

Unterschiede zwischen C-Programm und Embedded C-Programm

Der Unterschied zwischen eingebetteter C- und C-Programmierung unterscheidet sich nicht wesentlich von der Betriebsumgebung und einigen Erweiterungen. Diese Programmiersprachen sind ISO-Standards und haben ungefähr ähnliche Syntax, Funktionen, Datentypen usw. Die Hauptunterschiede zwischen C-Programmierung und eingebetteter C-Programmierung umfassen Folgendes.

C Sprache

Eingebettete C-Sprache

Im Allgemeinen wird diese Sprache zum Entwickeln von Desktop-basierten Anwendungen verwendet

Die eingebettete C-Sprache wird zur Entwicklung von Mikrocontroller-basierten Anwendungen verwendet.
Die Sprache C ist keine Erweiterung einer Programmiersprache, sondern eine universelle ProgrammierspracheEmbedded C ist eine Erweiterung der Programmiersprache C mit verschiedenen Funktionen wie Adressierungs-E / A, Festkomma-Arithmetik, Adressierung mit mehreren Speichern usw.

Es verarbeitet die native Entwicklung in der NaturEs verarbeitet Kreuzentwicklungen in der Natur
Es ist unabhängig für die HardwarearchitekturDies hängt von der Hardwarearchitektur des Mikrocontrollers und anderer Geräte ab
Die Compiler der Sprache C hängen vom Betriebssystem abEmbedded C-Compiler sind vom Betriebssystem unabhängig
In der Sprache C werden die Standard-Compiler zum Ausführen eines Programms verwendetIn der eingebetteten C-Sprache werden bestimmte Compiler verwendet.
Die beliebtesten Compiler in dieser Sprache sind GCC, Borland Turbo C, Intel C ++ usw.Die beliebtesten Compiler in dieser Sprache sind Keil, BiPOM Electronics & Green Hill
Das Format der C-Sprache ist frei formatiertDas Format hängt hauptsächlich von der Art des verwendeten Mikroprozessors ab.
Die Optimierung dieser Sprache ist normalDie Optimierung dieser Sprache ist auf hohem Niveau
Es ist sehr einfach zu ändern und zu lesenEs ist nicht einfach zu ändern und zu lesen
Fehlerbehebung ist einfachDie Fehlerbehebung in dieser Sprache ist kompliziert

Beispiele für eingebettete C-Programme

Im Folgenden sind einige einfache Embedded C-Programme aufgeführt, für die Mikrocontroller-basierte Projekte .

Beispiel 1

Beispiel 1

Beispiel-2

Beispiel-2

Beispiel-3

Beispiel-3

Beispiel-4

Beispiel-4

Vorteile

Das Vorteile des eingebetteten c-Programms g umfassen Folgendes.

  • Es ist sehr einfach zu verstehen.
  • Es führt eine ähnliche Aufgabe kontinuierlich aus, sodass keine Änderung der Hardware wie zusätzlicher Speicher oder sonst Speicherplatz erforderlich ist.
  • Es wird einfach eine einzelne Aufgabe gleichzeitig ausgeführt
  • Die Kosten für die im eingebetteten c verwendete Hardware sind typischerweise so gering.
  • Die Anwendungen von Embedded sind in der Industrie äußerst geeignet.
  • Die Entwicklung eines Anwendungsprogramms dauert weniger lange.
  • Es reduziert die Komplexität des Programms.
  • Es ist leicht zu überprüfen und zu verstehen.
  • Es ist von einem Controller zum anderen tragbar.

Nachteile

Das Nachteile der eingebetteten c-Programmierung das Folgende einschließen.

  • Es wird jeweils nur eine Aufgabe ausgeführt, die Mehrfachaufgaben können jedoch nicht ausgeführt werden
  • Wenn wir das Programm ändern, müssen wir auch die Hardware ändern
  • Es unterstützt nur das Hardwaresystem.
  • Es gibt ein Problem mit der Skalierbarkeit
  • Es hat eine Einschränkung wie begrenzter Speicher sonst Kompatibilität des Computers.

Anwendungen des Embedded C-Programms

Das Anwendungen der Embedded C-Programmierung das Folgende einschließen.

  • Embedded C-Programmierung wird in der Industrie für verschiedene Zwecke eingesetzt
  • Die in den Anwendungen verwendete Programmiersprache ist Geschwindigkeitskontrolle auf der Autobahn, Steuerung von Ampeln, Steuerung von Straßenlaternen, Verfolgung des Fahrzeugs, künstliche Intelligenz, Hausautomation und automatische Intensitätssteuerung.

Wir hoffen, dass es uns gelungen ist, den Anfängern von einen einfachen und zugänglichen Weg zu bieten Embedded C-Programmierung . Das Verständnis der Embedded C-Programmierung ist die wichtigste Voraussetzung für das Entwerfen eingebetteter Projekte. Darüber hinaus helfen ein besseres Verständnis und die richtigen Kenntnisse der Embedded C-Programmierung den Schülern bei der Auswahl einer lohnenden Karriere.

Wir ermutigen und begrüßen Anfragen, Vorschläge und Kommentare unserer Leser. Daher können Sie Ihre Fragen und Ihr Feedback zu diesem Artikel im Kommentarbereich unten veröffentlichen. Folgen Sie dem unten stehenden Link für Lötfreie Projekte