Ungawafunda kanjani futhi kungani ama-database uma ama-microcontroller kuwumsebenzi wakho wokuzilibazisa

Ungawafunda kanjani futhi kungani ama-database uma ama-microcontroller kuwumsebenzi wakho wokuzilibazisa

I-Microelectronics iwukuzilibazisa osemfashinini eminyakeni yamuva nje ngenxa ye-Arduino yemilingo. Kodwa nansi inkinga: ngentshisekelo eyanele, ungakwazi ukusheshe ukhule DigitalWrite(), kodwa okumele ukwenze ngokulandelayo akucaci ngokuphelele. Abathuthukisi be-Arduino benze umzamo omkhulu ekwehliseni isithiyo sokungena ohlelweni lwabo lwezemvelo, kodwa ngaphandle kwalo kusenehlathi elimnyama elinezijikelezo ezinonya ezingafinyeleleki kumuntu oyimfundamakhwela.

Isibonelo, ama-database. Kubonakala sengathi banakho konke, kuthathe futhi ukusebenzise. Kodwa ababhali bazo ngokusobala abazibeki umsebenzi wokwazisa ama-microcontroller; Ngezinye izikhathi kubonakalaukuthi bahlukumeza ngamabomu amagama nezifinyezo ezingaqondakali lapho bechaza izinto ezilula ukuze badide abangazi ngangokunokwenzeka. Kodwa akuyona yonke into embi kakhulu; uma uthanda, ibhokisi liyavuleka.

Kulesi sihloko ngizokwabelana ngolwazi lukachwepheshe wezobuntu oxhumana nemininingwane yedatha ngezinjongo zokuzilibazisa. Umbhalo uhloselwe izimfundamakhwela ezikhule zisuka kumabhulukwe e-Arduino; kuthatha ukuqonda okuthile kwezimiso zokusebenza kwama-microcontroller.

Ngizoqala ngesintu

Ukukhanyisa i-LED ku-Arduino

Futhi ngokushesha ikhodi:

void setup() {
DDRB |= (1<<5);
}

void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}

"Kuyini lokhu? - Umfundi osezingeni eliphezulu uzobuza. - Kungani ubhala okuthile kwirejista yokufaka ye-PINB? Okokufunda kuphela!” Ngempela, Imibhalo ye-Arduino, njengezihloko eziningi ezifundisayo ku-inthanethi, ithi le rejista ifundwa kuphela. Ngacabanga kanjalo ngaze ngayifunda futhi ishidi le-data ku-Atmega328p, ilungiselela lesi sihloko. Futhi lapho:

Ungawafunda kanjani futhi kungani ama-database uma ama-microcontroller kuwumsebenzi wakho wokuzilibazisa

Lokhu umsebenzi omusha uma kuqhathaniswa, bekungekho ku-Atmega8, akuwona wonke umuntu owaziyo ngakho noma akukhulunywa ngakho ngenxa yezizathu zokubuyela emuva. Kodwa kufaneleka kakhulu ukukhombisa umqondo wokuthi ama-database afanele ukufundwa ukuze kusetshenziswe wonke amakhono we-chip, kuhlanganise nalawo angaziwa. Futhi lesi akusona isizathu kuphela.

Kungani okunye ukufunda ama-database?

Ngokuvamile, onjiniyela be-Arduino, sebedlale ngokwanele ngama-LED nama-AnalogWrites, baqala ukuxhuma zonke izinhlobo zamamojula nama-chips ebhodini, okukhona kakade imitapo yolwazi ebhaliwe. Ngokushesha noma kamuva, umtapo wolwazi ubonakala ungasebenzi ngendlela efanele. Bese-ke i-amateur iqala ukuyikhetha ukuyilungisa, bese...

Futhi kukhona okungaqondakali ngokuphelele okwenzeka lapho, ngakho-ke kufanele uye ku-Google, ufunde izifundo eziningi, ukhiphe izingxenye zekhodi efanelekile yomuntu futhi ekugcineni ufinyelele umgomo wakho. Lokhu kunikeza umuzwa onamandla wokufeza okuthile, kodwa empeleni le nqubo ifana nokusungula kabusha isondo ngokuhlehlisa isithuthuthu. Ngaphezu kwalokho, ukuqonda ukuthi leli bhayisikili lisebenza kanjani akukhuli. Ngiyazi, ngoba ngikwenze lokhu isikhathi eside impela.

