45
I I RS RS Autor: Nenad Autor: Nenad Jovičić Jovičić INTEGRISANI RAČUNARSKI SISTEMI PART 1

I RS

Embed Size (px)

DESCRIPTION

I RS. INTEGRISANI RAČUNARSKI SISTEMI PART 1. Autor : Nenad Jovičić. Sadržaj vežbi. Računske vežbe: kroz nekoliko konkretnih projektnih zadataka biće: opisane najčešće korišćene periferije objašnjeno podešavanja tih periferija napisani programi koji obavljaju tražene funkcije - PowerPoint PPT Presentation

Citation preview

Page 1: I RS

IIRSRS

Autor: Nenad JovičićAutor: Nenad Jovičić

INTEGRISANI RAČUNARSKI SISTEMIPART 1

Page 2: I RS

Sadržaj vežbiSadržaj vežbi

Računske vežbe: Računske vežbe: kroz nekoliko konkretnih projektnih zadataka biće:kroz nekoliko konkretnih projektnih zadataka biće:

opisane najčešće korišćene periferijeopisane najčešće korišćene periferije objašnjeno podešavanja tih periferijaobjašnjeno podešavanja tih periferija napisani programi koji obavljaju tražene funkcijenapisani programi koji obavljaju tražene funkcije prikazane osnovne tehnike rada sa razvojnim okruženjem. prikazane osnovne tehnike rada sa razvojnim okruženjem.

Laboratorijske vežbe:Laboratorijske vežbe: 3 laboratorijske vežbe, svaka sa trajanjem do 4 sata,3 laboratorijske vežbe, svaka sa trajanjem do 4 sata, Izvode se u laboratoriji 18 na realnom hardveru, Izvode se u laboratoriji 18 na realnom hardveru,

povezanom sa PC-jem i razvojnim okruženjem preko povezanom sa PC-jem i razvojnim okruženjem preko FET debugger-a.FET debugger-a.

Informacije u vezi veInformacije u vezi vežbi: tnt.etf.rs/~oe4irsžbi: tnt.etf.rs/~oe4irs

Page 3: I RS

Razvojno okruženje za pisanje Razvojno okruženje za pisanje softverasoftvera

Za potrebe razvoja softvera koristi se razvojno okruženje Za potrebe razvoja softvera koristi se razvojno okruženje IAR Embedded Workbench. Kickstart verzija koja IAR Embedded Workbench. Kickstart verzija koja podržava pisanje svih aplikacija koje će biti razvijane u podržava pisanje svih aplikacija koje će biti razvijane u okviru kursa se može download-ovati sa sajta okviru kursa se može download-ovati sa sajta www.iar.com. .

U okviru paketa integrisani su editor, asembler, C U okviru paketa integrisani su editor, asembler, C kompajler, softverski simulator, kao i podvarijanta kompajler, softverski simulator, kao i podvarijanta simulatora koja zajedno sa FET debugger-om čini simulatora koja zajedno sa FET debugger-om čini emulator.emulator.

Page 4: I RS

Projektni zadatakProjektni zadatak 1 1

Napisati asemblerski projekat Napisati asemblerski projekat za razvojni sistem za razvojni sistem RS-MSP430F449 RS-MSP430F449 koji na komandu pritiska koji na komandu pritiska tastera BCD sadrtastera BCD sadržžaj registra R1aj registra R12 ispisuje na 2 ispisuje na jedan sedmosegmentni displej. Istovremeno, jedan sedmosegmentni displej. Istovremeno, dok je taster pritisnut jedna LE dioda treba da dok je taster pritisnut jedna LE dioda treba da svetli i obrnuto.svetli i obrnuto.Projekat treba da se sastoji iz jednog fajla Projekat treba da se sastoji iz jednog fajla asm.s43 u kome se nalazi glavni program koji asm.s43 u kome se nalazi glavni program koji testira pritisak tastera i fajla function.s43 u kome testira pritisak tastera i fajla function.s43 u kome se nalazi funkcija za ispis sadržaja registra na se nalazi funkcija za ispis sadržaja registra na displej WriteLeddisplej WriteLed

