Mi a beágyazott C program és szerkezete kezdőknek

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Korábban sok beágyazott alkalmazást fejlesztettek összeállítási szintű programozással. Azonban nem biztosítottak hordozhatóságot. Ezt a hátrányt legyőzte különféle magas szintű nyelvek, például a C, Pascal és a COBOL megjelenése. A beágyazott rendszerek számára azonban széles körben elfogadták a C nyelvet, és továbbra is ezt teszik. Az írt C kód megbízhatóbb, méretezhetőbb és hordozhatóbb, sőt, sokkal könnyebben érthető. A beágyazott C programozás az egyes processzorok lelke beágyazott rendszer a mindennapi életben találkozunk, például mobiltelefonokkal, mosógépekkel és digitális fényképezőgépekkel. Minden processzor beágyazott szoftverhez van társítva. Az első és legfontosabb dolog a beágyazott szoftver, amely a beágyazott rendszer működéséről dönt. A beágyazott C nyelvet szokták használni programozza be a mikrovezérlőt .

Mi az a C nyelv?

A C nyelvet Dennis Ritchie fejlesztette ki 1969-ben. Ez egy vagy több függvény gyűjteménye, és minden funkció egy meghatározott feladatot ellátó állítások gyűjteménye.
A C nyelv középszintű nyelv, mivel támogatja a magas szintű és az alacsony szintű alkalmazásokat. Mielőtt belemennénk a beágyazott C programozás részleteibe, tudnunk kell a RAM memória szervezéséről.




A C nyelv főbb jellemzői a következők.

  • A C nyelv olyan szoftver, amelyet különféle kulcsszavakkal, adattípusokkal, változókkal, konstansokkal stb. Terveztek.
  • A beágyazott C egy általános kifejezés, amelyet C-ben írt programozási nyelvnek adnak, és amely egy adott hardverarchitektúrához kapcsolódik.
  • A beágyazott C a C nyelv kiterjesztése további fejlécfájlokkal. Ezek a fejlécfájlok vezérlőről vezérlőre változhatnak.
  • A mikrovezérlő 8051 #include van használva.

Mi a beágyazott C programozás

Minden beágyazott rendszer alapú projektben a beágyazott C programozás kulcsfontosságú szerepet játszik a mikrovezérlő futtatásában és a kívánt műveletek végrehajtásában. Jelenleg általában több elektronikus eszközt használunk, például mobiltelefonokat, mosógépeket, biztonsági rendszereket, hűtőszekrényeket, digitális fényképezőgépeket stb. Ezeknek a beágyazott eszközöknek a vezérlése egy beágyazott C program segítségével történhet. Például egy digitális fényképezőgépben, ha egy fényképezőgép gombot megnyomunk egy fénykép elkészítéséhez, akkor a mikrovezérlő végrehajtja a szükséges funkciót a képre kattintáshoz és tárolásához.



Beágyazott C programozás

Beágyazott C programozás

A beágyazott C programozás egy olyan funkciókészlettel épít, ahol minden függvény olyan utasítások halmaza, amelyeket bizonyos feladatok végrehajtására használnak. A beágyazott C és C nyelv egyaránt megegyezik, és néhány alapvető elemen keresztül valósul meg, például változó, karakterkészlet, kulcsszavak, adattípusok, változók deklarálása, kifejezések, utasítások. Mindezek az elemek kulcsszerepet játszanak a beágyazott C program írásakor.

A beágyazott rendszerek tervezőinek ismerniük kell a hardver architektúráját a programok írásához. Ezek a programok kiemelkedő szerepet játszanak a külső eszközök megfigyelésében és vezérlésében. Közvetlenül működtetik és használják is a mikrovezérlő belső architektúráját, például a megszakításkezelést, az időzítőket, a soros kommunikációt és más elérhető szolgáltatásokat.


Beágyazott rendszer programozása