Ukube esikhundleni salo msebenzi othokozisayo bengichithe izinsuku ezimbalwa ngifunda imibhalo ye-Atmega328, ngabe ngisindise isikhathi esiningi. Phela, lokhu kuyi-microcontroller elula.

Ngakho-ke, udinga ukufunda imininingwane yedatha okungenani ukuze ucabange ukuthi i-microcontroller isebenza kanjani nokuthi yini engayenza. Futhi okunye:

  • ukuhlola nokwenza kahle imitapo yolwazi yabanye abantu. Ngokuvamile zibhalwa yizimfundamakhwela ezifanayo ezisungula kabusha isondo; noma, ngokuphambene nalokho, ababhali bazenza ngamabomu zibe iziwula ngokweqile. Mayibe nkulu ngokuphindwe kathathu futhi kancane kancane, kodwa izosebenza nakanjani;

  • ukukwazi ukusebenzisa ama-chips kuphrojekthi okungekho muntu obhalele umtapo wolwazi;

  • ukwenza kube lula kuwena ukufuduka usuka komunye umugqa we-MK uye komunye;

  • ekugcineni uthuthukise ikhodi yakho endala, engangenanga ku-Arduino;

  • ukufunda indlela yokulawula noma iyiphi i-chip ngokuqondile ngamarejista ayo, ngaphandle kokuzihlupha ngokufunda isakhiwo semitapo yolwazi yayo, uma ikhona.

Kungani ubhalela amarejista ngqo uma kukhona i-HAL ne-LL?

Isichazamazwi
I-HAL, Ungqimba Oluphezulu Lokukhipha – umtapo wolwazi wokulawula isilawuli esincane esinezinga eliphezulu lokungafinyeleli. Uma udinga ukusebenzisa isixhumi esibonakalayo se-SPI1, umane ulungiselele futhi unike amandla i-SPI1 ngaphandle kokucabanga ngokuthi imaphi amarejista anesibopho sani.
LL, Low Level API - umtapo wolwazi oqukethe amamakhro noma izakhiwo ezinamakheli erejista, okuvumela ukuthi ufinyelele kuwo ngamagama. I-DDRx, i-PORTx, i-PINx ku-Atmega yi-LL.

Izingxabano ngesihloko esithi "HAL, LL noma amarejista" zivela njalo kumazwana ku-Habré. Ngaphandle kokuthi ngithole ukufinyelela olwazini lwezinkanyezi, ngizomane sabelane ngolwazi lwami lwe-amateur nemicabango.

Ngemva kokuthola okuningi noma okuncane nge-Atmega futhi sengifunde izindatshana mayelana nobuhle be-STM32, ngathenga amabhodi ahlukene ayingxenye yeshumi nambili - I-Discovery, namaPills Aluhlaza, ngisho nama-chips emikhiqizo yami eyenziwe ekhaya. Bonke baqoqa uthuli ebhokisini iminyaka emibili. Ngezinye izikhathi ngangizitshela ukuthi: “kunjalo, kusukela kule mpelasonto ngifunda kahle i-STM,” yethula i-CubeMX, yakha isethingi ye-SPI, yabheka udonga oluwumphumela wombhalo, olunambitheka ngokukhululekile ngamalungelo okushicilela e-STM, futhi nganquma ukuthi nalokhu ngandlela thize. kakhulu.

Ungawafunda kanjani futhi kungani ama-database uma ama-microcontroller kuwumsebenzi wakho wokuzilibazisa

Vele, ungathola ukuthi uCubeMX wabhala ini lapha. Kodwa ngesikhathi esifanayo kusobala ukuthi ukukhumbula wonke amagama bese uwabhala ngesandla akunangqondo. Futhi ukulungisa lokhu, uma ngephutha ngikhohlwa ukumaka ibhokisi kuCube, lokho kulungile.

Sekudlule iminyaka emibili, ngisazikhotha amalebe Isitholi se-ST MCU kuzo zonke izinhlobo ezihlwabusayo, kodwa ngaphezu kokuqonda kwami, ama-chips, futhi afika ngephutha isihloko esihle, noma ngabe i-STM8. KANYE kungazelelwe Ngabona ukuthi sonke lesi sikhathi bengingqongqoza emnyango ovulekile: amarejista e-STM ahlelwe ngendlela efanayo neyanoma iyiphi enye i-MK, futhi iCube ayidingekile ukusebenza nayo. Ingabe kwakungenzeka? ..

