[ developer94 @ 10.03.2012. 18:45 ] @
Konacno se skinuh sa simulatora i while(1) debug-a, al' izgleda ne uspeh da odem tako daleko...

Naime, nabavio sam klon PicKit 2 (tacnije cale ga je sklepao), i uspeo da ga povezem valjano, da isprogramiram sa njim, pa i da pokrenem debug.
E sad, problem je debagovanje, u toku kog mi pokazuje totalno random skokove iz funkcije u funkciju nicim pozvane.
Primera radi, u trenutku dodeljivanja varijabli, debugger skace na liniju koja ima identicno dodeljivanje, ali u potpuno izolovanom delu koda (u odnosu na taj to jest).
Da budem iskren, do sada nisam imao iskustva sa realtime debuggerima, a nisam ni nesto preterano upoznat sa radom C18tice kao kompajlera, ali moja pretpostavka je da je ovo neka vrsta kod optimizacije ili tako necega, posto debugger ulece u sred koda koji je identican liniji sa koje je skocio.

Da li je jos neko imao ovakva iskustva?
[ bogdan.kecman @ 11.03.2012. 23:15 ] @
1. da li si uzeo najnoviju verziju mplabx-a?
2. da li si kompajlirao kod pod debug opcijom?
3. prikazi kod koji debagiras

to sto si napisao realno nema smisla tako da .. pokazi sta radis pa da nadjemo problem
[ goran_68 @ 12.03.2012. 08:01 ] @
Iskljuci PicKit kao dibager iz price i probaj simulator MPLAB SIM. Pretpostavljam da ce manifestacija biti ista i da je u pitanju samo optimizacija koda.
[ developer94 @ 12.03.2012. 18:53 ] @
Nazalost simulator ne moze da prodje daleko, posto imam pointere na funkcije sa kojima se simulator u x-u ne igra bas naj... Medjutim, uspeo sam da dodjem do dela koji me zanima, i uistinu preskace!
Tako da jeste, izgleda je optimizacija koda u pitanju, hvala na potvrdjivanju!
Zasad mi deluje da sam izolovao problem i da se nalazi kod mene na ploci, a zanimalo me je samo da li se drugima desavalo da pickit ima takve ispade - generalizovano, nevezano za neko odredjeno parce koda.

Ukoliko budem imao jos problema, javicu se, ali zasad je ovo ono sta me je zanimalo, hvala svima!
[ bogdan.kecman @ 12.03.2012. 19:57 ] @
kada debagujes uvek treba da radis sa debug profilom gde je ugasena optimizacija koda inace nema mnogo smisla
[ developer94 @ 12.03.2012. 20:56 ] @
Hvala Bogdane!

Upravo to je bila karika koja je nedostajala! Kao sto rekoh, do sad nisam radio sa pravim debuggerima, tako da zaista nisam imao pojma da je trebalo da napravim debug friendly konfiguraciju...

EDIT: Da li Pickit treba da primecuje kada je taster pritisnut? Tj. ako dodje do promene stanja ulaznog pina, da li ce to biti apdejtovano u toku debuga?
EDIT #2: Ogroman previd sa moje strane. ADCON1 mi nije bio prebacen na digitalne ulaze, izvinjavam se!

[Ovu poruku je menjao developer94 dana 12.03.2012. u 22:41 GMT+1]
[ bogdan.kecman @ 13.03.2012. 05:33 ] @
Citat:
developer94
Upravo to je bila karika koja je nedostajala! Kao sto rekoh, do sad nisam radio sa pravim debuggerima, tako da zaista nisam imao pojma da je trebalo da napravim debug friendly konfiguraciju...


ne moras, ali onda realno moras da debagujes kroz asm kod posto ces kroz C kod da preskaces delove koji su optimizovani ... sve zavisi u kom si stadijumu razvoja aplikacije, do samog kraja treba da radis u debug configuraciji koja je -O0

mplabx po defaultu pravi samo jednu konfiguraciju ("default") ali imas na project properties "configuration manager" pa mozes da napravis klasicno debug i release konfiguracije .. a mozes i da drzis iskljucene sve optimizacije do samog kraja pa ih ukljucis pred kraj projekta (ja tako radim na primer)

Citat:
developer94:
EDIT: Da li Pickit treba da primecuje kada je taster pritisnut? Tj. ako dodje do promene stanja ulaznog pina, da li ce to biti apdejtovano u toku debuga?


koji taster ?
ako se promeni stanje nekog ulaznog pina na pic-u, da, pickit ce to updateovati .. doduse, ako ti npr imas breakpoint na liniji 100, on kada stane na liniju 100 svi registri ce biti updateovani kako treba, dakle sva stanja svih pinova ce biti vidljiva u debageru, ali sad dok ti stojis na liniji 100, tj dok je pic zakocen na toj poziciji, to mozes da menjas stanja do prekosutra to se ne vidi nigde, ako sada uradis "step" i skocis na liniju 101, on ce opet da updateuje sva stanja svih pinova ... dakle kada je zakocen ti vidis sva stanja svih pinova u tom trenutku ali nemas vidljive promene pinova dok je pic zakocen ... valjda sam objasnio razumljivo :)

[ developer94 @ 13.03.2012. 15:56 ] @
Sredjeno je sve, kao sto rekoh, problem je bio do mene ipak. A ponasanje u toku debug-a si odlicno objasnio, tako da hvala u svakom slucaju!