Upload
others
View
27
Download
0
Embed Size (px)
Citation preview
Integrisani racunarski sistemiUvod
Odsek za elektroniku
Univerzitet u Beogradu - Elektrotehnicki fakultet
poslednja izmena 14. mart 2020
Odsek za elektroniku 13E044IRS ETF Beograd 1 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 2 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 3 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 4 / 91
Plan vezbi
Racunske vezbeKroz nekoliko konkretnih projektnih zadataka bice
opisane najcesce koriscene periferijeobjasnjeno podesavanje tih periferijanapisani programi koji obavljaju trazene funkcijeprikazane osnovne tehnike razvoja koda za embedded sisteme
Laboratorijske vezbe3 laboratorijske vezbe, svaka sa trajanjem do 3 sataizvode se u laboratoriji 18 na razvojnom sistemu povezanom saPC-jem i razvojnim okruzenjem preko FET debugger-a
Odsek za elektroniku 13E044IRS ETF Beograd 5 / 91
Dodatni plan
Coding styleKod pored funkcionalnosti treba da bude i „lepo“ napisan
identacijabez „magicnih“ brojevakomentari komentari komentari. . .
DokumentovanjeKoriscenjem Doxygen (http://www.doxygen.org) alata moguce jeautomatsko generisanje dokumentacije u HTML-u i/ili LATEX-u/PDF-u(ako se komentari u kodu pisu na odgovarajuci nacin, sto nije tesko)
Odsek za elektroniku 13E044IRS ETF Beograd 6 / 91
Razvojno okruzenje
Za potrebe razvoja softvera koristi se razvojno okruzenje CodeComposer Studio v8. Free verzija koja podrzava pisanje svih aplikacijakoje ce biti razvijane u okviru kursa se moze dohvatiti sa linkahttp://www.ti.com/tool/ccstudio
U okviru paketa integrisano je sve sto je potrebno za razvoj koda(editor, asembler, C kompajler) i debagovanje (FET emulator) kao ialati (terminal)
Zasnovan je na Eclipse-u, tako da je moguce prosiriti funkcionalnostraznim plugin-ovima
Odsek za elektroniku 13E044IRS ETF Beograd 7 / 91
Razvojni sistem
Detaljna sema sistema dostupna je na:http://tnt.etf.rs/~oe4irs/RS_MSP430F5438A_sch.pdf
Odsek za elektroniku 13E044IRS ETF Beograd 8 / 91
Plan 2019/20
AZURIRANO 14.03.nedelja pon uto sre cet pet09-13.03. v1:12-15h@313 v2:[email protected].
23-27.03. l1.t1:09-12h l1.t2:09-12hv3:12-15h@313 l1.t3:12-15h
30.03.-03.04. l2.t1:09-12h l2.t2:09-12hv4:12-15h@313 l2.t3:12-15h
06-10.04. l3.t1:09-12h l3.t1:09-12hl3.t2:12-15h
Odsek za elektroniku 13E044IRS ETF Beograd 9 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 10 / 91
Osobine MSP430 familije
Familija mikrokontrolera optimizovana za aplikacije sa baterijskimnapajanjem
Veliki broj integrisanih periferija (tajmeri, komparatori, AD i DAkonvertori, UART. . . )
16-/20-bitno procesorsko jezgro sa RISC arhitekturom
Podrska za JTAG
Odsek za elektroniku 13E044IRS ETF Beograd 11 / 91
MSP430x
Familija MSP430 se deli na nekoliko podfamilija: MSP430x5xx,MSP430x6xx. . .Mi radimo sa mikrokontrolerom MSP430F5438A, kojispada u podfamiliju MSP430x5xx
MSP430F5438A ima256kB flash-a16kB SRAM-a3 16-bitna tajmera12-bitni A/D konvertor sa 16 ulaza4 USCI (Universal Serial Communication Interface)87 GPIO pinova. . .
Odsek za elektroniku 13E044IRS ETF Beograd 12 / 91
Detaljne informacije 1/2
DatasheetDetaljne informacije o mikrokontroleru MSP430F5438Ahttp://www.ti.com/lit/gpn/msp430f5438a
User’s guideDetaljne informacije o familiji MSP430x5xxhttp://www.ti.com/lit/pdf/slau208
ErratasheetLista poznatih problema i gresaka sa mikrokontroleromMSP430F5438A http://www.ti.com/lit/pdf/slaz290
Odsek za elektroniku 13E044IRS ETF Beograd 13 / 91
Detaljne informacije 2/2
Website, uvek azuran: http://www.ti.com/product/msp430f5438a
Odsek za elektroniku 13E044IRS ETF Beograd 14 / 91
Detaljne informacije 2/2
Website, uvek azuran: http://www.ti.com/product/msp430f5438a
Odsek za elektroniku 13E044IRS ETF Beograd 14 / 91
Datasheet
Odsek za elektroniku 13E044IRS ETF Beograd 15 / 91
User’s guide
Odsek za elektroniku 13E044IRS ETF Beograd 16 / 91
Adresni prostor MSP430F5438A
Odsek za elektroniku 13E044IRS ETF Beograd 17 / 91
Memorijska mapa periferija
Odsek za elektroniku 13E044IRS ETF Beograd 18 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 19 / 91
Hello, world!
”Hello, world!“ programJednostavna aplikacija koja sluzi da se potvrdi funkcionalnost
Sta je ”Hello, world!“ program za mikrokontroler?nemamo stdout, pa samim tim ni printfimamo LCD displej, ali ispis na njega zahteva neki trud, sto nijepoenta ”Hello, world!“ programa
Jednostavan nacin za signalizaciju jeste da koristimo dostupne LEDdiode
Odsek za elektroniku 13E044IRS ETF Beograd 20 / 91
Zadatak – treperenje diode
ZadatakNapisati program za razvojni sistem kojim se implementira treperenjeLED diode sa periodom od ∼ 200ms.
NapomeneLED diode su vezane na GPIO pinove, kojima se upravlja prekoDigitalnih portova
Odsek za elektroniku 13E044IRS ETF Beograd 21 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 22 / 91
Digitalni portovi
Svaki port se kontrolise sa cetiri registrapostoji 8 pinova po portusvakom pinu odgovara jedan bit u registrima
PxOUT.n
PxDIR.n
PxIN.n
Digitalni I/0
Odsek za elektroniku 13E044IRS ETF Beograd 23 / 91
Registar PxIN
ocitani bit = 0 - na ulazu je nizak logicki nivoocitani bit = 1 - na ulazu je visok logicki nivo
Odsek za elektroniku 13E044IRS ETF Beograd 24 / 91
Registar PxOUT
Odsek za elektroniku 13E044IRS ETF Beograd 25 / 91
Registar PxDIR
Odsek za elektroniku 13E044IRS ETF Beograd 26 / 91
Registar PxSEL
U datasheet-u je za svaki pin navedeno kako treba da se podesi PxSEL (ieventualno PxDIR ili neki drugi registri) da bi se ostvarila odgovarajucafunkcionalnost na tom pinu
Odsek za elektroniku 13E044IRS ETF Beograd 27 / 91
Datasheet primer za odabir funkcije pina
Odsek za elektroniku 13E044IRS ETF Beograd 28 / 91
Prekidi na portovima P1 i P2
Na portovima P1 i P2 moguce je generisati prekid pri promeni stanjapina
Prilikom inicijalizacije potrebno je konfigurati ivicu ulaznog signala nakoju se generise prekid i dozvoliti generisanje prekida putemodgovarajucih registara
Odsek za elektroniku 13E044IRS ETF Beograd 29 / 91
Registar PxIFG
Odsek za elektroniku 13E044IRS ETF Beograd 30 / 91
Registar PxIES
Odsek za elektroniku 13E044IRS ETF Beograd 31 / 91
Registar PxIE
Odsek za elektroniku 13E044IRS ETF Beograd 32 / 91
Opis hardvera
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Odsek za elektroniku 13E044IRS ETF Beograd 33 / 91
Opis hardvera
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Odsek za elektroniku 13E044IRS ETF Beograd 33 / 91
Zadatak – treperenje diode
ZadatakNapisati program za razvojni sistem kojim se implementira treperenjeLED diode sa periodom od ∼ 200ms.
NapomeneLED diode su vezane na GPIO pinove, kojima se upravlja prekoDigitalnih portovaPotrebno je koristiti razvojno okruzenje
Odsek za elektroniku 13E044IRS ETF Beograd 34 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 35 / 91
Razvojna okruzenja
Razvoj softvera za namenske sisteme moguc u razlicitim razvojnimokruzenjima
Primeri1 Eclipse - univerzalno, ne samo za mikrokontrolere2 IAR EW - razliciti mikrokontroleri podrzani (ARM, MSP430. . . )3 Code Composer Studio - razliciti mikrokontroleri koje proizvodi TI
podrzani (ARM, MSP430, DSP)4 Keil - samo za odredeni mikrokontroler (ARM)
Odsek za elektroniku 13E044IRS ETF Beograd 36 / 91
Osnovni elementi razvojnog okruzenja
Editorsyntax highlightingcode completion
AsemblerC/C++ kompajlerDebugger
U sustini, nema velikih razlika i lako je preci sa jednog na drugo
Odsek za elektroniku 13E044IRS ETF Beograd 37 / 91
Code Composer Studio
Free verzija koja podrzava pisanje svih aplikacija koje ce biti razvijaneu okviru kursa se moze dohvatiti sa linkahttp://www.ti.com/tool/ccstudio
Dokumentacija je dostupna nahttp://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v8
Kompajler koji koristimo je TI kompajler. Moguce je koriscenje i GCCkompajlera ali to (za sada) nije pokriveno ovim uputstvom
Odsek za elektroniku 13E044IRS ETF Beograd 38 / 91
Zadatak – treperenje diode
ZadatakNapisati program za razvojni sistem kojim se implementira treperenjeLED diode sa periodom od ∼ 200ms.
NapomeneLED diode su vezane na GPIO pinove, kojima se upravlja prekoDigitalnih portovaPotrebno je koristiti razvojno okruzenje za
kreiranje projekta
Odsek za elektroniku 13E044IRS ETF Beograd 39 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 40 / 91
Asemblerski projekat
Projekat u kojem se program pise samo u asembleru
Neophodno da programer vodi racuna opostavljanju RESET vektorainicijalizaciji stek pointerasekcijama u koje se smestaju kod i promenljive. . .
With great power comes great responsibility
Odsek za elektroniku 13E044IRS ETF Beograd 41 / 91
Kreiranje projekta
Odsek za elektroniku 13E044IRS ETF Beograd 42 / 91
Potrebno podesitiMSP430F5438A
cisto asemblerskiprojekat
Odsek za elektroniku 13E044IRS ETF Beograd 43 / 91
Osnovni fajl
Fajl sa opisomhardverskih specificnostiizabranog mikrokontrolera
Postavljanje reset vektora
Asemblerska direktivakoja ukazuje da je nizinstrukcija koji sledepotrebno postaviti uprogramsku memoriju
Inicijalizacija Stackpointer-a (SP)
Iskljucivanje Watchdogtajmera
Prostor za pisanjekorisnickog programa
Strukturaprojekta
Odsek za elektroniku 13E044IRS ETF Beograd 44 / 91
Hardverske specificnosti 1/2
msp430.h je opsti include fajl za celu MSP430 familiju
Klikom na Includesmoze da se dode dodostupnih header fajlova
Odsek za elektroniku 13E044IRS ETF Beograd 45 / 91
Hardverske specificnosti 2/2
Unutar fajla msp430.h definisanim makroima se ukljucuje fajl zaizabrani mikrokontroler
Fajl sa opisomhardverskihspecificnosti izabranogmikrokontrolera
Odsek za elektroniku 13E044IRS ETF Beograd 46 / 91
Include fajl
Koriscenje pojmova definisanih u include fajlu olaksava kodiranje ali ikasniji prelaz sa jednog na drugi mikrokontroler
Cesto koriscenimkonstantama zadaju sesimbolicka imena
Makroima se simbolickaimena registara povezujusa fizickim adresama namagistrali
Cesto koriscenimkonstantama zadaju sesimbolicka imena
Makroima se simbolickaimena registara povezujusa fizickim adresama namagistrali
Cesto koriscenimkonstantama zadaju sesimbolicka imena
Makroima se simbolickaimena registara povezujusa fizickim adresama namagistrali
Odsek za elektroniku 13E044IRS ETF Beograd 47 / 91
Direktive asemblera
Program predstavlja niz asemblerskih instrukcija i podataka smestenihnegde u memoriji. Da bi se asembleru reklo gde se i na koji nacinsmestaju ti blokovi instrukcija ili podataka koriste se direktiveasemblera
Direktive asemblera su instrukcije kojima programer vodi asembler ucilju prevodenja asemblerskog koda na odgovarajuci zeljeni nacin
Odsek za elektroniku 13E044IRS ETF Beograd 48 / 91
Ovom direktivom senavedeni simbol cinividljivim iz ostalihmodula
WriteLed definisanu nekom drugommodulu
Simbol WriteLed secini vidljivim izvanovog modula
Direktiva kojaukazuje da nizpodataka iliinstrukcija koje sleditreba da se smestinegde u programskojmemoriji
Direktiva kojaukazuje da nizpodataka koji sleditreba da se smestiu segment konstanti(flash memorija)
Direktivom .byte sedeklarise osmobitnakonstanta
Odsek za elektroniku 13E044IRS ETF Beograd 49 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 50 / 91
C-ovski projekat
Projekat u kojem se program pise u C/C++, moze i asembler
Kompajler vodi racuna o svemu (sem o delu koji je pisan u asembleru)
Potrebno biti pazljiv prilikom kombinovanja C-a i asemblera
Odsek za elektroniku 13E044IRS ETF Beograd 51 / 91
Kreiranje projekta
S obzirom da je trazenaimplementacija u C-u, udijalogu kreiranjaprojekta bira se C-ovskitemplate
Odsek za elektroniku 13E044IRS ETF Beograd 52 / 91
Osnovni fajl
Predefinisani template za C-ovski projekat prikazan je na slici
Fajl sa opisomhardverskih specificnostiizabranog mikrokontrolera
Osnovnamain funkcijaprograma
Strukturaprojekta
IskljucivanjeWatchdog tajmera
Vrednost kojufunkcija vraca
Za razliku od asemblera u C-u se sva inicijalizacija obavljaautomatski - od strane prevoidoca.To podrazumeva izmedu ostalog daprevodilac brine o postavljanjukoda u memoriju, postavljanjureset prekida, kao i inicijalizacijiSP-a
Odsek za elektroniku 13E044IRS ETF Beograd 53 / 91
Zadatak – treperenje diode
ZadatakNapisati program za razvojni sistem kojim se implementira treperenjeLED diode sa periodom od ∼ 1Hz .
NapomeneLED diode su vezane na GPIO pinove, kojima se upravlja prekoDigitalnih portovaPotrebno je koristiti razvojno okruzenje za
kreiranje projektarazvoj koda
Odsek za elektroniku 13E044IRS ETF Beograd 54 / 91
Razvoj koda
mikrokontrolerska aplikacijasastoji se iz dva dela
inicijalizacijabeskonacna petlja
nema krajza razliku od aplikacije koja seizvrsava u okviru OS, baremetalaplikacija se jedina izvrsava namikrokontroleru
INICIJALIZACIJA
FUNKCIONALNOST
RESET
Odsek za elektroniku 13E044IRS ETF Beograd 55 / 91
Asemblerska realizacija
.cdecls C,LIST,"msp430.h" ; Include device header file;-------------------------------------------------------------------------------
.def RESET ; Export program entry-point to; make it known to linker.
;-------------------------------------------------------------------------------.text ; Assemble into program memory.
RESET mov.w #__STACK_END,SP ; Initialize stackpointerStopWDT mov.w #WDTPW|WDTHOLD,&WDTCTL ; Stop watchdog timer
bis.b #BIT3,&P4DIR ; Configure P4.3 as out;-------------------------------------------------------------------------------; Main loop here;-------------------------------------------------------------------------------loop: mov.w #0x8888,R9 ; use R9 as counterwait: dec R9 ; decrement counter
jnz wait ; jump to wait if R9 > 0xor.b #BIT3,&P4OUT ; toggle P4.3jmp loopnop ; this removes warning
;-------------------------------------------------------------------------------; Stack Pointer definition;-------------------------------------------------------------------------------
.global __STACK_END
.sect .stack;-------------------------------------------------------------------------------; Interrupt Vectors;-------------------------------------------------------------------------------
.sect ".reset" ; MSP430 RESET Vector
.short RESET
Inicijalizacija
Funkcionalnost
Odsek za elektroniku 13E044IRS ETF Beograd 56 / 91
C-ovska realizacija
int main(void){
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P4DIR |= BIT3; // Configure P4.3 as out
while (1){
// wait and toggle__delay_cycles(104857);P4OUT ^= BIT3; // Toggle P4.3
}}
Inicijalizacija
Funkcionalnost
Odsek za elektroniku 13E044IRS ETF Beograd 57 / 91
Zadatak – treperenje diode
ZadatakNapisati program za razvojni sistem kojim se implementira treperenjeLED diode sa periodom od ∼ 200ms.
NapomeneLED diode su vezane na GPIO pinove, kojima se upravlja prekoDigitalnih portovaPotrebno je koristiti razvojno okruzenje za
kreiranje projektarazvoj kodaasembliranje/kompajliranje
Odsek za elektroniku 13E044IRS ETF Beograd 58 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 59 / 91
Asembliranje
Asembliranje je proces prevodenja asemblerskog (simbolickog) umasinski kod. Alat koja to radi zove se asembler
Odsek za elektroniku 13E044IRS ETF Beograd 60 / 91
Proces asembliranja
Izvestaj o procesu asembliranja nalazi se u list fajlu
Svaka instrukcija se prevodi umasinski kod
Sadrzaj memorije, tj. masinskikod ove instrukcije
Svaka linija asm fajla dobija redni broj nakon asembliranja,nakon cega sledi adresa u fizickoj memoriji na koju ce bitismesten sadrzaj koji sledi
Svaka instrukcija se prevodi umasinski kod
Sadrzaj memorije, tj. masinskikod ove instrukcije
Svaka linija asm fajla dobija redni broj nakon asembliranja,nakon cega sledi adresa u fizickoj memoriji na koju ce bitismesten sadrzaj koji sledi
Svaka instrukcija se prevodi umasinski kod
Sadrzaj memorije, tj. masinskikod ove instrukcije
Svaka linija asm fajla dobija redni broj nakon asembliranja,nakon cega sledi adresa u fizickoj memoriji na koju ce bitismesten sadrzaj koji sledi
Odsek za elektroniku 13E044IRS ETF Beograd 61 / 91
Linkovanje
Linkovanje je proces u kome se masinski kod iz razlicitih objektnihfajlova prevodi u jedan jedinstven fajl koji se moze spustiti u memorijumikrokontrolera.
Odsek za elektroniku 13E044IRS ETF Beograd 62 / 91
Najvaznije uputstva za linker se nalaze u linker command file-u
Segmenti mogu da se preklapaju
.data je tip segmenta u koji sesmestaju inicijalizovani podaci(RAM memorija)
.bss je tip segmenta u koji sesmestaju neinicijalizovani podaci(RAM memorija)
.const je tip segmenta u kojise smestaju konstantni podaci(FLASH memorija)
.text je tip segmenta u koji sesmestaju instrukcije (FLASHmemorija)
Odsek za elektroniku 13E044IRS ETF Beograd 63 / 91
Kompajliranje
Komanda BUILD vrsi kompajliranje i linkovanje projekta
Nakon uspesnogkompajliranja klikom naovu ikonu ulazi se u modza debagovanje
Klik na ovu ikonu vrsikompajliranje i linkovanjecelog projekta
Nakonkompajliranja/linkovanjapojavljuju se pokazivacina evenutalne greske iupozorenja
Poruke kojeukazuju na statuskompajliranja/linkovanja
Odsek za elektroniku 13E044IRS ETF Beograd 64 / 91
Zadatak – treperenje diode
ZadatakNapisati program za razvojni sistem kojim se implementira treperenjeLED diode sa periodom od ∼ 200ms.
NapomeneLED diode su vezane na GPIO pinove, kojima se upravlja prekoDigitalnih portovaPotrebno je koristiti razvojno okruzenje za
kreiranje projektarazvoj kodaasembliranje/kompajliranjespustanje programa u memoriju mikrokontrolerakao i u debagovanje u slucaju greske
Resenje{asm|c}-led-toggle
Odsek za elektroniku 13E044IRS ETF Beograd 65 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 66 / 91
Debagovanje
Debagovanje je proces u kome se uz pomoc hardverskog debagera vrsitestiranje aplikacije
Odsek za elektroniku 13E044IRS ETF Beograd 67 / 91
Klikom na ovodugme prekida sedebagovanje
Run - klik na ovodugme izvrsavaprogram Step Into - klik na
ovo dugme izvrsavainstrukciju koja jemarkirana zelenom
Dugme zareset
Disassembly prozorprikazuje programonako kako je smesten umemoriju
Zeleni marker ukazuje nasledecu instrukciju kojatreba da se izvrsi
Svakoj liniji originalnogkoda koja je prevedenau procesu kompajliranjaodgovara jedna linija uDisassembly prozoru
Odsek za elektroniku 13E044IRS ETF Beograd 68 / 91
Prozor sa registrima
Dugme za postavljanjeBreakpoint-a
U View meniju sevrsi izbor prikazarazlicitih resursapromenljivih/parametara
Plavi marker ukazuje nabreakpoint
Odsek za elektroniku 13E044IRS ETF Beograd 69 / 91
Debagovanje
Najjednostavniji i najpregledniji vid debagovanja je single steppingProblem je sto to moze dugo da potraje i zamorno je
Mnogo efikasniji vid debagovanja je postavljanjem Breakpoint-a nadobra mesta
Generalno, Breakpoint se postavlja tamo gde treba detektovati spoljnidogadaj preko registra (u nasem slucaju pritisak tastera) i tamo gde seocekuje reakcija na taj dogadaj
Odsek za elektroniku 13E044IRS ETF Beograd 70 / 91
Uz dobro osmisljenpolozaj Breakpoint-atestiranje se svodi nanekoliko uzastopnihpritisaka na ”Run” ikonicu
Glavni Breakpoint jenajlogicnije stavljen nainstrukciju koja ocitavastanje tastera
Kad god se izvrsavanjeprograma zaustavimoguce je menjati sadrzajregistra
S obzirom da se testirada li program detektujepritisak tastera ovo jedobar polozaj drugogbreakpoint-a
Odsek za elektroniku 13E044IRS ETF Beograd 71 / 91
Expressions prozor sluzi zaprikazivanje raznorodnih podataka,kao sto su promenljive, konstante,sadrzaj registara itd. Dodavanjenove promenljive je omoguceno upadajucem meniju nakon selekcije
Odsek za elektroniku 13E044IRS ETF Beograd 72 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 73 / 91
Zadatak – Detekcija stanja tastera
ZadatakNapisati program za razvojni sistem koji dok je pritisnut jedan tasterdrzi ukljucenu jednu LED diodu
NapomeneOcitavanjem PxIN registra za odgovarajuci pin moguce je detektovatida li je taster pritisnut ili ne
Odsek za elektroniku 13E044IRS ETF Beograd 74 / 91
Opis hardvera
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Odsek za elektroniku 13E044IRS ETF Beograd 75 / 91
Opis hardvera
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Odsek za elektroniku 13E044IRS ETF Beograd 75 / 91
Zadatak – Detekcija stanja tastera
ZadatakNapisati program za razvojni sistem koji dok je pritisnut jedan tasterdrzi ukljucenu jednu LED diodu
NapomeneOcitavanjem PxIN registra za odgovarajuci pin moguce je detektovatida li je taster pritisnut ili ne
Resenje{asm|c}-button-glow
Odsek za elektroniku 13E044IRS ETF Beograd 76 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 77 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 78 / 91
Zadatak – Detekcija pritiska tastera
ZadatakNapisati program za razvojni sistem koji na svaki pritisak jednogtastera menja stanje ukljucenosti LED diode
NapomeneIspitivanje da li je taster pritisnut vrsiti poliranjem.
Odsek za elektroniku 13E044IRS ETF Beograd 79 / 91
Detekcija pritiska tastera
Algoritam detekcije pritiska tastera se zasniva na detekciji opadajuceivice na ulaznom pinu
Glavni program mikrokontrolera treba periodicno da ocitava stanjeulaznog pina, poredi ga sa vrednosti iz prethodnog ocitavanja i uslucaju detekcije prelaska sa 1 na 0 izvrsi zahtevanu radnju.
Vdd
S4
P2.7
0 0 0 0 01 1 1 1 1 1
t
Pritisak na taster odgovarasituaciji kada je novo ocitano stanje 0 a
prethodno je bilo 1 Trenuci kada se vrsiocitavanje porta
Odsek za elektroniku 13E044IRS ETF Beograd 80 / 91
Zadatak – Detekcija pritiska tastera
ZadatakNapisati program za razvojni sistem koji na svaki pritisak jednogtastera menja stanje ukljucenosti LED diode
NapomeneIspitivanje da li je taster pritisnut vrsiti poliranjem.
Resenje{asm|c}-button-toggle
Odsek za elektroniku 13E044IRS ETF Beograd 81 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 82 / 91
Zadatak – Detekcija pritiska tastera
ZadatakNapisati program za razvojni sistem koji na svaki pritisak jednogtastera menja stanje ukljucenosti LED diode
NapomeneIspitivanje da li je taster pritisnut vrsiti putem prekidne rutine porta.
Odsek za elektroniku 13E044IRS ETF Beograd 83 / 91
Drugaciji pristup - prekidi
Prekidi koji se generisu promenom stanja ulaznih pinova portova P1 i P2
Vdd
Prekid generisan hardverski
S4
P2.7
0 0 0 0 01 1 1 1 1 1
t
Odsek za elektroniku 13E044IRS ETF Beograd 84 / 91
Zadatak – Detekcija pritiska tastera
ZadatakNapisati program za razvojni sistem koji na svaki pritisak jednogtastera menja stanje ukljucenosti LED diode
NapomeneIspitivanje da li je taster pritisnut vrsiti putem prekidne rutine porta.
Resenje{asm|c}-button-toggle-isr
Odsek za elektroniku 13E044IRS ETF Beograd 85 / 91
Pregled
1 UvodPlan radaMSP430
2 Hello, world!Digitalni portoviRazvojno okruzenje
Asemblerski projekatC-ovski projekatKompajliranjeDebagovanje
3 Detekcija stanja tastera
4 Detekcija pritiska tasteraPoliranjePrekid
5 Sedmosegmentni displej
Odsek za elektroniku 13E044IRS ETF Beograd 86 / 91
Zadatak – Sedmosegmentni displej
ZadatakNapisati program za razvojni sistem koji na pritisak jednog tasteravrednost zapisanu u registru R12 prikazuje na sedmosegmentnom LEDdispleju.
Napomeneispitivanje da li je taster pritisnut vrsiti putem prekidne rutineporta.ispisivanje na sedmosegmentni LED displej implementirati u vidufunkcije WriteLed u posebnom asm fajlu.
Odsek za elektroniku 13E044IRS ETF Beograd 87 / 91
Opis hardvera
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Odsek za elektroniku 13E044IRS ETF Beograd 88 / 91
Opis hardvera
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
Vdd
a gfedbc
SEL1
ga fedbc
SEL2
ga fedbc
SEL3
ga fedbc
SEL4
S1
S2
S3
S4
SEL1
SEL2
SEL3
SEL4
g
f
e
d
c
b
a
LD1
LD2
LD3
LD4
MSP430F5438A
P2.4
P2.5
P2.6
P2.7
P11.1
P11.0
P10.7
P10.6
P4.3
P4.4
P4.5
P4.6
P6.0
P6.1
P6.2
P6.3
P6.4
P6.5
P6.6ULN2003A
Odsek za elektroniku 13E044IRS ETF Beograd 88 / 91
Sedmosegmentni displej
Sedmostegmentni displej koji je prisutan na ploci je sa zajednickomanodom
displej se ukljucuje pomocu SELi signalapojedinacni segmenti se kontrolisu pomocu a..g signala
Da bi se ustedeo broj fizickih linija potrebnih za upravljanje sa 4 LEDdispleja koji su prisutni na ploci, signali a..g su multipleksirani
Najjednostavniji nacin za ispisivanje cifara na displej je da se napravitabela gde sadrzaj svakog reda predstavljaju vrednosti signala a..g zakoje se na LED displeju prikazuje indeks tog reda
Odsek za elektroniku 13E044IRS ETF Beograd 89 / 91
Sedmosegmentni displej
a
g
f
e
d
b
c
a
b
c
d
e
f
g
P6.6
P6.5
P6.4
P6.3
P6.2
P6.1
P6.0
ULN2003Asegtabsegtab+ 4segtab+ 9
9 8 7 6 5 4 3 2 1 0
0
1
X
1
0
0
0
0
X
1
0
0
1
0
1
1
Odsek za elektroniku 13E044IRS ETF Beograd 90 / 91
Zadatak – Sedmosegmentni displej
ZadatakNapisati program za razvojni sistem koji na pritisak jednog tasteravrednost zapisanu u registru R12 prikazuje na sedmosegmentnom LEDdispleju.
Napomeneispitivanje da li je taster pritisnut vrsiti putem prekidne rutineporta.ispisivanje na sedmosegmentni LED displej implementirati u vidufunkcije WriteLed u posebnom asm fajlu.
Resenje{asm|c}-button-7seg
Odsek za elektroniku 13E044IRS ETF Beograd 91 / 91