I-HAL futhi ikakhulukazi i-STM32CubeMX iyithuluzi lonjiniyela abangochwepheshe abasebenza eduze nama-STM32 chips. Isici esiyinhloko izinga eliphezulu lokungafinyeleli, ikhono lokufuduka ngokushesha usuka kwenye i-MCU uye kwenye futhi usuka komunye umnyombo uye kwenye, kuyilapho uhlala ngaphakathi komugqa we-STM32. Ama-Hobbyists awavamile ukubhekana nezinkinga ezinjalo - ukukhetha kwethu ama-microcontrollers, njengomthetho, kukhawulelwe ku-aliExpress assortment, futhi sivame ukufuduka phakathi kwama-chips ahluke kakhulu - sisuka e-Atmega siye ku-STM, sisuka ku-STM siye ku-ESP, noma yini entsha abangani bethu baseShayina. siphonse kithi. I-HAL ngeke isize lapha, futhi ukuyifundela kuzodla isikhathi esiningi.

I-LL isasele - kodwa ukusuka kuyo kuya kumarejista kunesinyathelo esiyingxenye. Ngokwami, ngikuthola kuwusizo ukubhala ama-macros ami namakheli okubhalisa: Ngitadisha imininingwane ngokucophelela, ngicabanga ngalokho engizodinga esikhathini esizayo nalokho engingeke ngikwenze, ngihlela izinhlelo zami kangcono, futhi ngokuvamile, ukunqoba kusiza ngekhanda. .

Ngaphezu kwalokho, kukhona okuhlukile nge-STM32F103 ethandwayo - kunezinhlobo ezimbili ze-LL ezingahambelani zayo, isikhulu esisodwa esivela ku-STM, esesibili esivela kuLeaf Labs, esisetshenziswe kuphrojekthi ye-STM32duino. Uma ubhala umtapo wolwazi womthombo ovulekile (futhi benginakho impela umsebenzi onjalo), kufanele wenze izinguqulo ezimbili, noma ufinyelele amarejista ngokuqondile.

Ekugcineni, ukususa i-LL, ngokubona kwami, kwenza ukufuduka kube lula, ikakhulukazi uma uhlela ngakho kusukela ekuqaleni kwephrojekthi. Isibonelo esiyihaba: masibhale i-Arduino blink ku-Atmel Studio ngaphandle kwe-LL:

#include <stdint.h>

#define _REG(addr) (*(volatile uint8_t*)(addr))

#define DDR_B 0x24
#define OUT_B 0x25

int main(void)
{
    volatile uint32_t k;

    _REG(DDR_B) |= (1<<5);

    while(1)
    {
        _REG(OUT_B) |= (1<<5);
        for (k=0; k<50000; k++);
        _REG(OUT_B) &= ~(1<<5);
        for (k=0; k<50000; k++);
    } 
}

Ukuze le khodi icwayize i-LED ebhodini lesiShayina eline-STM8 (kusuka ku-ST Visual Desktop), kwanele ukushintsha amakheli amabili kuyo:

#define DDR_B 0x5007
#define OUT_B 0x5005

Yebo, ngisebenzisa isici sokuxhuma i-LED ebhodini elithile, izocwayiza kancane kakhulu, kodwa izokwenzeka!

Yiziphi izinhlobo zedatha ezikhona?

Ezihlokweni nasezinkundleni zokuxhumana, isiRashiya nesiNgisi, “ama-datasheets” asho noma yimiphi imibhalo yezobuchwepheshe yama-chips, futhi ngenza okufanayo kulo mbhalo. Ngokusemthethweni, ziwuhlobo olulodwa nje lwamadokhumenti anjalo:

Ishidi le-data - Izici zokusebenza, izici zamaqhinga nezobuchwepheshe. Kuyisibopho kunoma iyiphi ingxenye ye-elekthronikhi. Ulwazi olungemuva luwusizo ukuhlala ukhona, kodwa akukuningi ongakufunda kulo ngokucabangisisa. Kodwa-ke, ama-chips alula avame ukukhawulelwa kudathabhethi ukuze angakhiqizi imibhalo engadingekile; esimweni esinjalo Incwadi Yezikhombo ifakiwe lapha.