Page 5: I RS

Opis hardveraOpis hardvera

Razvojni sistem RS-Razvojni sistem RS-MSP430 poseduje MSP430 poseduje više funkcionalnih više funkcionalnih celina od kojih su one celina od kojih su one interesantne za ovaj interesantne za ovaj projekat prikazane na projekat prikazane na slicislici

Page 6: I RS

Organizacija softveraOrganizacija softvera

Pisanje dobrog softvera podrazumeva njegovu Pisanje dobrog softvera podrazumeva njegovu podelu na logičke celine, zgodne za samostalnu podelu na logičke celine, zgodne za samostalnu implementaciju. implementaciju.

Ovaj projektni zadatak se može podeliti na Ovaj projektni zadatak se može podeliti na nekoliko programskih celina:nekoliko programskih celina: Inicijalizacija resursa mikrokontroleraInicijalizacija resursa mikrokontrolera Deo glavnog programa koji vrši očitavanje tasteraDeo glavnog programa koji vrši očitavanje tastera Funkcija koja vrši uključivanje diodeFunkcija koja vrši uključivanje diode Funkcija koja vrši ispis sadržaja registra R12 na Funkcija koja vrši ispis sadržaja registra R12 na

sedmosegmentni displejsedmosegmentni displej

Page 7: I RS

Kreiranje projektaKreiranje projekta

S obzirom da je tražena asemblerska implementacija u S obzirom da je tražena asemblerska implementacija u dijalogu kreiranja projekta se izabira čist asemblerski dijalogu kreiranja projekta se izabira čist asemblerski projekatprojekat

Page 8: I RS

Osnovni fajlOsnovni fajlPredefinisani Template za asemblerski Predefinisani Template za asemblerski projekat je prikazan na sliciprojekat je prikazan na slici

Page 9: I RS

Hardverske specifičnostiHardverske specifičnosti

Msp430.h je opšti “include” fajl za celu Msp430.h je opšti “include” fajl za celu MSP430MSP430

Page 10: I RS

Hardverske specifičnostiHardverske specifičnosti

Unutar Unutar fajla fajla Msp430.h se vrši dalja redirekcija na Msp430.h se vrši dalja redirekcija na posebno izabran mikrokontrolerposebno izabran mikrokontroler

Page 11: I RS

Include fajlInclude fajlKorišćenje pojmova definisanih u “include” Korišćenje pojmova definisanih u “include” fajlu olakšava kodiranje ali i kasniji prelaz fajlu olakšava kodiranje ali i kasniji prelaz sa jednog na drugi mikrokontrolersa jednog na drugi mikrokontroler

Page 12: I RS

Program – niz asemblerskih Program – niz asemblerskih instrukcijainstrukcija

U ovom projektu biće korišćene instrukcije U ovom projektu biće korišćene instrukcije za:za: pristup portovima,pristup portovima, ispitivanje uslova,ispitivanje uslova, instrukcije uslovniinstrukcije uslovnihh skokova skokova i instrukcije za poziv i vraćanje iz i instrukcije za poziv i vraćanje iz

potprograma.potprograma.

Page 13: I RS

Glavni program Glavni program

S obS obzirom na tražene zirom na tražene zahteve po pitanju zahteve po pitanju funkcionalnosti, funkcionalnosti, dijagram toka dijagram toka programa bi trebalo programa bi trebalo da izgleda ovakoda izgleda ovako

Page 14: I RS

Glavni program – detekcija pritiska Glavni program – detekcija pritiska tasteratastera

