Ano ang isang Embedded C Program at Ang Istraktura nito para sa Mga Nagsisimula

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Mas maaga, maraming naka-embed na mga aplikasyon ang binuo gamit ang pagpoprogram sa antas ng pagpupulong. Gayunpaman, hindi sila nagbigay ng kakayahang dalhin. Ang kawalan na ito ay nalampasan ng pag-usbong ng iba't ibang mga mataas na antas na wika tulad ng C, Pascal, at COBOL. Gayunpaman, ito ang wikang C na nakakuha ng malawak na pagtanggap para sa mga naka-embed na system, at patuloy itong ginagawa. Ang nakasulat na C code ay mas maaasahan, nasusukat, at portable at sa katunayan, mas madaling maunawaan. Ang naka-embed na C Programming ay ang kaluluwa ng processor na gumagana sa loob ng bawat isa naka-embed na system nakatagpo tayo sa ating pang-araw-araw na buhay, tulad ng mga mobile phone, washing machine, at digital camera. Ang bawat processor ay nauugnay sa naka-embed na software. Ang una at pinakamahalagang bagay ay ang naka-embed na software na nagpapasya na gumana ng naka-embed na system. Ang wika ng naka-embed na C ay madalas na ginagamit programa ang microcontroller .

Ano ang C Wika?

Ang wikang C ay binuo ni Dennis Ritchie noong 1969. Ito ay isang koleksyon ng isa o higit pang mga pagpapaandar, at ang bawat pag-andar ay isang koleksyon ng mga pahayag na gumaganap ng isang tiyak na gawain.
Ang wika ng C ay isang wikang nasa gitnang antas dahil sinusuportahan nito ang mga application na may mataas na antas at mga application na mababang antas. Bago pumunta sa mga detalye ng naka-embed na C na programa, dapat nating malaman ang tungkol sa samahan ng memorya ng RAM.




Ang mga pangunahing tampok ng wikang C ay kinabibilangan ng mga sumusunod.

  • Ang wikang C ay isang software na dinisenyo na may iba't ibang mga keyword, uri ng data, variable, pare-pareho, atbp.
  • Ang naka-embed na C ay isang pangkaraniwang term na ibinigay sa isang wikang nagprogram na nakasulat sa C, na nauugnay sa isang partikular na arkitektura ng hardware.
  • Ang naka-embed na C ay isang extension sa wikang C na may ilang karagdagang mga file ng header. Maaaring magbago ang mga file ng header na ito mula sa controller hanggang sa controller.
  • Ang microcontroller 8051 Ginamit ang # isama.

Ano ang isang Embedded C Programming

Sa bawat naka-embed na mga proyekto batay sa system, ang naka-embed na C na programa ay gumaganap ng isang pangunahing papel upang mapatakbo ang microcontroller at maisagawa ang mga ginustong pagkilos. Sa kasalukuyan, karaniwang ginagamit namin ang maraming mga elektronikong aparato tulad ng mga mobile phone, washing machine, security system, refrigerator, digital camera, atbp. Ang pagkontrol ng mga naka-embed na aparato ay maaaring gawin sa tulong ng isang naka-embed na programa ng C. Halimbawa sa isang digital camera, kung pinindot namin ang isang pindutan ng camera upang makuha ang isang larawan pagkatapos ay isasagawa ng microcontroller ang kinakailangang pagpapaandar upang mai-click ang imahe pati na rin upang maiimbak ito.



Naka-embed na C Programming

Naka-embed na C Programming

Ang naka-embed na C na programa ay nagtatayo na may isang hanay ng mga pag-andar kung saan ang bawat pag-andar ay isang hanay ng mga pahayag na ginagamit upang maisagawa ang ilang mga partikular na gawain. Parehong ang naka-embed na mga wika ng C at C ay pareho at ipinatupad sa pamamagitan ng ilang mga pangunahing elemento tulad ng isang variable, hanay ng character, keyword, uri ng data, deklarasyon ng mga variable, expression, pahayag. Ang lahat ng mga elementong ito ay gampanan ang isang pangunahing papel habang nagsusulat ng isang naka-embed na C na programa.

