[elektro] Atmel Studio Debugger hiba

Bakcsa Zoltán bakcsa at gmail.com
Sat Feb 20 08:05:50 CET 2016


Szia,

A komplett program jelenleg csak az uart-ot, spi-t, SMC-t külső ramhoz, egy
external interruptot az egyik lábon és a systick timert használja. Ezek
mind jól működnek a szóban forgó kódrészlettől függetlenül is, ami amúgy
semmilyen perifériát nem használ, mivel egy protokoll implementáció
inicializáló részében van. Erősen gyanítom, hogy valahol egy pointert félre
címzek vagy egy tömböt a határain kívül írok valahol. Másra nagyon nem
tudok gondolni jelenleg. Ha viszont egy ilyen hiba miatt nem lehet
debugolni, akkor az elég szégyenteljes a debuggerre nézve.

A legjobban az idegesít, hogy el sem indul a program. Lehet akármilyen
hibás a protokoll implementációm, előtte még inicializálom a fent felsorolt
perifériákat. Ram-ot tesztelek, flash elérést tesztelek, van egy W5100 a
panelen, azt is inicializálom. Véleményem szerint ezeket akkor is le kéne
tudnom futtatni debug módban, ha amúgy a program további része digitalizált
fehér zaj. Vagy rosszul gondolom?

Üdv:
Zoli

2016-02-19 18:38 GMT+01:00 VFX <info at vfx.hu>:

> Hali!
>
> Van egy csomó dolog, amit nem lehet HW debuggolni. Ennél a procinál
> spec. nem tudom, de pl. pár HW Timer debugnál megáll, van pár utasítás
> amit szintén nem lehet debuggolni. Én megnézném milyen HE elemeket
> használ a prog részlet és ott keresgélnék.
>
> ÜDV. VFX.
>
>
>
>
> 2016.02.19. 18:01 keltezéssel, Bakcsa Zoltán írta:
> > Módosítanék a kérdésen, hagyjátok figyelmen kívül a korábbi részleteket.
> > Valószínűleg azok irrelevánsak.
> > Az lenne a kérdésem, hogy mi okozhatja azt, hogy egy program, ami
> lefordul
> > és amúgy látszólag helyesen fut, ha debugolni akarom, akkor nem indul el?
> > Hogy tudom kinyomozni, hogy a debugger hol hasal el?
> > Azt gyanítom, hogy a program olyan hibát tartalmaz, ami csak futás időben
> > derül ki. Viszont, a debuggerre már a program indulása előtt hatással
> van.
> > Lehetséges ez?
> > Kezdő vagyok még, ami a HW debug-ot illeti.
> >
> > Üdv:
> > Zoli
> >
> > 2016-02-19 14:18 GMT+01:00 Bakcsa Zoltán <bakcsa at gmail.com>:
> >
> >> Sziasztok,
> >>
> >> Egy furcsa jelenséggel kapcsolatban szeretnélek megkérdezni titeket.
> >>
> >> Szoftvert írok egy panelre, a következő a környezet:
> >> Proci: Atmel SAM4S16C, Programozó Atmel-Ice, IDE: Atmel Studio, C a
> nyelv,
> >> ASF-et használok.
> >>
> >> A program kb így néz ki: http://codepad.org/1CTANkEs
> >>
> >> Ez meg a leírás hozzá:
> >> A programban van egy super loop, ami flag-eket vizsgálgat, ezeknek
> >> megfelelően fut. Ezen a loopon belül van egy vizsgálat, aminek
> eredményétől
> >> függőn egy funkció meghívódik, de nem direkt módon, hanem egy
> >> funkció-pointeren keresztül.
> >>
> >> A lényeg, hogy ha a pointeren keresztül meghívott funkcióban bármilyen
> >> vizsgálatot beleírok, nem tudom debuggolni a programot a panelen
> (JTAG-en
> >> keresztül). Lefordul, Atmel Studio azt mondja, hogy fut, de nem. A
> program
> >> indulásakor villogtatok egy ledet, hogy lássam mikor indul a program, de
> >> még ez sem történik meg.
> >>
> >> Érdekes, hogy ha nem debugolni akarom, hanem csak letölteni a programot
> és
> >> futtatni, az megy, és látszólag helyesen. Már raktam bele egy rakás
> >> printf("Erre járok éppen") jellegű utasítást, de a program összetettsége
> >> miatt még nem tudom, hogy tényleg helyesen működik-e.
> >>
> >> Ha a pointeren keresztül meghívott funkcióból kiveszem az IF-eket, akkor
> >> tudom debugolni a kódot.
> >>
> >> A kérdés: Miért történik ez?? Látott már valaki ilyet?
> >>
> >> Üdv:
> >> Zoli
> >>
> >>
> > -----------------------------------------
> >            elektro[-flame|-etc]
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list