Amint arról korábban beszéltünk, a beágyazott rendszer megtervezése a Hardver és szoftver segítségével történhet. Például egy egyszerű beágyazott rendszerben a processzor a fő modul, amely úgy működik, mint a rendszer szíve. Itt a processzor nem más, mint egy mikroprocesszor, DSP, mikrokontroller, CPLD és FPGA. Mindezek a processzorok úgy programozhatók, hogy meghatározzák az eszköz működését.

A beágyazott rendszer lehetővé teszi a hardver számára, hogy ennek megfelelően ellenőrizze a bemeneteket és a kimeneteket. Ebben az eljárásban előfordulhat, hogy a beágyazott programnak közvetlenül kell vezérelnie a processzor belső architektúráját, például Időzítők, Megszakításkezelés, I / O portok, soros kommunikációs interfész stb.

Tehát a beágyazott rendszer programozása nagyon fontos a processzor számára. Különböző programozási nyelvek állnak rendelkezésre olyan beágyazott rendszerek számára, mint a C, C ++, az összeállítási nyelv, a JAVA, a JAVA szkript, a visual basic stb. Tehát ez a programozási nyelv kulcsfontosságú szerepet játszik a beágyazott rendszer elkészítése közben, de a nyelv kiválasztása nagyon fontos.

A beágyazott C program elkészítésének lépései

A beágyazott c program megtervezésének különböző lépései vannak, például az alábbiak.

  • Hozzászólások
  • A processzor irányelvei
  • A port konfigurálása
  • Globális változók
  • Alapfunkció / Fő funkció
  • Változó nyilatkozata
  • A program logikája

Hozzászólások

A programozási nyelvekben a megjegyzések nagyon fontosak a program működésének leírására. A megjegyzések kódja nem futtatható, de a program dokumentációjának benyújtására szolgál. A program funkciójának megértéséhez ez egy egyszerű módszert jelent a program funkciójának megértésére. A beágyazott C-ben a megjegyzések kétféle formában érhetők el: egyvonalas és fővonalas megjegyzés.

Beágyazott C programozási nyelven megjegyzéseket tehetünk kódunkba, amelyek segítenek az olvasónak a kód egyszerű megértésében.

C = a + b / * adjunk hozzá két változót, amelyek értékét egy másik C * / változó tárolja

Egysoros megjegyzés