• Algoritam detekcije pritiska tastera se zasniva na detekciji opadajuće ivice na ulaznom pin-uAlgoritam detekcije pritiska tastera se zasniva na detekciji opadajuće ivice na ulaznom pin-u• Glavni program mikrokontrolera treba ciklično (periodično) da očitava stanje ulaznog pin-a,poredi ga sa Glavni program mikrokontrolera treba ciklično (periodično) da očitava stanje ulaznog pin-a,poredi ga sa

vrednošću iz prethodnog očitavanja i u slučaju detekcije prelaska sa 1 na 0 izvršava zahtevanu radnju. U vrednošću iz prethodnog očitavanja i u slučaju detekcije prelaska sa 1 na 0 izvršava zahtevanu radnju. U ovom projektu zahteva se ispis sadržaja registra R10 da sedmosegmentni displej.ovom projektu zahteva se ispis sadržaja registra R10 da sedmosegmentni displej.

Page 15: I RS

Digitalni portoviDigitalni portovi

Svaki port se kontroliše sa četiri registraSvaki port se kontroliše sa četiri registraPxIN – ulazni registar (x=1-6)PxIN – ulazni registar (x=1-6)

Očitani bit =0 – na ulazu je nizak logički nivoOčitani bit =0 – na ulazu je nizak logički nivo Očitani bit =1 – na ulazu je visok logički nivoOčitani bit =1 – na ulazu je visok logički nivo

PxOUT – izlazni registar (x=1-6)PxOUT – izlazni registar (x=1-6) upisani bit =0 – na izlazu je nizak logički nivoupisani bit =0 – na izlazu je nizak logički nivo upisani bit =1 – na izlazu je visok logički nivoupisani bit =1 – na izlazu je visok logički nivo

PxDIR – registar selekcije ulaza ili izlaza (x=1-6)PxDIR – registar selekcije ulaza ili izlaza (x=1-6) upisani bit =0 – pin je ulazniupisani bit =0 – pin je ulazni upisani bit =1 – pin je izlazniupisani bit =1 – pin je izlazni

PxSEL – registar selekcije alternativnih funkcija (x=1-6)PxSEL – registar selekcije alternativnih funkcija (x=1-6) upisani bit =0 – ulazno/izlazna funkcija pinaupisani bit =0 – ulazno/izlazna funkcija pina upisani bit =1 – alternativna funkcija dodeljena nekoj periferijiupisani bit =1 – alternativna funkcija dodeljena nekoj periferiji

Page 16: I RS

Glavni program - kodGlavni program - kodGlavni Glavni

programprogram

Page 17: I RS

BIT instrukcijaBIT instrukcijaBIT instrukcija se koristi za testiranje stanja bita u registru.BIT instrukcija se koristi za testiranje stanja bita u registru.

Page 18: I RS

BIS i BIC instrukcijeBIS i BIC instrukcijeKoriste se za Set-ovanje/Clear-ovanje pojedinačnog bita u registru.Koriste se za Set-ovanje/Clear-ovanje pojedinačnog bita u registru.

Page 19: I RS

XOR instrukcijaXOR instrukcija

Logička instrukcija koja xor-uje podatak sa konstantom.Logička instrukcija koja xor-uje podatak sa konstantom.

Page 20: I RS

AND instrukcijaAND instrukcija

Instrukcija koja vrši logičko I dva podatka. Instrukcija koja vrši logičko I dva podatka.

Page 21: I RS

Instrukcije uslovnih skokova JZ i JNZInstrukcije uslovnih skokova JZ i JNZOve instrukcije izvršavaju ili ne skok u zavisnosti od stanja flag-a u SR.Ove instrukcije izvršavaju ili ne skok u zavisnosti od stanja flag-a u SR.

Page 22: I RS

Bezuslovni skok JMPBezuslovni skok JMP

Bezuslovni skok na adresu.Bezuslovni skok na adresu.

Page 23: I RS

Poziv Poziv potprogramapotprograma

Page 24: I RS

PotprogramPotprogram

Page 25: I RS

Povratak iz potprograma RETPovratak iz potprograma RET

Page 26: I RS

