[elektro] ST-LINK/V2 debug
Bali Zoltan
eltexto at freemail.hu
Mon Jul 13 14:13:36 CEST 2015
Na de, ahova tettem a töréspontot,
ott még nincs kiolvasva a captured
value regiszter, aminek a mellékhatása
az, hogy törli a flaget. Ott még látnom kellene.
DE nem látom és nem is jó az IT további lefutása.
Viszont ha nem monitorozom a TIM3 regisztereit,
igaz hogy nem látom ekkor, de ilyenkor lépésenként
is jól lefut.
Üdv. Zoli
2015.07.13. 12:07 keltezéssel, elight írta:
> Szia,
>
> nem tudom pontosan,
> de a hardveres debuggereket azért hagytam
> már a kezdetek kezdetén francba , mert az
> INT -el kapcsolatos reg-eket általában
> nem tudtam igazán jól debuggolni..
> A másik probléma , az időkritikus INT -ek
> túlfuthattak tesztelés alatt azon az időszeleten
> amely megkívánt.. És ez nehezen azonosítható
> jelenségeket produkált , még egy százszor tesztelt
> jól működő részletben is.
>
> Inkább választok 4 lábbal nagyobb proc-ot
> és Tesz_1 ... Teszt_4 biteket nézegetem az analizátoron
> meg néhány global debug capture (elkapási) változót is bevetek,
> amelyeket a főprogramban íratok ki.
> Kicsit lassabb , de jól elhelyezett debug részekkel
> amelyek ráadásul tologathatók, előbb - utóbb : )
> kikövetkeztethető a aktuális működés..
> Persze a futási időkre esetleg itt is ajánlatos figyelni !
>
> Vagy nagyobb rendszernél egy egy részt külön
> megírok és önállóan tesztelem,
> és csak ha okés, akkor illesztem be a rendszerbe
> ( ha lehetséges ).
>
> Üdv István
>
>
> 2015-07-10 18:23 keltezéssel, Bali Zoltan írta:
>> Hali!
>>
>> Ez most vajon minek a hibája?
>>
>> A capture eseményeknek van egy-egy flagje.
>> Pl. TIM3->SR.CC1IF
>>
>> Ehhez a leírás:
>> "
>> If channel CC1 is configured as input:
>> This bit is set by hardware on a capture. It is cleared by software or
>> by reading the
>> TIMx_CCR1 register.
>> 0: No input capture occurred.
>> 1: The counter value has been captured in TIMx_CCR1 register (An edge
>> has been detected
>> on IC1 which matches the selected polarity).
>> "
>>
>> Na most, debug alatt, ha nézem a TIM3 regisztereket,
>> felfutó élre nem fut le a CC1IF-el szelektált
>> capture kezelő ág. Közben látom hogy a CC1IF és másik
>> sincs bebillenve. Cserébe az overcapture(CC1OF, kicsit
>> zavaró de nem lepődök meg) flag van bebillenve(both edge
>> és van lefutó is pár us-ra). Így, lépésenként soha nem
>> fut eseménykezelő ágra, hisz az eseményt jelző flag
>> nem jelez. Ha futtatom a programot és nem állítom le,
>> akkor jól működik. Ha leállítom, de nincs regiszter ablak,
>> akkor lépésenként is jó. Arra gondolok, hogy
>> a debugger TIMx_CCR1 kiolvasására törlődik a fenti
>> idézet alapján a flag. Nem jó a kiolvasási sorrend
>> vsz. Először a status reg-et kellene olvasni a
>> debuggernek, aztán a többit, szerintem. De ekkor is zavaró
>> lenne, ha még egy lépést nyomunk...
>> Vajon az IDE-debug cseszi el a sorrendet, vagy az ST-LINK/V2?
>> Volt egy firmware upgrade is, de nem változott.
>> Így azért elég gáz. Egy fél nap kellet, hogy rájöjjek
>> mi ez a furcsa viselkedés.
>>
>> Köszi
>>
>> Üdv. Zoli
>>
>> -----------------------------------------
>> elektro[-flame|-etc]
>>
>
>
> -----------------------------------------
> elektro[-flame|-etc]
>
>
More information about the Elektro
mailing list