Általában a programozási nyelvek esetében az egysoros megjegyzések nagyon hasznosak a program töredékének tisztázására. Ezek a megjegyzések dupla perjellel (//) kezdődnek, és bárhol megtalálhatók a programozási nyelven belül. Ennek használatával az egész sor figyelmen kívül hagyható egy programon belül.

Többsoros megjegyzés

A többsoros megjegyzések egyetlen perjel (/) és egy csillaggal (/ *) kezdődnek a programozási nyelveken, amely megmagyarázza a kódblokkot. Az ilyen típusú megjegyzések a programozási nyelven belül bárhol elrendezhetők, és főként egy program teljes blokkjának figyelmen kívül hagyására használhatók.

A processzor irányelvei

A programkódban szereplő sorokat preprocesszor direktíváknak nevezzük, amelyeket hash szimbólummal (#) követhetünk. Ezek a sorok az előfeldolgozó irányelvek, de nem programozott utasítások.
A kódot egy előfeldolgozón keresztül lehet megvizsgálni, mielőtt a valós kódfordítás elindítja és megoldja ezeket az irányelveket, mielőtt szabályos utasításokkal generálna egy kódot. Számos speciális előfeldolgozó irányelv áll rendelkezésre, bár két irányelv rendkívül hasznos a programozási nyelven belül

mint a következő.

#include
#include
Sbit LED = P2 ^ 3
Fő()
{
LED = 0x0ff
Késleltetés()
LED = 0x00
}
#define
#include
#define LED P0
Fő()
{
LED = 0x0ff
Késleltetés()
LED = 0x00
}

A fenti programban az #include irányelvet általában olyan szabványos könyvtárak felhasználására használják, mint a study és a. A h-t az I / O funkciók engedélyezésére használják a „C” könyvtár segítségével. A #define direktíva általában a változók sorozatának leírására és az értékek lefoglalására szolgál egy folyamat végrehajtásával egy adott utasításon belül, például a makrókon.

A port konfigurálása

A mikrovezérlő több portot tartalmaz, ahol minden portnak különböző csapjai vannak. Ezekkel a csapokkal az interfész eszközök vezérelhetők. Ezeknek a csapoknak a deklarálása kulcsszó segítségével egy programon belül elvégezhető. A beágyazott c program kulcsszavai szabványosak, valamint előre definiáltak, mint egy bit, sbit, SFR, amelyek a program bitjeinek és egy tűjének megadására szolgálnak.

Vannak bizonyos szavak, amelyek meghatározott feladatok elvégzésére vannak fenntartva. Ezeket a szavakat kulcsszavaknak nevezzük. Ezek szabványosak és előre vannak meghatározva a Beágyazott C-ben. A kulcsszavakat mindig kisbetűvel írják. Ezeket a kulcsszavakat a fő program megírása előtt meg kell határozni. A kulcsszavak fő funkciói a következők.

#include
Sbit a = P 2 ^ 2
SFR 0x00 = PoRT0
C bit
fő()
{
…………… ..
…………… ..
}

sbit

Ez egyfajta adattípus, amelyet egyetlen bit elérésére használnak az SFR regiszteren belül.

Ennek az adattípusnak a szintaxisa: sbit változó neve = SFR bit

Példa: sbit a = P2 ^ 1

Ha a p2.1-et „a” változónak rendeljük, akkor a p2.1 helyett az „a” -t használhatjuk bárhol a programban, ami csökkenti a program összetettségét.

Bit

Ezt az adattípust főleg arra használják, hogy engedélyezzék a véletlen hozzáférésű memória bitcímezhető memóriáját, például 20h-tól 2fh-ig.

Ennek az adattípusnak a szintaxisa: bit változó neve

Példa: c bit

Ez egy kis adatsorozat egy kis adatterületen belül, amelyet főleg egy program segítségével használnak valaminek a memorizálására.

SFR

Ez a fajta adattípus az SFR regiszter perifériás portjainak egy további néven történő megszerzésére szolgál. Tehát az összes SFR regiszter deklarálása nagybetűkkel történhet.

Ennek az adattípusnak a szintaxisa: SFR változó neve = SFR cím az SFR regiszter számára

Példa: SFR port0 = 0 × 80

Ha 0 × 80-at allokálunk, mint a „port0”, akkor a program nehézségének csökkentése érdekében a programozási nyelvben bárhol használhatjuk a 0 × 80-at a port0 helyett.

SFR nyilvántartás

Az SFR a Special Function Register (Speciális funkcióregiszter) rövidítése. A 8051 mikrovezérlőben 256 bájt RAM memóriát tartalmaz, amely két fő elemre oszlik: a 128 bájt első elemét elsősorban az adatok tárolására használják, míg a 128 bájt másik elemét elsősorban az SFR regiszterekhez használják. Minden perifériás eszköz, például időzítők, számlálók és I / O portok az SFR regiszterben vannak tárolva, és minden elem egyetlen címet tartalmaz.

Globális változók

Amikor a változót deklaráljuk, mielőtt a kulcsfüggvény globális változónak nevezzük. Ez a változó a program bármely funkcióján engedélyezhető. A globális változó élettartama főleg a programozástól függ, amíg el nem éri a végét.

#include
Aláíratlan int a, c = 10
Fő()
{
……………
………… ..
}

Alapfunkció / Fő funkció

A fő funkció minden program végrehajtása közben központi rész, és egyszerűen a fő funkcióval kezdődik. Mindegyik program egyszerűen egy fő funkciót használ, mivel ha a program egy főbb funkció felett van, akkor a fordító a program futtatásának kezdetén zavaros lesz.

#include
Fő()
{
……………
………… ..
}

Változó nyilatkozata

A változóhoz hasonló nevet használják az értékek tárolására, de ezt a változót először deklarálni kell, mielőtt a programban felhasználnák. A változó deklaráció megadja a nevét és az adattípust. Itt az adattípus nem más, mint a tárolási adatok ábrázolása. A beágyazott C programozás során négy alapvető adattípust használ, például egész szám, lebegő, karakter az adatok memóriában történő tárolásához. Az adattípus mérete, valamint a tartomány a fordítótól függően határozható meg.

Az adattípus egy átfogó rendszerre vonatkozik a különféle típusú változók deklarálására, például egész szám, karakter, lebegő stb. A beágyazott C szoftver négy adattípust használ, amelyeket az adatok memóriában történő tárolására használnak.

A „char” bármelyik karakter tárolására szolgál, az „int” az egész érték tárolására szolgál, a „float” pedig a precíziós lebegőpontos érték tárolására szolgál. A 32 bites gép különböző adattípusainak méretét és tartományát az alábbi táblázat tartalmazza. A méret és a tartomány a különböző szóméretű gépeken változhat.

  • A char / jelzett char adattípus mérete 1 bájt, tartománya -128 és +128 között van
  • Az aláíratlan char típusú adattípus mérete 1 bájt, tartománya 0 és 255 között van
  • Az Int / jelölt int adattípus mérete 2 bájt, tartománya pedig -32768 és 32767 között van
  • Az aláíratlan int adattípus mérete 2 bájt, a tartománya pedig 0 és 65535 között van

Fő()
{
Aláíratlan int a, b, c
}

Az alábbiakban bemutatjuk a beágyazott C program felépítését.

  • Hozzászólások
  • előfeldolgozókról szóló irányelvek
  • globális változók
  • fő funkció

{

  • lokális változók
  • nyilatkozatok
  • ………… ..
  • ………… ..

}

  • szórakozás (1)

{

  • lokális változók
  • nyilatkozatok
  • ………… ..
  • ………… ..

}

A program logikája

A program logikája a sáv terve, amely megjelenik az elméletben és a program cselekvéseinek kiszámítható eredményei mögött. Megmagyarázza az egyébként elméletre vonatkozó állítást arról, hogy a beágyazott program miért fog működni, és bemutatja az egyéb erőforrások felismert hatásait.


{
LED = 0x0f
késés (100)
LED = 0x00
késés (100)
}

A beágyazott C program fő tényezői

A beágyazott rendszer fejlesztéséhez a programozási nyelv kiválasztásakor figyelembe kell venni a következőket:

Programméret

Minden programozási nyelv elfoglal bizonyos memóriát, ahol a beágyazott processzorok, mint például a mikrokontroller, rendkívül kevés véletlen hozzáférésű memóriát tartalmaznak.

A program sebessége

A programozási nyelvnek nagyon gyorsnak kell lennie, ezért a lehető leggyorsabban kell futnia. A lassan futó szoftver miatt a beágyazott hardver sebességét nem szabad csökkenteni.

Hordozhatóság

A különböző beágyazott processzorok esetében hasonló programok összeállítása elvégezhető.

  • Egyszerű megvalósítás
  • Egyszerű karbantartás
  • Olvashatóság

Különbségek a C program és a beágyazott C program között

A beágyazott C és C programozás közötti különbség valójában nem sok, eltekintve az operációs környezettől és néhány kiterjesztéstől. Ezek a programozási nyelvek ISO szabványok, és megközelítőleg hasonló szintaxissal, funkciókkal, adattípusokkal, stb. Rendelkeznek. A C programozás és a beágyazott c programozás közötti fő különbségek a következők.

C Nyelv

Beágyazott C nyelv

Általában ezt a nyelvet használják asztali alkalmazások fejlesztésére

A beágyazott C nyelvet mikrokontroller alapú alkalmazások fejlesztésére használják.
A C nyelv nem bármely programozási nyelv kiterjesztése, hanem általános célú programozási nyelvA beágyazott C a C programozási nyelv kiterjesztése, amely különféle funkciókat tartalmaz, például I / O címzés, fixpontos aritmetika, több memóriás címzés stb.

A natív fejlődést a természetben dolgozza felKeresztfejlődést dolgoz fel a természetben
A hardver architektúrától függetlenEz a mikrovezérlő és más eszközök hardverarchitektúrájától függ
A C nyelv fordítói az operációs rendszertől függenekA beágyazott C fordítók operációs rendszertől függetlenek
C nyelven a standard fordítókat használják egy program futtatásáraBeágyazott C nyelvben speciális fordítókat használnak.
Az ezen a nyelven használt népszerű fordítók a GCC, a Borland turbó C, az Intel C ++ stbAz ezen a nyelven használt népszerű fordítók a Keil, a BiPOM Electronics és a Green hill
A C nyelv formátuma szabad formátumúFormátuma főleg az alkalmazott mikroprocesszor típusától függ.
Ennek a nyelvnek az optimalizálása normálisEnnek a nyelvnek az optimalizálása magas szintű
Nagyon könnyen módosítható és olvashatóNem könnyű módosítani és olvasni
A hibajavítás egyszerűEnnek a nyelvnek a hibajavítása bonyolult

Beágyazott C program példák

Az alábbiakban néhány egyszerű beágyazott C programot használunk mikrokontroller alapú projektek .

1. példa

1. példa

2. példa

2. példa

3. példa

3. példa

4. példa

4. példa

Előnyök

A a beágyazott c programmin előnyei g a következőket tartalmazza.

  • Nagyon egyszerű megérteni.
  • Folyamatosan hajt végre hasonló feladatot, így nincs szükség a hardver, például a kiegészítő memória, különben a tárhely megváltoztatására.
  • Egyszerűen egyetlen feladatot hajt végre egyszerre
  • A beágyazott c-ben használt hardver költsége általában ennyire alacsony.
  • A beágyazott alkalmazások rendkívül megfelelőek az iparban.
  • Egy alkalmazás fejlesztése kevesebb időt vesz igénybe.
  • Csökkenti a program összetettségét.
  • Könnyű ellenőrizni és megérteni.
  • Egyik vezérlőről a másikra hordozható.

Hátrányok

A a beágyazott c programozás hátrányai a következőket tartalmazzák.

  • Egyszerre csak egy feladatot hajt végre, de a több feladatot nem tudja végrehajtani
  • Ha megváltoztatjuk a programot, akkor meg kell változtatnunk a hardvert is
  • Csak a hardver rendszert támogatja.
  • Méretezhetőségi probléma van
  • Van egy olyan korlátozása, mint a korlátozott memória, egyébként kompatibilis a számítógéppel.

A beágyazott C program alkalmazásai

A beágyazott c programozás alkalmazásai a következőket tartalmazzák.

  • A beágyazott C programozást az ipar különböző célokra használja
  • Az alkalmazásokban használt programozási nyelv a sebességellenőrzés az autópályán, a közlekedési lámpák vezérlése, az utcai lámpák vezérlése, a jármű nyomon követése, mesterséges intelligencia, otthoni automatizálás és automatikus intenzitás-szabályozás.

Reméljük, hogy sikerrel jártunk könnyű és megközelíthető módon a kezdők számára Beágyazott C programozás . A beágyazott C programozás megértése a legfontosabb előfeltétele a beágyazott alapú projektek tervezésének. Emellett a beágyazott C programozás jobb megértése és megfelelő ismerete rendkívüli mértékben segíti a hallgatókat a kifizetődő karrier kiválasztásában.

Ösztönözzük és örömmel fogadjuk olvasóink kérdéseit, javaslatait és észrevételeit. Ezért a cikkre vonatkozó kérdéseit és visszajelzéseit az alább megadott megjegyzések szakaszban teheti meg. Kövesse az alábbi linket Forrasztatlan projektek