Direktive asembleraDirektive asemblera

Program predstavlja niz asemblerskih instrukcija Program predstavlja niz asemblerskih instrukcija i podataka smeštenih negde u memoriji. Da bi se i podataka smeštenih negde u memoriji. Da bi se asembleru reklo gde se i na koji način smeštaju asembleru reklo gde se i na koji način smeštaju ti blokovi instrukcija ti blokovi instrukcija ili podataka ili podataka koriste se koriste se direktive asembleradirektive asembleraDirektive asemblera su instrukcije kojima Direktive asemblera su instrukcije kojima programer vodi asembler u cilju prevođenja programer vodi asembler u cilju prevođenja asemblerskog koda na odgovarajući asemblerskog koda na odgovarajući željeni željeni načinnačin

Page 27: I RS

Direktive asembleraDirektive asemblera

Page 28: I RS

AsembliranjeAsembliranje

Asembliranje je proces prevodjenja asemblerskog (simboliAsembliranje je proces prevodjenja asemblerskog (simboličkogčkog) u ) u mamaššinski kod. Alatka koja to radi se zove asembler.inski kod. Alatka koja to radi se zove asembler.

Da bi proces bio izveden na odgovarajući način potrebno je podesiti Da bi proces bio izveden na odgovarajući način potrebno je podesiti odgovarajuće opcije.odgovarajuće opcije.

Page 29: I RS

Proces asembliranjaProces asembliranjaIzveštaj o procesu asembliranja nalazi se u tzv. list fajlu. Izveštaj o procesu asembliranja nalazi se u tzv. list fajlu.

Page 30: I RS

LinkovanjeLinkovanjeLinkovanje je proces u kome se mašinski kod iz različitih asemblerskih Linkovanje je proces u kome se mašinski kod iz različitih asemblerskih fajlova prevodi u jedan jedinstvenfajl koji se može spustiti u memoriju fajlova prevodi u jedan jedinstvenfajl koji se može spustiti u memoriju mikrokontrolera.mikrokontrolera.

Sama reč “link” ukazuje da se radi o povezivanju odvojenih delova, u našem Sama reč “link” ukazuje da se radi o povezivanju odvojenih delova, u našem slučaju glavnog programa i potrporgrama u jedinstvenu celinu.slučaju glavnog programa i potrporgrama u jedinstvenu celinu.

Page 31: I RS

LinkovanjeLinkovanjeNajvažnija uputstva za linker se nalaze uNajvažnija uputstva za linker se nalaze u

““linker command file”-ulinker command file”-u

Page 32: I RS

LinkovanjeLinkovanjeIzveštaj o radu linkera se nalazi u tzv. Izveštaj o radu linkera se nalazi u tzv. mapmap fajlu. U njemu je fajlu. U njemu je mapiranmapiran položaj blokova podataka ili koda u memoriji.položaj blokova podataka ili koda u memoriji.

Page 33: I RS

LinkovanjeLinkovanje

U linker fajlu se daje i pregled zauzetosti memorije.U linker fajlu se daje i pregled zauzetosti memorije.

Page 34: I RS

KompajliranjeKompajliranjeKomanda MAKE vrši kompajliranje i linkovanje projekta.Komanda MAKE vrši kompajliranje i linkovanje projekta.

Page 35: I RS

DebagovanjeDebagovanje

Debagovanje je proces u kome se uz pomoć softverskog simulatora, ili Debagovanje je proces u kome se uz pomoć softverskog simulatora, ili harverskog debagera vrši testiranje aplikacije.harverskog debagera vrši testiranje aplikacije.

Page 36: I RS

DebDebaaggoovanjevanje

Page 37: I RS

DebagovanjeDebagovanje

Page 38: I RS

Debug-ovanjeDebug-ovanje

Debagovanje u simulatoru podrazumeva simulaciju spoljašnjih događaja Debagovanje u simulatoru podrazumeva simulaciju spoljašnjih događaja relevenatnih za projekat.relevenatnih za projekat.

