Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  STM32 Watchdogi reset märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 01.02.2016 14:22:21 STM32 Watchdogi reset vasta tsitaadiga

On ehk kellelgi aimu, mis võib häda olla, kui peale Watchdogi poolt välja kutsutud reseti programm enam tööle ei hakka?
Serialis väljastatakse ainult real 30 olev tekst ja edasi tuleb vaid [00] spämm.
Kood ise: https://developer.mbed.org/users/Mikk36/code/btGPS/file/2771afa123a2/main.cpp
Seriali väljund:
Hello World !
Watchdog caused reset.
[00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00]
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 01.02.2016 14:28:24 vasta tsitaadiga

mikk36, Kus see WATCHDOG_TIMEOUT defineeritud on? Kuskil sisse tõmmatud headeris?

Üldiselt võiks sellised loop'id interrupt'i tasemele viia, aga ma pole STM32'ga väga kursis, kas taimeri interruptid seal on ja kuidas täpselt toimivad.

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 01.02.2016 14:32:49 vasta tsitaadiga

jnt, settings.h'st tuleb see sisse.

Mis loopi silmas pead?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 01.02.2016 14:36:48 vasta tsitaadiga

Hmm, väike kahtlus oli, et äkki sinna tuleb mingi umbluu väärtus sisse ja siis hakkab ka watchdog imelikult käituma.

...
while(1) {
...


See loop ei lõppe kunagi ja ei jäta mingit aega ühelegi kõrvalprotsessile. (Nt watchdog)

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 01.02.2016 14:38:08 vasta tsitaadiga

jnt kirjutas:
Hmm, väike kahtlus oli, et äkki sinna tuleb mingi umbluu väärtus sisse ja siis hakkab ka watchdog imelikult käituma.

...
while(1) {
...


See loop ei lõppe kunagi ja ei jäta mingit aega ühelegi kõrvalprotsessile. (Nt watchdog)
Seda mõtlesin ajutiselt koodi kindlaks seiskamiseks välja kutsuda. Ilmselt halb viis, kuna segab ka Watchdogi rakendumist?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 01.02.2016 14:39:27 vasta tsitaadiga

mikk36, watchdog'i mõte ise-enesest ongi see, et kui mingi kood sul pikalt käima jääb (sinu loop siis igavesti), siis ta kutsub välja reset'i, kuna arvab, et midagi on koodis nihu läinud.

Aga see on üles-ehituse teema. Probleem on sellegi poolest see, et chip ei ärka peale reset'i normaalselt üles.

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 01.02.2016 14:41:17 vasta tsitaadiga

Isegi, kui selle while(1) sealt ära korjan, siis:
Hello World !
Slower rate
Watchdog caused reset.
[00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00]
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 01.02.2016 14:45:52 vasta tsitaadiga

Hmm...

Ega see watchdog, mida kasutad, et nõua ise hoopis sellist lähenemist, et sul küll on see igavene loop, aga selle loopi sees igas tsüklis pead ise koodist ütlema, et "ma olen elus ja terve"?

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 01.02.2016 14:52:22 vasta tsitaadiga

Jah ikka, read 51 ja 60: https://developer.mbed.org/users/Mikk36/code/btGPS/file/2771afa123a2/GPSHandler.cpp
Peale "Slower rate" teksti tuleb reset, kuna ühtegi täisrida ei saadud ja overflow'd ka ei tulnud (GPS kiip pole ühendatud).
Watchdogi mõte olekski, et kui NMEA lauseid enam sisse ei tule või ei töödelda, siis on midagi nihu ja tuleks proovida uuesti nullist alustada.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 01.02.2016 14:56:54 vasta tsitaadiga

mikk36, thumbs_up.gif

Paraku konkreetse watchdog'i reset'imist debugida väga ei oska... Ehk keegi teine siin foorumis on targem? icon_wink.gif

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 01.02.2016 16:19:15 vasta tsitaadiga

Niipalju olen vahepeal edasi jõudnud aru saada, et peale Watchdogi reseti muutub see MCU ülimalt aeglaseks mu käes justkui, aga mitte peale iga reseti.
Kood: https://gist.github.com/Mikk36/129ee57a08a63efdc171
Spoiler Spoiler Spoiler
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 01.02.2016 22:00:36 vasta tsitaadiga

Mõned mõtted:
1) Ega sealt "enable" pinilt mingit jama peale ei tule? See oleks üks variant, mille pärast LED aeglasemalt vilgub.
2) Ma ei tea küll, mis konkreetne kivi su plaadi peal on, aga näiteks STM32F0x1/2/8 manuaali järgi tuleks watchdogi veidi teistmoodi intsialiseerida, st su Watchdog.cpp'st võib asju puudu olla (punkt 1 ja 5):