Incwadi Yezikhombo – imiyalelo ngokwayo, incwadi enempilo enamakhasi ayi-1000+. Umsebenzi wakho konke okuminyene ku-chip uchazwa ngokuningiliziwe. Idokhumenti eyinhloko yokulawula i-microcontroller. Ngokungafani ishidi le-data, iziqondiso zibhalelwe ama-MK abanzi; aqukethe ulwazi oluningi mayelana nama-peripherals angatholakali kumodeli yakho ethile.

Ibhukwana Lokuhlela noma I-Manual Setha Yemiyalo – imiyalelo yemiyalelo ye-microcontroller ehlukile. Idizayinelwe labo abahlela ngolimi Lomhlangano. Ababhali abahlanganisayo bayisebenzisa ngenkuthalo ukuze bathuthukise ikhodi, ngakho-ke ngokuvamile ngeke siyidinge. Kodwa ukubuka lapha kuyasiza ekuqondeni okujwayelekile, kweminye imiyalo ethile njengokuphuma ekuphazanyisweni, kanye nokusebenzisa ngokusebenzayo isilungisi sephutha.

Inothi Lokusebenza - amathiphu awusizo okuxazulula izinkinga ezithile, ngokuvamile ngezibonelo zamakhodi.

Ishidi le-Errata - incazelo yamacala okuziphatha kwe-chip okungajwayelekile nezinketho zokulungisa, uma zikhona.

Yini esemaphepheni

Ngqo ku Ishidi le-data singase sidinge izigaba ezilandelayo:

Isifinyezo Sedivayisi – ikhasi lokuqala lemininingwane lichaza kafushane ucingo. Iwusizo kakhulu ezimweni lapho uthola i-chip endaweni ethile (uyibone esitolo, wayithengisa, wathola okukhulunywe ngayo) futhi ufuna ukuqonda ukuthi iyini.

Incazelo jikelele - incazelo enemininingwane eminingi yamakhono ama-chips avela kulayini.

Ama-pinouts - imidwebo ye-pinout yawo wonke amaphakheji e-chip angenzeka (iyiphi iphinikhodi ekumuphi umlenze).

Iphinikhodi Incazelo – incazelo yenhloso kanye namakhono ephini ngalinye.

Imephu Yememori - cishe ngeke sidinge imephu yekheli enkumbulweni, kodwa ngezinye izikhathi ihlanganisa netafula lamakheli ebhulokhi yerejista.

Bhalisa imephu - Ithebula lamakheli amabhlogo werejista, njengomthetho, litholakala kudathabhethi, nakuyo Imanuwali yeRef - amashifu kuphela (amakheli offset).

Izindlela zikagesi – kulesi sigaba sinentshisekelo kakhulu kukho izilinganiso eziphezulu eziphelele, ifaka kuhlu imithwalo ephezulu nge-chip ngayinye. Ngokungafani ne-Atmega328p engabhubhi, ama-MK amaningi awakuvumeli ukuthi uxhume imithwalo enzima nezikhonkwane, okuba yisimanga esingemnandi kuma-Arduinists.

Imininingwane Yephakheji - imidwebo yamacala atholakalayo, awusizo lapho uklama amabhodi akho.

Incwadi Yezikhombo ngokwesakhiwo iqukethe izigaba ezinikelwe kuma-peripherals athile aboniswe esihlokweni sawo. Isahluko ngasinye singahlukaniswa sibe izingxenye ezintathu:

Uhlolojikelele, Isingeniso, Izici - isifinyezo samakhono we-peripheral;

Umsebenzi Osebenzayo, Umhlahlandlela Wokusetshenziswa noma umane ibhulokhi eyinhloko yesigaba - incazelo yombhalo enemininingwane yezimiso zedivayisi ye-peripheral kanye nendlela yokuyisebenzisa;

Amarejista – incazelo yamarejista okulawula. Ezimweni ezilula ezifana ne-GPIO noma i-SPI, lokhu kungase kwanele ukuqala ukusebenzisa ama-peripheral, kodwa ngokuvamile kusadingeka ufunde izingxenye ezedlule.

Ungawafunda kanjani ama-database