Ang naka-embed na mga taga-disenyo ng system ay dapat malaman ang tungkol sa arkitektura ng hardware upang magsulat ng mga programa. Ang mga programang ito ay may kilalang papel sa pagsubaybay at pagkontrol sa mga panlabas na aparato. Direkta din silang nagpapatakbo at gumagamit ng panloob na arkitektura ng microcontroller, tulad ng nakakagambala na paghawak, mga timer, serial na komunikasyon, at iba pang magagamit na mga tampok.


Naka-embed na Programming ng System

Tulad ng tinalakay natin kanina, ang pagdidisenyo ng isang naka-embed na system ay maaaring gawin gamit ang Hardware at Software. Halimbawa, sa isang simpleng naka-embed na system, ang processor ay ang pangunahing module na gumagana tulad ng puso ng system. Narito ang isang processor ay walang iba kundi isang microprocessor, DSP, microcontroller, CPLD & FPGA. Ang lahat ng mga processor na ito ay maaaring i-program upang tukuyin nito ang pagtatrabaho ng aparato.

Pinapayagan ng isang naka-embed na programa ng system ang hardware na suriin ang mga input at kontrolin ang mga output nang naaayon. Sa pamamaraang ito, maaaring kontrolin ng naka-embed na programa ang panloob na arkitektura ng processor nang direkta tulad ng Mga timer, Makagambala na Paghawak, I / O Mga Port, interface ng serial na komunikasyon, atbp.

Kaya't ang naka-embed na pag-program ng system ay napakahalaga sa processor. Mayroong iba't ibang mga wika ng programa na magagamit para sa mga naka-embed na system tulad ng C, C ++, wika ng pagpupulong, JAVA, JAVA script, visual basic, atbp. Kaya't ang wikang ito sa pag-program ay may pangunahing papel habang gumagawa ng isang naka-embed na system ngunit ang pagpili ng wika ay napakahalaga.

Mga Hakbang upang Bumuo ng isang Embedded na C Program

Mayroong iba't ibang mga hakbang na kasangkot sa pagdidisenyo ng isang naka-embed na c programa tulad ng sumusunod.

  • Mga Komento
  • Mga Direksyon ng Proseso
  • Pag-configure ng Port
  • Mga variable sa mundo
  • Core Function / Pangunahing Pag-andar
  • Pagdeklara ng Variable
  • Ang lohika ng Program

Mga Komento

Sa mga wika sa pagprograma, ang mga komento ay napakahalaga upang ilarawan ang pagpapaandar ng programa. Ang code ng mga komento ay hindi maipapatupad ngunit ginamit upang magbigay ng dokumentasyon ng programa. Upang maunawaan ang pagpapaandar ng programa, gagawa ito ng isang simpleng pamamaraan upang maunawaan ang pagpapaandar ng programa. Sa naka-embed na C, ang mga komento ay magagamit sa dalawang uri katulad ng solong linya at mainline na puna.

Sa isang naka-embed na wika ng C na programa, maaari kaming maglagay ng mga komento sa aming code na makakatulong sa mambabasa na maunawaan ang code nang madali.

C = a + b / * magdagdag ng dalawang mga variable na ang halaga ay nakaimbak sa isa pang variable C * /

Isang Komento sa Linya

