150 likes | 332 Views
Programiranje vgrajenih elektronskih sistemov. Laboratorijske vaje http://lniv.fe.uni-lj.si/mt.html. Vgrajeni sistemi. Vgrajeni sistem je elektronsko vezje z mikroprocesorjem, vgrajeno v neko napravo Komponente: procesna enota: mikroprocesor programski in podatkovni pomnilnik
E N D
Programiranje vgrajenihelektronskih sistemov Laboratorijske vaje http://lniv.fe.uni-lj.si/mt.html
Vgrajeni sistemi • Vgrajeni sistem je elektronsko vezje z mikroprocesorjem, vgrajeno v neko napravo • Komponente: • procesna enota: mikroprocesor • programski in podatkovni pomnilnik • periferne enote UVOD Mikroprocesor in mikrokrmilnik
Mikroprocesor in mikrokrmilnik RAM ROM mikroprocesor periferne enote mikrokrmilnik UVOD Programiranje
Programiranje mikroprocesorja • programiranje v zbirniku • specifični ukazi za določen procesor • programiranje na strukturnem nivoju • ukazi neodvisni od vrste procesoja • npr. programski jezik C ali C++ PROGRAMIRANJE Primerjava C : zbirnik
Primerjava C : zbirnik • program, ki izračuna vsoto prvih 10 števil MOV R0,#0 // vsota=0 MOV R1,#10 // i=10 MOV R2, #1 // konstanta 1 loop: JZ R1, next // konec,če i=0 ADD R0, R1 // vsota += i DEC R1 // i-- JMP loop // skok nazaj next: int i, vsota=0; for (i=10; i!=0; i--) vsota += i; C: visokonivojski zbirnik: na nivoju registrov PROGRAMIRANJE Razvoj programske opreme
Razvoj programske opreme C koda C koda zbirniška koda prevajalnik asembler objektna koda objektna koda izvršilna koda razhroščevalnik povezovalnik knjiž- njica izvršilna koda verifikacija implementacija PROGRAMIRANJE Program za vgrajeni procesor
Program za vgrajeni procesor • Kadar nimamo operacijskega sistema se program izvaja v neskončni zanki • Program v jeziku C je napisan znotraj funkcije main() void main() { inicializacija while (1) {// neskončna zanka glavna zanka } } PROGRAMSKI JEZIK C Primer programa
Primer programa #include "io.h" void main() { _LCDInit(); printf("Lep pozdrav"); while (1) ; } • _LCDInit() inicializacija prikazovalnika • printf() funkcija za izpis na prikazovalnik • definicija V/I funkcij je v knjižnjici “io.h” • while(1) neskončna zanka PROGRAMSKI JEZIK C Posebni znaki
Posebni znaki PROGRAMSKI JEZIK C Spremenljivke
Spremenljivke • Pri deklaraciji povemo podatkovni tip • cela števila: int • realna števila: float • vektorji: [] int i; // celo število float k; // realno število int p[16]; // polje 16 celih števil i = 2; k = 0.135; p[i] = 80; PROGRAMSKI JEZIK C Računski izrazi
Računski izrazi • Pri računskih izrazih uporabljamo aritmetične operatorje int a, b; // cela števila float k1, k2, r; // realna števila r = a * k1 + b * k2; PROGRAMSKI JEZIK C Logični izrazi
Logični izrazi logični // primer if ( (a > 1) && (a < 16) ) { ... } relacijski • Rezultat je resničen (vrednost različna od 0) ali neresničen (vrednost 0) PROGRAMSKI JEZIK C Pogojni stavek
Pogojni stavek pogoj ? DA NE if (pogoj) { stavek1; // pogoj izpolnjen } else { stavek2; // sicer } stavek1; stavek2; if (c<33) { printf("Manjše od 33"); } else { printf("Večje od 33"); } PROGRAMSKI JEZIK C while zanka
while zanka • Stavki v zanki se ponavljajo, dokler je pogoj izpolnjen void main() { int c=0; while (c<100) { // če je c<100, ponavljaj printf("c = %d", c); c++; } while (1) ; // neskončna zanka } PROGRAMSKI JEZIK C funkcije
Funkcije • Z razdelitvijo programa na funkcije dosežemo večjo preglednost in se izognemo ponavljanju programske kode • Izmenjava podatkov se vrši preko parametrov _LCDInit(); // funkcija brez parametrov printf("c je enako %d", c); // funkcija izpiše // parametre c = getchar(); // funkcija vrne vrednost PROGRAMSKI JEZIK C