Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dibagiranje softvera mikrokontrolera integerisanim dibagerom

[es] :: Elektronika :: Mikrokontroleri :: Dibagiranje softvera mikrokontrolera integerisanim dibagerom

Strane: 1 2

[ Pregleda: 6081 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: Dibagiranje softvera mikrokontrolera integerisanim dibagerom20.01.2009. u 18:14 - pre 187 meseci
Da, ja se i pomazem onako kako si ti naveo. Ali svako ubacivanje pomocne varijable zahteva ponovni prevod i programiranje MCU-a. Zeleo sam to da izbegnem.

Danas sam probao varijantu sa aktiviranjem SWI ali na triger koji se desava u moda kada se postigne adresa B pod uslovom da je pre toga program prosao kroz A. To je dobro radilo. Sada treba osmisliti SWI proceduru.

Za postavljanje A i B ne treba ponovno prevodjenje programa, Preko BDM linije upisu se adrese u ova dva komparatora. Ostaje mi da u RAM-u odvojim 2 bajta za pointer na varijablu koju zelim da kontrolisem, a SWI procedura ce je procitati i smestiti na jos jedno odvojeno mesto u RAM-u koje ce sadrzati vrednost varijable u trebutku kada se desio triger. Jos ostaje da se u SWI proceduri aktivira sledeca sesija dibagiranja. Procenjujem da ce SWI procedura potrositi oko 40 ciklusa sto na 20MHz iznosi 2us. Ovo moram detaljnije da proverim.

Kada sam mislio na realno vreme smatrao sam da budu zadovoljene 2 stvari: 1) da MCU radi i dalje punom brzinom i 2) da se vrednost varijable dobije na mestu koje je oznaceno u programu. Pri tome nisam mislio da se ono istovremeno pojavi na monitoru, vazno je da znam da je to vrednost u toj tacki programa.

Izbegao bih da ostavim sirove mogucnosti BDC-a jer prosecni programer treba da uci kako on radi da bi ga koristio. Bolje je izdvojiti neke vazne stvari i predstaviti ih razumljivo i da budu lake za koriscenje.

Vrlo mi je interesantna statistika koliko je puta program prosao kroz koju naredu (adresu na kojoj je kod naredbe). Ovo se teoretski moze dobiti ali zahteva da se snimanje jednog ovakvog histograma vrsi mozda i ceo dan. No to je sada sporedno, videcu.

Hvala na trudu.
Pozdrav.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Dibagiranje softvera mikrokontrolera integerisanim dibagerom20.01.2009. u 21:27 - pre 187 meseci
Citat:
Da, ja se i pomazem onako kako si ti naveo. Ali svako ubacivanje pomocne varijable zahteva ponovni prevod i programiranje MCU-a. Zeleo sam to da izbegnem.

Ja sam mislio na to da odmah u startu odjednom ubacis sve pomocne varijable za sve tacke koje te interesuju, tako da ne moras nanovo prevoditi za svaku posebno nego ih imas sve od pocetka. Zahtjeva vise memorije, ali valjda se moze naci negdje 10-tak byteova.

Citat:
Izbegao bih da ostavim sirove mogucnosti BDC-a jer prosecni programer treba da uci kako on radi da bi ga koristio. Bolje je izdvojiti neke vazne stvari i predstaviti ih razumljivo i da budu lake za koriscenje.

Koliko sam ja shvatio iz brzinskog citanja poglavlja o tom BDC, nema tu neki veliki broj mogucnosti koji bi sad trebalo prilicno izucavati. Mogao bi da krenes od onih njegovih modova koje si u prethodnoj poruci izlistao i mislim da bi time pokrio valjda sve mogucnosti. Meni bi se licno svidjao npr. ovakav korisnicki interfejs:

1. Izlistas sta BDC moze da uradi (kao u prethodnoj poruci) uz kratko objasnjenje od 1-2 recenice npr.
2. Korisnik klikne na mod koji hoce.
3. U zavisnosti od izabranog moda pojavi se potreban broj prozorcica (adresa A, adresa B, tag ovaj, tag onaj....moze i kratko objasnjenje pored prozorcica) u koji korisnik ukuca potrebne parametre za taj mod koji su njemu u fokusu. Ostala podesavanja koja su fiksna za taj mod (razni konfiguracioni bitovi/registri) odradi tvoj program automatski tako da se korisnik oslobodi tih detalja, ali time i dalje ne gubi nista od funkcionalnosti.
4. Gotovo

Citat:
Vrlo mi je interesantna statistika koliko je puta program prosao kroz koju naredu (adresu na kojoj je kod naredbe). Ovo se teoretski moze dobiti ali zahteva da se snimanje jednog ovakvog histograma vrsi mozda i ceo dan. No to je sada sporedno, videcu.

Ako imas slobodan neki izlazni pin onda u kod funkcije koja te interesuje dodaj da svaki put toglle-uje taj pin kad bude pozvana (to je jedna instrukcija nece ti mnogo usporiti program). Zakaci spolja na taj pin neki brojac i nek broji dok se ne umori i imaces informaciju koliko je puta pozvana ta funkcija.
Isto tako mozes da pratis i varijable pod uslovom da imas dovoljno slobodnih pinova da je saljes preko izlaznih pinova (paralelno/redno) ili cak preko integrisane serijske veze. Vecina danasnjih uC-ova ima i DMA tako da upisujes te varijable u neki blok u memoriji, pa kad se blok napuni, prepustis ga DMA kontroleru da ih on liferuje serijskom interfejsu, CPU radi dalje svoj posao. Uz svaki "snimak" varijable dodas i neki "tag" koji ce ti oznacavati u kojoj tacki programa je taj snimak napravljen.


 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: Dibagiranje softvera mikrokontrolera integerisanim dibagerom21.01.2009. u 11:04 - pre 187 meseci
Po pitanju integrisanja funkcija BDM-a u razvojno okruzenje tvoj predlog mi je prihvatljiviji jer je laksi. Tada odgovornost da li ce programeru BDM uraditi ono sto zeli biti na njemu. Ali, vidis, od ne znam koliko ucesnika na ovom podforumu, kada su neke ozbiljnije teme tu si ti i mozda jos par ljudi - to je realnost.

Sugestija za dobijanje histograma je OK, sobzirom da nisam to detaljnije razmatrao, ali imam osecaj da se moze uraditi na vise nacina.

Hvala,
Pozdrav.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Dibagiranje softvera mikrokontrolera integerisanim dibagerom

Strane: 1 2

[ Pregleda: 6081 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.