Pangkalahatan, para sa mga wika ng programa, ang mga solong linya na puna ay lubhang kapaki-pakinabang upang linawin ang isang bahagi ng programa. Ang mga komentong ito ay nagsisimula sa isang dobleng slash (//) at maaari itong matatagpuan kahit saan sa loob ng wika ng programa. Sa pamamagitan ng paggamit nito, ang buong linya ay maaaring balewalain sa loob ng isang programa.

Komento sa Multi-Line

Nagsisimula ang mga puna ng maraming linya sa isang solong slash (/) at isang asterisk (/ *) sa mga wika ng programa na nagpapaliwanag ng isang bloke ng code. Ang mga uri ng komento ay maaaring isaayos kahit saan sa loob ng wika ng programa at pangunahin na ginagamit upang huwag pansinin ang isang buong bloke ng code sa loob ng isang programa.

Mga Direksyon ng Proseso

Ang mga linya na kasama sa loob ng code ng programa ay tinatawag na preprocessor directive na maaaring sundin sa pamamagitan ng isang hash na simbolo (#). Ang mga linyang ito ay ang mga preprocessor na direktiba ngunit hindi naka-program na pahayag.
Maaaring suriin ang code sa pamamagitan ng isang preprocessor bago magsimula ang tunay na pagsasama-sama ng code at lutasin ang mga direktibong ito bago bumuo ng isang code sa pamamagitan ng mga regular na pahayag. Mayroong maraming mga espesyal na direktiba sa preprocessor na magagamit bagaman ang dalawang direktiba ay lubos na nakakatulong sa loob ng wika ng programa

tulad ng sumusunod.

# isama
# isama
Sbit LED = P2 ^ 3
Pangunahing ()
{
LED = 0x0ff
Pagkaantala ()
LED = 0x00
}
# tukuyin
# isama
# tukuyin ang LED P0
Pangunahing ()
{
LED = 0x0ff
Pagkaantala ()
LED = 0x00
}

Sa program sa itaas, ang direktoryo ng # isama ang karaniwang ginagamit upang mabuo ang mga karaniwang silid aklatan tulad ng pag-aaral at. Ginagamit ang h upang pahintulutan ang mga pagpapaandar ng I / O gamit ang silid-aklatan ng 'C'. Ang direktang #tukoy na karaniwang ginagamit upang ilarawan ang serye ng mga variable at naglalaan ng mga halaga sa pamamagitan ng pagpapatupad ng proseso sa loob ng isang partikular na tagubilin tulad ng macros.

Pag-configure ng Port

Ang microcontroller ay nagsasama ng maraming mga port kung saan ang bawat port ay may iba't ibang mga pin. Ang mga pin na ito ay maaaring magamit para sa pagkontrol sa mga aparato ng interfacing. Ang pagdeklara ng mga pin na ito ay maaaring gawin sa loob ng isang programa sa tulong ng mga keyword. Ang mga keyword sa naka-embed na c programa ay pamantayan pati na rin ang paunang natukoy na tulad ng kaunti, sbit, SFR na ginagamit upang sabihin ang mga piraso at solong pin sa loob ng isang programa.

Mayroong ilang mga salita na nakalaan para sa paggawa ng mga tiyak na gawain. Ang mga salitang ito ay kilala bilang mga keyword. Ang mga ito ay pamantayan at paunang natukoy sa naka-embed na C. Ang mga keyword ay laging nakasulat sa maliit na titik. Ang mga keyword na ito ay dapat na tinukoy bago isulat ang pangunahing programa. Ang mga pangunahing pag-andar ng mga keyword isama ang mga sumusunod.

# isama
Sbit a = P 2 ^ 2
SFR 0x00 = PoRT0
Bit C
pangunahing ()
{
…………… ..
…………… ..
}

sbit

Ito ay isang uri ng uri ng data, ginamit upang ma-access ang isang solong bit sa loob ng isang SFR register.

Ang syntax para sa uri ng data na ito ay: sbit variable name = SFR bit

Halimbawa: sbit a = P2 ^ 1

Kung itatalaga namin ang p2.1 bilang variable na 'a', maaari naming gamitin ang 'a' sa halip na p2.1 saanman sa programa, na binabawasan ang pagiging kumplikado ng programa.

Bit

Ang ganitong uri ng uri ng data ay pangunahing ginagamit para sa pagpapahintulot sa kaunting address na memorya ng random na memorya ng pag-access tulad ng 20h hanggang 2fh.

Ang syntax ng ganitong uri ng data ay: pangalan ng variable ng kaunti

Halimbawa: bit c

Ito ay isang maliit na setting ng serye sa loob ng isang maliit na rehiyon ng data na pangunahing ginagamit sa tulong ng isang programa upang kabisaduhin ang isang bagay.

SFR

Ang ganitong uri ng uri ng data ay ginagamit upang makuha ang mga peripheral port ng SFR register sa pamamagitan ng isang karagdagang pangalan. Kaya, ang pagdeklara ng lahat ng mga rehistro ng SFR ay maaaring gawin sa mga malalaking titik.

Ang syntax ng uri ng data na ito ay: SFR variable name = SFR address para sa SFR register

Halimbawa: SFR port0 = 0 × 80

Kung inilalaan namin ang 0 × 80 tulad ng 'port0', pagkatapos nito maaari naming magamit ang 0 × 80 bilang lugar ng port0 saanman sa wika ng programa upang mabawasan ang kahirapan ng programa.

Pagrehistro sa SFR

Ang SFR ay nangangahulugang rehistro ng Espesyal na Pag-andar. Sa 8051 microcontroller, kasama dito ang memorya ng RAM na may 256 bytes, na nahahati sa dalawang pangunahing elemento: ang unang elemento ng 128 bytes ay pangunahing ginagamit para sa pagtatago ng data samantalang ang iba pang elemento ng 128 bytes ay pangunahing ginagamit sa mga rehistro ng SFR. Ang lahat ng mga peripheral na aparato tulad ng mga timer, counter at I / O port ay nakaimbak sa loob ng SFR register at bawat elemento ay may kasamang isang address.

Mga Pandaigdigang variable

Kapag ang variable ay idineklara bago ang pangunahing pagpapaandar ay kilala bilang global variable. Ang variable na ito ay maaaring payagan sa anumang pagpapaandar sa loob ng programa. Pangunahin ang haba ng buhay ng variable ng mundo sa programa hanggang sa matapos ito.

# isama
Unsigned int a, c = 10
Pangunahing ()
{
……………
………… ..
}

Core Function / Pangunahing Pag-andar

Ang pangunahing pag-andar ay isang gitnang bahagi habang isinasagawa ang anumang programa at nagsisimula ito sa pangunahing pagpapaandar nang simple. Gumagamit ang bawat programa ng isang pangunahing pagpapaandar dahil kung ang programa ay may kasamang higit sa isang pangunahing pag-andar, sa susunod ay malito ang tagatala sa pagsisimula ng pagpapatupad ng programa.

# isama
Pangunahing ()
{
……………
………… ..
}

Pagdeklara ng Variable

Ang pangalang tulad ng variable ay ginagamit para sa pagtatago ng mga halaga ngunit ang variable na ito ay dapat munang ideklara bago magamit sa loob ng programa. Nakasaad sa variable na deklarasyon ang pangalan nito pati na rin isang uri ng data. Dito, ang uri ng data ay walang iba kundi ang representasyon ng data ng imbakan. Sa naka-embed na C na programa, gumagamit ito ng apat na pangunahing uri ng data tulad ng integer, float, character para sa pag-iimbak ng data sa loob ng memorya. Ang laki ng uri ng data, pati na rin ang saklaw, ay maaaring tukuyin depende sa tagatala.

Ang uri ng data ay tumutukoy sa isang malawak na system para sa pagdedeklara ng mga variable ng iba't ibang uri tulad ng integer, character, float, atbp. Ang naka-embed na C software ay gumagamit ng apat na uri ng data na ginagamit upang mag-imbak ng data sa memorya.

Ginagamit ang 'char' upang mag-imbak ng anumang solong character na 'int' na ginagamit upang mag-imbak ng halaga ng integer, at ang 'float' ay ginagamit upang mag-imbak ng anumang katumpakan na lumulutang-point na halaga. Ang laki at saklaw ng iba't ibang mga uri ng data sa isang 32-bit na makina ay ibinibigay sa sumusunod na talahanayan. Ang laki at saklaw ay maaaring magkakaiba sa mga machine na may iba't ibang laki ng salita.

  • Ang laki ng uri ng char / naka-sign na data ng char ay 1 byte at ang saklaw nito ay mula -128 hanggang +128
  • Ang laki ng hindi naka-sign na char data type ay 1 byte at ang saklaw nito ay mula 0 hanggang 255
  • Ang laki ng uri ng int / naka-sign int data ay 2 byte at ang saklaw nito ay mula -32768 hanggang 32767
  • Ang laki ng hindi naka-sign na uri ng data ay 2 byte at ang saklaw nito ay mula 0 hanggang 65535

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

Ang Istraktura ng isang Embedded C Program ay ipinapakita sa ibaba.

  • mga komento
  • mga direktibong preprocessor
  • global variable
  • pangunahing () pagpapaandar

{

  • mga lokal na variable
  • pahayag
  • ………… ..
  • ………… ..

}

  • masaya (1)

{

  • mga lokal na variable
  • pahayag
  • ………… ..
  • ………… ..

}

Ang lohika ng Program

Ang lohika ng programa ay isang plano ng linya na lilitaw sa teorya sa likod at mahuhulaan na mga output ng mga aksyon ng programa. Ipinapaliwanag nito ang pahayag kung hindi man teorya tungkol sa kung bakit gagana ang naka-embed na programa at ipinapakita ang kinikilalang mga epekto ng mga aksyon kung hindi man mapagkukunan.

Pangunahin
{
LED = 0x0f
antala (100)
LED = 0x00
antala (100)
}

Pangunahing Kadahilanan ng Embedded C Program

Ang mga pangunahing kadahilanan na isasaalang-alang habang pinipili ang wika ng programa para sa pagbuo ng isang naka-embed na system ay kasama ang sumusunod.

Laki ng Program

Ang bawat wika ng programa ay sumasakop ng ilang memorya kung saan ang naka-embed na processor tulad ng microcontroller ay nagsasama ng isang labis na mas kaunting halaga ng random na memorya ng pag-access.

Bilis ng Program

Ang wika ng programa ay dapat na napakabilis, kaya't dapat tumakbo nang mabilis hangga't maaari. Ang bilis ng naka-embed na hardware ay hindi dapat mabawasan dahil sa mabagal na pagpapatakbo ng software.

Kakayahang dalhin

Para sa iba't ibang mga naka-embed na processor, maaaring magawa ang pagtitipon ng mga katulad na programa.

  • Simpleng Pagpapatupad
  • Simpleng Pagpapanatili
  • Kakayahang mabasa

Mga pagkakaiba-iba sa pagitan ng C Program at Embedded C Program

Ang pagkakaiba sa pagitan ng naka-embed na C at C na programa ay hindi gaanong hiwalay mula sa operating environment at ilang mga extension. Ang mga wikang ito sa pagprograma ay Mga Pamantayan sa ISO at mayroon ding humigit-kumulang na magkatulad na syntax, pagpapaandar, uri ng data, atbp. Ang mga pangunahing pagkakaiba sa pagitan ng C programming at naka-embed na c programming ay kasama ang mga sumusunod.

C Wika

Naka-embed na C Wika

Pangkalahatan, ginagamit ang wikang ito upang makabuo ng mga application na nakabatay sa desktop

Ang wika ng naka-embed na C ay ginagamit upang makabuo ng mga application na nakabatay sa microcontroller.
Ang wika ng C ay hindi isang extension sa anumang wika ng programa, ngunit isang wikang pang-programang pangkalahatang layuninAng naka-embed na C ay isang extension sa wika ng pagprograma ng C kabilang ang iba't ibang mga tampok tulad ng pagtugon sa I / O, naayos na point na arithmetic, pag-address sa maraming memorya, atbp.

Pinoproseso nito ang likas na pag-unlad sa kalikasanPinoproseso nito ang pag-unlad ng krus sa kalikasan
Malaya ito para sa arkitektura ng hardwareDepende ito sa arkitektura ng hardware ng microcontroller at iba pang mga aparato
Ang mga nagtitipon ng wikang C ay nakasalalay sa operating systemAng mga naka-embed na C compiler ay independiyenteng OS
Sa wikang C, ang karaniwang mga tagatala ay ginagamit para sa pagpapatupad ng isang programaSa naka-embed na wika ng C, ginagamit ang mga partikular na tagatala.
Ang mga tanyag na tagatala na ginamit sa wikang ito ay ang GCC, Borland turbo C, Intel C ++, atbpAng mga tanyag na tagatala na ginamit sa wikang ito ay ang Keil, BiPOM Electronics at berdeng burol
Ang format ng wikang C ay libreng formatPangunahing depende ang format nito sa uri ng microprocessor na ginamit.
Ang pag-optimize ng wikang ito ay normalAng pag-optimize ng wikang ito ay isang mataas na antas
Napakadaling baguhin at basahinHindi madaling baguhin at basahin
Madali ang pag-aayos ng bugAng pag-aayos ng bug ng wikang ito ay kumplikado

Mga Halimbawa ng Program na naka-embed na C

Ang mga sumusunod ay ilang simpleng mga program na naka-embed na C na ginamit para sa mga proyekto na nakabatay sa microcontroller .

Halimbawa-1

Halimbawa-1

Halimbawa-2

Halimbawa-2

Halimbawa-3

Halimbawa-3

Halimbawa-4

Halimbawa-4

Mga kalamangan

Ang bentahe ng naka-embed na c programmin g isama ang sumusunod.

  • Napakadaling maintindihan.
  • Patuloy itong nagpapatupad ng isang katulad na gawain kaya walang kinakailangan para sa pagbabago ng hardware tulad ng karagdagang memorya kung hindi man ay espasyo ng imbakan.
  • Nagsasagawa ito ng simpleng solong gawain nang sabay-sabay
  • Ang gastos ng hardware na ginamit sa naka-embed na c ay karaniwang napakababa.
  • Ang mga aplikasyon ng naka-embed ay lubos na naaangkop sa mga industriya.
  • Tumatagal ng mas kaunting oras upang makabuo ng isang programa ng aplikasyon.
  • Binabawasan nito ang pagiging kumplikado ng programa.
  • Madali itong i-verify at maunawaan.
  • Ito ay portable mula sa isang tagakontrol patungo sa isa pa.

Mga Dehado

Ang mga kawalan ng naka-embed na c programming isama ang sumusunod.

  • Sa isang pagkakataon, isinasagawa lamang nito ang isang gawain ngunit hindi maisagawa ang maraming gawain
  • Kung binago natin ang programa kailangan ding baguhin ang hardware din
  • Sinusuportahan lamang nito ang sistema ng hardware.
  • Mayroon itong isyu sa kakayahang sumukat
  • Mayroon itong paghihigpit tulad ng limitadong memorya kung hindi man pagiging tugma ng computer.

Mga Aplikasyon ng Embedded C Program

Ang mga aplikasyon ng naka-embed na c programming isama ang sumusunod.

  • Ang naka-embed na C na programa ay ginagamit sa mga industriya para sa iba't ibang mga layunin
  • Ang wikang ginagamit sa pagprograma na ginagamit sa mga application ay ang checker ng bilis sa highway, pagkontrol ng mga ilaw trapiko, pagkontrol ng mga ilaw sa kalye, pagsubaybay sa sasakyan, artipisyal na intelihensiya, pag-automate ng bahay, at pag-control ng auto intensity.

Inaasahan namin na naging matagumpay kami sa pagbibigay ng isang madali at madaling lapitan na paraan para sa mga nagsisimula ng Naka-embed na C programming . Ang pag-unawa sa naka-embed na C na programa ay ang pinakamahalagang kinakailangan para sa pagdidisenyo ng naka-embed na batay sa mga proyekto. Bilang karagdagan sa ito, ang isang mas mahusay na pag-unawa at wastong kaalaman tungkol sa naka-embed na C na programa ay makakatulong sa mga mag-aaral sa napili ng isang gantimpala na karera.

Hinihikayat at tinatanggap namin ang mga query, mungkahi, at komento mula sa aming mga mambabasa. Samakatuwid, maaari mong mai-post ang iyong mga query at puna tungkol sa artikulong ito sa seksyon ng mga komento na ibinigay sa ibaba. Sundin ang link sa ibaba para sa Mga solderless na proyekto