1 / 44

NRS

NRS. NAMENSKI RAČUNARSKI SISTEMI PART 2. Autor : Nenad Jovičić. Razvojno okruženje za pisanje softvera.

varuna
Download Presentation

NRS

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. NRS NAMENSKI RAČUNARSKI SISTEMI PART 2 Autor: NenadJovičić

  2. Razvojno okruženje za pisanje softvera Za potrebe razvoja softvera koristi se razvojno okruženje IAR Embedded Workbench. Kickstart verzija koja podržava razvoj 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.

  3. Projektnizadatak 1 Napisatiasemblerskiprojekatza razvojni sistem RS-MSP430F449 kojinakomandupritiskatastera BCD sadržajregistra 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

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

  5. 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

  6. Kreiranje projekta S obzirom da je tražena implementacija u asembleru u dijalogu kreiranja projekta se bira čist asemblerski projekat

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

  8. Hardverske specifičnosti Msp430.h je opšti “include” fajl za celu familijuMSP430

  9. Hardverske specifičnosti Unutar fajlaMsp430.h se vrši dalja redirekcija na posebno izabran mikrokontroler

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

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

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

  13. 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.

  14. 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

  15. Glavni program - kod Glavni program

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

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

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

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

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

  21. Bezuslovni skok JMP Bezuslovni skok na adresu.

  22. Poziv potprograma

  23. Potprogram

  24. Povratak iz potprograma RET

  25. 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 ilipodatakakoriste se direktive asemblera • Direktiveasemblerasuinstrukcijekojimaprogramervodiasembler u ciljuprevođenjaasemblerskogkodanaodgovarajućiželjeni način

  26. Direktive asemblera

  27. Asembliranje Asembliranje je procesprevodjenjaasemblerskog (simboličkog) u mašinskikod. Alatkakoja to radi se zoveasembler. Da bi proces bio izveden na odgovarajući način potrebno je podesiti odgovarajuće opcije.

  28. Procesasembliranja Izveštaj o procesu asembliranja nalazi se u tzv. list fajlu.

  29. 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.

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

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

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

  33. Kompajliranje Komanda MAKE vrši kompajliranje i linkovanje projekta.

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

  35. Debug-ovanje

  36. Debug-ovanje

  37. 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.

  38. Debug-ovanje

  39. Problem pristupa “poliranjem”

  40. Drugačijipristup - prekidi • Prekidikoji se generišupromenomstanjaulaznihpinovaportova P1 i P2 se kontrolišupreko tri registra • PxIFG – registarflegova (x=1,2) • Očitani bit =0 – na tom pinu se nijedogodilapromenakojiizazivaprekid • Očitani bit =1 – na tom pinu se dogodilapromenakojiizazivaprekid • PxES – registarselekcijeivice (x=1,2) • upisani bit =0 – prekid se događanarastućuivicusignalana tom pinu • upisani bit =1 – prekid se događanaopadajućuivicusignalana tom pinu • PxIE – registardozvoleprekida (x=1,2) • upisani bit =0 – prekidnijedozvoljenzapromenustanjana tom pinu • upisani bit =1 – prekid je dozvoljenzapromenustanjana tom pinu

  41. Pristup preko prekida

  42. Simulacija prekida 1

  43. 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.

  44. TO BE CONTINUED 

More Related