1 / 45

I RS

I RS. INTEGRISANI RAČUNARSKI SISTEMI PART 1. Nenad Jovičić nenad@etf.rs. 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

gabby
Download Presentation

I RS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IRS INTEGRISANI RAČUNARSKI SISTEMI PART 1 NenadJovičić nenad@etf.rs

  2. 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 • prikazane osnovne tehnike rada sa razvojnim okruženjem. • Laboratorijske vežbe: • 3 laboratorijske vežbe, svaka sa trajanjem do 4 sata, • Izvode se u laboratoriji 18 na realnom hardveru, povezanom sa PC-jem i razvojnim okruženjem preko FET debugger-a.

  3. Razvojno okruženje za pisanje softvera • Za potrebe razvoja softvera koristi se razvojno okruženje IAR Embedded Workbench. Kickstart verzija koja podržava pisanje svih aplikacija koje će biti razvijane u okviru kursa se može download-ovati sa sajta www.iar.com. • U okviru paketa integrisani su editor, asembler, C kompajler, softverski simulator, kao i podvarijanta simulatora koja zajedno sa FET debugger-om čini emulator.

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

  5. Opis hardvera • Razvojni sistem RS-MSP430 poseduje više funkcionalnih celina od kojih su one interesantne za ovaj projekat prikazane na slici

  6. Organizacija softvera • Pisanje dobrog softvera podrazumeva njegovu podelu na logičke celine, zgodne za samostalnu implementaciju. • Ovaj projektni zadatak se može podeliti na nekoliko programskih celina: • Inicijalizacija resursa mikrokontrolera • Deo glavnog programa koji vrši očitavanje tastera • Funkcija koja vrši uključivanje diode • Funkcija koja vrši ispis sadržaja registra R12 na sedmosegmentni displej

  7. Kreiranje projekta • S obzirom da je tražena asemblerska implementacija u dijalogu kreiranja projekta se izabira čist asemblerski projekat

  8. Osnovni fajl • Predefinisani Template za asemblerski projekat je prikazan na slici

  9. Hardverske specifičnosti • Msp430.h je opšti “include” fajl za celu MSP430

  10. Hardverske specifičnosti • Unutar fajla Msp430.h se vrši dalja redirekcija na posebno izabran mikrokontroler

  11. Include fajl • Korišćenje pojmova definisanih u “include” fajlu olakšava kodiranje ali i kasniji prelaz sa jednog na drugi mikrokontroler

  12. Program – niz asemblerskih instrukcija • U ovom projektu biće korišćene instrukcije za: • pristup portovima, • ispitivanje uslova, • instrukcije uslovnih skokova • i instrukcije za poziv i vraćanje iz potprograma.

  13. Glavni program • S obzirom na tražene zahteve po pitanju funkcionalnosti, dijagram toka programa bi trebalo da izgleda ovako

  14. Glavni program – detekcija pritiska tastera • Algoritam 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 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.

  15. Digitalni portovi • Svaki port se kontroliše sa četiri registra • PxIN – ulazni registar (x=1-6) • Očitani bit =0 – na ulazu je nizak logički nivo • Očitani bit =1 – na ulazu je visok logički nivo • PxOUT – izlazni registar (x=1-6) • upisani bit =0 – na izlazu je nizak logički nivo • upisani bit =1 – na izlazu je visok logički nivo • PxDIR – registar selekcije ulaza ili izlaza (x=1-6) • upisani bit =0 – pin je ulazni • upisani bit =1 – pin je izlazni • PxSEL – registar selekcije alternativnih funkcija (x=1-6) • upisani bit =0 – ulazno/izlazna funkcija pina • upisani bit =1 – alternativna funkcija dodeljena nekoj periferiji

  16. Glavni program - kod • Glavni program

  17. BIT instrukcija • BIT instrukcija se koristi za testiranje stanja bita u registru.

  18. BIS i BIC instrukcije • Koriste se za Set-ovanje/Clear-ovanje pojedinačnog bita u registru.

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

  20. AND instrukcija • Instrukcija koja vrši logičko I dva podatka.

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

  22. Bezuslovni skok JMP • Bezuslovni skok na adresu.

  23. Poziv potprograma

  24. Potprogram

  25. Povratak iz potprograma RET

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

  27. Direktive asemblera

  28. Asembliranje • Asembliranje je proces prevodjenja asemblerskog (simboličkog) u mašinski kod. Alatka koja to radi se zove asembler. • Da bi proces bio izveden na odgovarajući način potrebno je podesiti odgovarajuće opcije.

  29. Proces asembliranja • Izveštaj o procesu asembliranja nalazi se u tzv. list fajlu.

  30. Linkovanje • 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 mikrokontrolera. • Sama reč “link” ukazuje da se radi o povezivanju odvojenih delova, u našem slučaju glavnog programa i potrporgrama u jedinstvenu celinu.

  31. Linkovanje • Najvažnija uputstva za linker se nalaze u “linker command file”-u

  32. Linkovanje • Izveštaj o radu linkera se nalazi u tzv. map fajlu. U njemu je mapiran položaj blokova podataka ili koda u memoriji.

  33. Linkovanje • U linker fajlu se daje i pregled zauzetosti memorije.

  34. Kompajliranje • Komanda MAKE vrši kompajliranje i linkovanje projekta.

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

  36. Debagovanje

  37. Debagovanje

  38. Debug-ovanje • Debagovanje u simulatoru podrazumeva simulaciju spoljašnjih događaja relevenatnih za projekat. • 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 preko bita 2 porta P1. • Najjednostavniji i najpregledniji vid simulacije je single steping. Problem je što to može dugo da potraje i zamorno je. • Mnogo efikasniji vid debagovanja je postavljanjem Brekapoint-a na “dobra” mesta. • 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 reakcija na taj događaj.

  39. Debug-ovanje

  40. Problem pristupa “poliranjem”

  41. Drugačiji pristup - prekidi • Prekidi koji se generišu promenom stanja ulaznih pinova portova P1 i P2 se kontrolišu preko tri registra • PxIFG – registar flegova (x=1,2) • Očitani bit =0 – na tom pinu se nije dogodila promena koji izaziva prekid • Očitani bit =1 – na tom pinu se dogodila promena koji izaziva prekid • PxES – registar selekcije ivice (x=1,2) • upisani bit =0 – prekid se događa na rastuću ivicu signala na tom pinu • upisani bit =1 – prekid se događa na opadajuću ivicu signala na tom pinu • PxIE – registar dozvole prekida (x=1,2) • upisani bit =0 – prekid nije dozvoljen za promenu stanja na tom pinu • upisani bit =1 – prekid je dozvoljen za promenu stanja na tom pinu

  42. Pristup preko prekida

  43. Simulacija prekida 1

  44. Simulacija prekida 2 • U modu rada sa simulatorom svi prekidi se iniciraju isključivo preko opcija “Forced interrupts”. • I pod uslovom da je inicijalizacija svih registara korektno izvedena, naizmenično menjanje stanja u ulaznom registru P1IN neće izazvati prekid.

  45. TO BE CONTINUED 

More Related