Integrisani racunarski sistemi Uvodtnt.etf.rs/~oe4irs/pdf/vezbe/irs1.pdf · Pregled 1 Uvod Planrada...

Post on 30-Apr-2020

24 views 0 download

Transcript of Integrisani racunarski sistemi Uvodtnt.etf.rs/~oe4irs/pdf/vezbe/irs1.pdf · Pregled 1 Uvod Planrada...

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:11-14h@31416-20.03.

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