Ama-datasheets, ngenxa yomkhuba, akwethusa ngevolumu yawo kanye nenqwaba yamagama angaqondakali. Eqinisweni, yonke into ayesabi kangako uma wazi ama-hacks ambalwa empilo.

Faka umfundi omuhle we-PDF. Ama-datasheets abhalwe ngesiko elikhazimulayo lemiyalo yephepha; mahle kakhulu ukuwaphrinta, afakwe ngamabhukhimakhi epulasitiki futhi athunge. I-Hypertext kuzo ibonwa ngamanani omkhondo. Ngenhlanhla, okungenani ukwakheka kwedokhumenti kuklanywe ngamabhukhimakhi, ngakho-ke umfundi ofanelekayo onokuzulazula okulula kuyadingeka kakhulu.

Idatha akuyona incwadi kaStroustrup; iqukethe asikho isidingo sokufunda yonke into. Uma usebenzise iseluleko sangaphambilini, vele uthole isigaba osifunayo kubha yamabhukhimakhi.

Ama-datasheets, ikakhulukazi Amabhukwana wereferensi, ingachaza amakhono okungeyona i-chip ethile, kodwa umugqa wonke. Lokhu kusho ukuthi ingxenye, noma izingxenye ezimbili kwezintathu zolwazi azihlobene ne-chip yakho. Ngaphambi kokufunda amarejista e-TIM7, ngena Incazelo jikelele, unayo?

Yazi isi-english ngokwanele izinga eliyisisekelo. Amashidi edatha ahlanganisa uhhafu wamagama angajwayelekile esikhulumini somdabu esivamile, kanye nohhafu wezakhiwo ezilula zokuxhuma. Kukhona futhi ama-database amahle kakhulu amaShayina ngesiNgisi sase-Chinese, lapho ingxenye nayo ingamagama, kanti ingxenye yesibili iyisethi yamagama engahleliwe.

Uma nihlangana igama elingaziwa, ungazami ukulihumusha usebenzisa isichazamazwi sesiNgisi nesiRashiya. Uma udidekile isibumbu, khona-ke ukuhumusha "hysteresis" ngeke kukwenze ufudumale. Sebenzisa i-Google, Stack Overflow, Wikipedia, izinkundla, lapho umqondo odingekayo uzoba khona kuchazwe ngamagama alula ngezibonelo.

Indlela engcono kakhulu yokuqonda lokho okufundayo ngena esenzweni. Ngakho-ke, gcina ibhodi lokususa iphutha ozaziyo ngalo, noma okungcono nakakhulu okubili, uma kwenzeka ungaqondi okuthile futhi ubone intuthu yomlingo.

Kungumkhuba omuhle ukugcina imininingwane yakho iseduze uma wena ukufunda okokufundisa kothile noma ukufunda umtapo womunye umuntu. Kungenzeka ukuthi uzothola isisombululo esingcono kakhulu senkinga yakho kuyo. Futhi ngokuphambene nalokho - uma ungakwazi ukuqonda kusuka kumininingwane ukuthi irejista isebenza kanjani ngempela, i-google: cishe, othile usechaze yonke into ngamagama alula noma ushiye ikhodi ecacile ku-GitHub.

Isichazamazwi

Amanye amagama awusizo nezimpawu ukukusiza ukuthi ujwayele ngokushesha ama-database. Engikukhumbule ezinsukwini ezimbalwa ezedlule, izengezo nezilungiso zamukelekile.

Ugesi
I-VDC, vdd – “plus”, ukudla
Amav, Vee – “susa”, umhlaba
zamanje – okwamanje
voltage - voltage
ukucwila okwamanje - sebenza "njengomhlabathi" womthwalo wangaphandle
ukuthola yamanje – amandla umthwalo wangaphandle
usinki ophezulu/iphinikhodi yomthombo - phini "nokubekezelelana" okwengeziwe ukuze ulayishe

