Forum: Mikrocontroller und Digitale Elektronik Reset Erkennung Fehlerhaftes Programm


von Reset_Erkenn (Gast)


Lesenswert?

Hallo gute µC-Gemeinde,

ich bin beim durchstöbern von Threads zu den Themen Reset, Software etc. 
pp auf folgende Fragestellung gekommen:

Fallbeispiel:

µC: Atmega644, nur ISP Programmierung, funktionierende HW, kein Glitch, 
alles tutti.
SW: WinAVR-GCC (vermutlich AVR-Studio)
SW-Prog: Etwas sinnvolles :-)

Es kommt ja schonmal vor, dass jmd. eine SW schreibt wo keine 
Fehlermeldung beim Compiler ausgegeben werden (gibt es ja schließlich) 
und der Compiler aus dem Code/ Prog heraus immer wieder einen Reset 
durchführt (JMP 0) etc. Angenommen ein User kann das nicht aus dem 
Assemlber-COde entnehmen und wundert sich, dass der µC immer wieder neu 
resettet wird. Ist es möglich (ohne ein JTAG) ein Reset festzustellen? 
Der Resetpegel wird dabei ja nicht von dem µC als Ausgang auf low 
gelegt. Der Reset ist ja ein Eingang. Oder wäre dies mit einem 
JTAG-ADapter möglich? z.B. wie dem USB-Prog 4.0 ?

Danke für die Diskussion.

Grüße

von Karl H. (kbuchegg)


Lesenswert?

Was genau willst du.

Es ist eine relativ einfache Übung das Programm so umzuändern, dass es 
bei einem Reset erst mal zb eine LED 1 Sekunde einschaltet. Kommt die 
LED, dann war ein Reset.

Ansonsten bleibt nur durch Beobachten und logisches Rückschlüsse ziehen, 
aus dem Verhalten des Programmes mögliche Resets zu erschliessen.

Die LED Methode ist bei weitem einfacher.

von spess53 (Gast)


Lesenswert?

HI

Im Register MCUCR kann nach einem Programmstart die Resetquelle 
ausgelesen werden. Muss halt nur entsprechend interpretiert werden.

MfG Spess

von Reset_Erkenn (Gast)


Lesenswert?

Hi,

danke der Antwort.

Das würde bedeuten, ich könnte eine ISR auf den Reset setzen?

Nr.   Adresse   Interruptname   Beschreibung
1   0x000   RESET   Reset bzw. Einschalten der Stromversorgung

wie z.B::
ISR (Reset_vect)
{}

von Karl H. (kbuchegg)


Lesenswert?

Reset_Erkenn schrieb:
> Hi,
>
> danke der Antwort.
>
> Das würde bedeuten, ich könnte eine ISR auf den Reset setzen?
>
> Nr.   Adresse   Interruptname   Beschreibung
> 1   0x000   RESET   Reset bzw. Einschalten der Stromversorgung
>
> wie z.B::
> ISR (Reset_vect)
> {}


Wozu?

1
int main()
2
{
3
  <<<-----   jetztz hier an dieser Stelle ist der µC Resettet worden
4
}

von Reset_Erkenn (Gast)


Lesenswert?

spess53 schrieb:
> HI
>
> Im Register MCUCR kann nach einem Programmstart die Resetquelle
> ausgelesen werden. Muss halt nur entsprechend interpretiert werden.
>
> MfG Spess

i.O., dann lese ich mal das Datasheet durch, ob ich dort ne Idee 
bekomme..

Danke

von Herr M. (herrmueller)


Lesenswert?

Reset_Erkenn schrieb:
> i.O., dann lese ich mal das Datasheet durch, ob ich dort ne Idee
> bekomme..


Das sollte der erste Schritt sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.