Re: Programování STM32 - přerušení
Miroslav Mraz
mrazik na volny.cz
Středa Říjen 9 20:00:33 CEST 2019
Je docela dobré vědět, jak to krokování funguje uvnitř. Pokud krokujete
pomocí next, tj. necháváte proběhnout celý podprogram, gdb to musí
udělat tak, že krokuje po jednotlivých instrukcích a po každé instrukci
čte registry. Pokud tedy skočíte do něčeho jako je delay(), tak se to
vrtí uvnitř té funkce a mezi SWD, ST-Linkem, gdb serverem a samotným gdb
probíhá masivní komunikace a ta to hóóódně brzdí. Takže se konce možná
dočkáte až po několika minutách, ale protože to navenek není nijak
vidět, tak se vám zdá, že to zamrzlo.
Jediná rozumná metoda je vrazit si na konec funkce breakpoint, ale
protože hardwarových bkpt je omezený počet, musíte si předem rozmyslet,
co vlastně chcete ladit. Můžete si softwarový bkpt vrazit přímo do kódu,
tam omezení na počet není, ale zase nesmíte zapomenout ho z produkčního
kódu zase odstranit.
Ladění pomocí bkpt doporučuji, tak máte jistotu, že proběhne i
přerušovací rutina (nakonec bkpt můžete dát i do obslužné rutiny toho
přerušení). Při krokování bych si tím nebyl tak jistý, je otázka co
dělají při krokování jednotlivé periferie (a řadič přerušení).
Mrazík
Dne 09. 10. 19 v 19:15 cizek.milan na seznam.cz napsal(a):
> Tak jsem trochu pokročil.
> Ještě jsem to zjednodušil a postupně zakomentoval i ty některé _Init (RTC, ADC, ADC1) a už to přechází i přes ten delay.
> Také jsem si uvědomil, že má jen 1 krystal, tak jsem nechal jen LSE a zrušil HSE a vyhodil z projektu podporu USB...
> Také už mi to vypsalo část řetězce do UARTu, takež asi jsem na dobré cestě. Jdu zkoumat dál. Díky
>
> Jinak v případě přerušení se to při krokování chová jak, poznám to, že mi odskočí do metody obsluhující INT?
>
> M.
>
>> -----Original Message-----
>> From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Jaroslav Buchta
>> Sent: Wednesday, October 9, 2019 7:03 PM
>> To: hw-list na list.hw.cz
>> Subject: Re: Programování STM32 - přerušení
>>
>> Mam podezreni, ze se nezastavi, ale v rezimu krokovani se beh stale
>> prerusuje vcetne casovace a trvalo by to dlouho. Bud dejte step into,
>> kde by to melo vlezt do funkce, pokud chcete videt jak to dela, nebo
>> dejte na dalsi radek breakpoint a program do cekani normalne spustte.
Další informace o konferenci Hw-list