Upload
allen-diaz
View
30
Download
5
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
IIRSRS
Autor: Nenad JovičićAutor: Nenad Jovičić
INTEGRISANI RAČUNARSKI SISTEMIPART 1
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
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.
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
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
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
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
Osnovni fajlOsnovni fajlPredefinisani Template za asemblerski Predefinisani Template za asemblerski projekat je prikazan na sliciprojekat je prikazan na slici
Hardverske specifičnostiHardverske specifičnosti
Msp430.h je opšti “include” fajl za celu Msp430.h je opšti “include” fajl za celu MSP430MSP430
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
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
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.
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
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.
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
Glavni program - kodGlavni program - kodGlavni Glavni
programprogram
BIT instrukcijaBIT instrukcijaBIT instrukcija se koristi za testiranje stanja bita u registru.BIT instrukcija se koristi za testiranje stanja bita u registru.
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.
XOR instrukcijaXOR instrukcija
Logička instrukcija koja xor-uje podatak sa konstantom.Logička instrukcija koja xor-uje podatak sa konstantom.
AND instrukcijaAND instrukcija
Instrukcija koja vrši logičko I dva podatka. Instrukcija koja vrši logičko I dva podatka.
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.
Bezuslovni skok JMPBezuslovni skok JMP
Bezuslovni skok na adresu.Bezuslovni skok na adresu.
Poziv Poziv potprogramapotprograma
PotprogramPotprogram
Povratak iz potprograma RETPovratak iz potprograma RET
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
Direktive asembleraDirektive asemblera
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.
Proces asembliranjaProces asembliranjaIzveštaj o procesu asembliranja nalazi se u tzv. list fajlu. Izveštaj o procesu asembliranja nalazi se u tzv. list fajlu.
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.
LinkovanjeLinkovanjeNajvažnija uputstva za linker se nalaze uNajvažnija uputstva za linker se nalaze u
““linker command file”-ulinker command file”-u
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.
LinkovanjeLinkovanje
U linker fajlu se daje i pregled zauzetosti memorije.U linker fajlu se daje i pregled zauzetosti memorije.
KompajliranjeKompajliranjeKomanda MAKE vrši kompajliranje i linkovanje projekta.Komanda MAKE vrši kompajliranje i linkovanje projekta.
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.
DebDebaaggoovanjevanje
DebagovanjeDebagovanje
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.
Debug-ovanjeDebug-ovanje
Problem pristupa “poliranjem”Problem pristupa “poliranjem”
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
Pristup preko prekidaPristup preko prekida
Simulacija prekida 1Simulacija prekida 1
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.
TO BE CONTINUED TO BE CONTINUED