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
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.
Fő
{
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 nyelv | A 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 fel | Keresztfejlődést dolgoz fel a természetben |
A hardver architektúrától független | Ez 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üggenek | A 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ára | Beá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 ++ stb | Az 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ális | Ennek 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
2. példa
3. 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