tsitaat:
Configuring the IWDG when the window option is disabled
When the window option it is not used, the IWDG can be configured as follows:
1. Enable the IWDG by writing 0x0000 CCCC in the IWDG_KR register.
2. Enable register access by writing 0x0000 5555 in the IWDG_KR register.
3. Write the IWDG prescaler by programming IWDG_PR from 0 to 7.
4. Write the reload register (IWDG_RLR).
5. Wait for the registers to be updated (IWDG_SR = 0x0000 0000).
6. Refresh the counter value with IWDG_RLR (IWDG_KR = 0x0000 AAAA)
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 02.02.2016 00:27:35 vasta tsitaadiga

STM32F103-RBT6
Testkoodis enable pin jäi vanast ajast kogemata sisse, kuid mingit jama ei tohiks sisse tulla, kuna see pole kuhugi ühendatud ja on internal pullupiga üles tõmmatud.
Kontrollib üle täpsemalt selle IWDG initsialiseerimise, hetkel võtsin lihtsalt mingit libraryst selle koodi.
http://www.st.com/web/en/resource/technical/document/reference_manual/CD00171190.pdf
See peaks antud kivi manuaal olema, lehekülg 496 algab IWDG sektsioon.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 02.02.2016 11:17:35 vasta tsitaadiga

Kivi intsialiseerimise koodis võib ka buge olla.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 02.02.2016 11:40:57 vasta tsitaadiga

Teoorias on kivi täpselt sama, mis https://developer.mbed.org/platforms/ST-Nucleo-F103RB/ peal.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 02.02.2016 12:06:48 vasta tsitaadiga

Ma mõtlesin seda, et kusagilt mbedi sügavustest (ei ole ise seda kasutanud, täpsemalt ei tea) peab tulema kood, mis kohe pärast reseti jookseb ja kus konfitakse kellad ja muu säärane ja lõpuks su main välja kutsutakse. Kui seal midagi valesti tehakse, siis võib põhimõtteliselt juhtuda, et kivi hakkab aeglasemalt tööle või ei tööta üldse.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 02.02.2016 12:13:23 vasta tsitaadiga

Saan aru, mis silmas pead, lihtsalt mõtlen, et see ei tohiks määrata, et mul pole sama Nucleo plaat, vaid Olimexi analoog.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 02.02.2016 12:31:32 vasta tsitaadiga

Ses mõttes ei tohiks jah vahet olla.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 10.02.2016 23:27:49 vasta tsitaadiga

Vahepeal olen niipalju edasi saanud, et Watchdogi reset on nüüd alati korrektselt toimiv, kui see välja arvata, et miskipärast paneb üsna kiirelt pange kogu programm (umbes minutiga lihtsalt hangub main loop, eelmine lõpetab ära, aga uus ei hakka pihta) ja peale reseti ei kuule enam BufferedSerial GPS'ist midagi.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 11.02.2016 11:07:07 vasta tsitaadiga

Kui sul Serial Wire Debug võimalus on, siis kasuta seda. Kui ei ole, siis osta mõni Nucleo või Discovery plaat, nendel on vastav riistvara olemas ja saad oma plaadi külge ühendada.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 11.02.2016 19:00:18 vasta tsitaadiga

Teoreetiline võimalus on, aga see eeldaks jällegi mitmekümne euro jagu kulutust.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 12.02.2016 14:17:08 vasta tsitaadiga

Sai kulutus ära tehtud, tellisin ühe Nucleo plaadi ja sobiva ülemineku selle veidra pisikese 0,5 tollise headeri jaoks, kokku 25 eurot (9,5 € üleminek, 15,5 € Nucleo plaat).
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  STM32 Watchdogi reset
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.