IO
H, Phezulu – kuphinikhodi ye-Vcc
L, Phansi – kuphinikhodi ye-Vss
Impedance ephezulu, Sawubona-Z, ukuntanta - akukho lutho kuphini, "ukumelana okuphezulu", cishe akubonakali emhlabeni wangaphandle.
donsa obuthakathaka, donsa obuthakathaka – isimelaphi sokudonsela phezulu/sokudonsela phansi esakhelwe ngaphakathi, esicishe silingane no-50 kOhm (bheka imininingwane yolwazi). Isetshenziswa, isibonelo, ukuvimbela iphinikhodi yokufaka ukuthi ingalengi emoyeni, ibangele ama-alamu angamanga. ebuthakathaka - ngoba kulula "ukumphazamisa".
phusha donsa – pin okukhipha imodi, lapho eshintsha phakathi High и ongaphakeme - UKUPHUMA okujwayelekile okuvela e-Arduino.
vula i-drain – ukuqokwa kwemodi yokuphuma lapho iphini ingaba khona ongaphakeme, noma I-Impedans ephezulu/Ukuntanta. Ngaphezu kwalokho, cishe njalo lokhu akuyona "i-drain" evulekile evulekile; kukhona ama-diode okuzivikela, ama-resistors, nokunye. Lokhu kumane kuyigama lemodi yaphansi/engekho.
i-drain evulekile yangempela - kodwa lokhu kuyi-drain evulekile yangempela: iphinikhodi iholela ngqo emhlabathini uma ivulekile, noma ihlala i-limbo uma ivaliwe. Lokhu kusho ukuthi, uma kunesidingo, i-voltage engaphezu kwe-Vcc ingadluliswa kuyo, kodwa inani eliphakeme lisashiwo kudatha yedatha esigabeni. Absolute Maximum Izilinganiso/Voltge.

Ukungena
ochungechungeni – ixhunywe ochungechungeni
ukuze iketane - hlanganisa ama-chips eketango usebenzisa uxhumano lwe-serial, ukwandisa inani lemiphumela.
ukushintsha – shift, ngokuvamile isho shift kancane. ngokulandelana, ukungena и ukuphuma - thola futhi udlulise idatha kancane kancane.
isiqhebezo - i-latch evala isigcinalwazi ngenkathi izingcezu zihanjiswa kuyo. Lapho ukudluliswa sekuqediwe, i-valve iyavuleka futhi izingcezu ziqala ukusebenza.
ukungena - yenza ukudlulisa kancane kancane, hambisa zonke izingcezu uziyise ezindaweni ezifanele.
isilondolozi esiphindwe kabili, irejista yethunzi, irejista yokulayisha kuqala - ukuqokwa komlando, lapho irejista kufanele ikwazi ukwamukela idatha entsha, kodwa ibambe kuze kube isikhathi esithile. Isibonelo, ukuze i-PWM isebenze kahle, imingcele yayo (umjikelezo womsebenzi, imvamisa) akufanele ishintshe kuze kuphele umjikelezo wamanje, kodwa imingcele emisha isivele idluliselwe. Ngokunjalo, ezamanje zigcinwa ku irejista yethunzi, futhi abasha bawela irejista yokulayisha kuqala, ibhalwa kurejista ye-chip ehambisanayo.

Zonke izinhlobo zezinto
i-prescaler - i-frequency prescaler
ukusetha kancane - setha kancane ku-1
ukusula/ukusetha kabusha kancane - setha kabusha kancane ku-0 (Setha kabusha - Isici sedatha ye-STM)

Yini elandelayo

Sekukonke, ingxenye engokoqobo yahlelwa lapha ngomboniso wamaphrojekthi amathathu ku-STM32 kanye ne-STM8, enzelwe lesi sihloko ngokuqondile kusetshenziswa imininingwane yedatha, enamalambu okukhanya, i-SPI, izibali sikhathi, i-PWM neziphazamiso:

Ungawafunda kanjani futhi kungani ama-database uma ama-microcontroller kuwumsebenzi wakho wokuzilibazisa

Kodwa kunombhalo omningi, ngakho amaphrojekthi athunyelwa engxenyeni yesibili.

Ikhono lokufunda imininingwane yedatha lizokusiza ngomsebenzi wakho wokuzilibazisa, kodwa mancane amathuba okuthi ushintshe ukuxhumana okubukhoma nozakwenu abazilibazisa ezinkundleni nasezingxoxweni. Ukufeza lokhu, kusadingeka uthuthukise isiNgisi sakho kuqala. Ngakho-ke, labo abaqedile ukufunda bazothola umklomelo okhethekile: izifundo ezimbili zamahhala e-Skyeng ngenkokhelo yokuqala usebenzisa ikhodi. HABR2.

Source: www.habr.com

Engeza amazwana