Dobra simulacija je ona koja najvernije simulira spoljašnje događaje.Dobra simulacija je ona koja najvernije simulira spoljašnje događaje.

U našem slučaju radi se o simulaciji pritiska na taster S4, koji se očitava U našem slučaju radi se o simulaciji pritiska na taster S4, koji se očitava preko bita 2 porta P1. preko bita 2 porta P1.

Najjednostavniji i najpregledniji vid simulacije je single steping. Problem je Najjednostavniji i najpregledniji vid simulacije je single steping. Problem je što to može dugo da potraje i zamorno je.što to može dugo da potraje i zamorno je.

Mnogo efikasniji vid debagovanja je postavljanjem Brekapoint-a na “dobra” Mnogo efikasniji vid debagovanja je postavljanjem Brekapoint-a na “dobra” mesta.mesta.

Generalno Breakpoint se postavlja tamo gde treba simulirati spoljnji događaj Generalno Breakpoint se postavlja tamo gde treba simulirati spoljnji događaj preko registra (u našen slučaju pritisak tastera), i tamo gde se očekuje preko registra (u našen slučaju pritisak tastera), i tamo gde se očekuje reakcija na taj događaj.reakcija na taj događaj.

Page 39: I RS

Debug-ovanjeDebug-ovanje

Page 40: I RS

Problem pristupa “poliranjem”Problem pristupa “poliranjem”

Page 41: I RS

DrugaDrugaččiji pristup - prekidiiji pristup - prekidi

Prekidi koji se generišu promenom stanja ulaznih pinova Prekidi koji se generišu promenom stanja ulaznih pinova portova P1 i P2 se kontrolišu preko tri registra portova P1 i P2 se kontrolišu preko tri registra PxIFG – registar flegova (x=1,2)PxIFG – registar flegova (x=1,2)

Očitani bit =0 – na tom pinu se nije dogodila promena koji izaziva Očitani bit =0 – na tom pinu se nije dogodila promena koji izaziva prekidprekid

Očitani bit =1 – na tom pinu se dogodila promena koji izaziva prekidOčitani bit =1 – na tom pinu se dogodila promena koji izaziva prekid

PxES – registar selekcije ivice (x=1,2)PxES – registar selekcije ivice (x=1,2) upisani bit =0 – prekid se događa na rastuću ivicu signala na tom upisani bit =0 – prekid se događa na rastuću ivicu signala na tom

pinupinu upisani bit =1 – prekid se događa na opadajuću ivicu signala na tom upisani bit =1 – prekid se događa na opadajuću ivicu signala na tom

pinupinu

PxIE – registar dozvole prekida (x=1,2)PxIE – registar dozvole prekida (x=1,2) upisani bit =0 – prekid nije dozvoljen za promenu stanja na tom pinuupisani bit =0 – prekid nije dozvoljen za promenu stanja na tom pinu upisani bit =1 – prekid je dozvoljen za promenu stanja na tom pinuupisani bit =1 – prekid je dozvoljen za promenu stanja na tom pinu

Page 42: I RS

Pristup preko prekidaPristup preko prekida

Page 43: I RS

Simulacija prekida 1Simulacija prekida 1

Page 44: I RS

Simulacija prekida 2Simulacija prekida 2

U modu rada sa simulatorom svi prekidi se U modu rada sa simulatorom svi prekidi se iniciraju isključivo preko opcija “Forced iniciraju isključivo preko opcija “Forced interrupts”.interrupts”.

I pod uslovom da je inicijalizacija svih I pod uslovom da je inicijalizacija svih registara korektno izvedena, naizmenično registara korektno izvedena, naizmenično menjanje stanja u ulaznom registru P1IN menjanje stanja u ulaznom registru P1IN neće izazvati prekid.neće izazvati prekid.

Page 45: I RS

TO BE CONTINUED TO BE CONTINUED