Forum: Mikrocontroller und Digitale Elektronik Absturz des Controller!?


von Schnubb (Gast)


Lesenswert?

Hallo Leute!

Ich habe zur Zeit ein Problem mit einem Mikrcontroller (denke ich 
zumindestens). Es tritt folgendes auf. Dem Controller wird über Putty 
oder Net Cat Befehle zur Steuerung übertragen. Nach einer unbestimmten 
Anzahl an Eingaben hängt sich der Controller nun auf. Könnte sich jemand 
von euch vorstellen wo erstmal grob das Problem liegen könnte?
Dazu muss ich sagen, dass ich nicht all zu viel Ahnung von 
Microcontrollern habe. Ich begleite dieses Projekt hauptsächlich nur, da 
angenommen wurde, dass es sich um ein Netzwerkproblem handelt.

Besten Dank :)

von Testfall (Gast)


Lesenswert?

Das wird schwierig ohne Details.

Grundsätzlich:
Stimmt die Baudrate?
Läuft die Computerseite noch?
Wird irgendwas heiß?

von Peter (Gast)


Lesenswert?

Schnubb schrieb:
> habe. Ich begleite dieses Projekt hauptsächlich nur, da
> angenommen wurde, dass es sich um ein Netzwerkproblem handelt.

auch wenn es Netwerkprobleme sind, darf der µC nicht abstürzen. Also 
wird es vermutlich doch ein Software fehler sein.

Aber ohne Quellcode und angabe des µC wird dir hier niemand weiter 
helfen können.

von Dussel (Gast)


Lesenswert?

Grundsätzlich kann man bei einigermaßen ordnungsgemäßer Schaltung davon 
ausgehen, dass es am Programm liegt. Da können zum Beispiel Stack und 
Daten-RAM kollidieren, wenn rekursiv Unterprogramme aufgerufen werden 
oder zu viele Daten in den RAM geschrieben werden.

von Schnubb (Gast)


Lesenswert?

schon ein mal vielen Dank für die Antworten. Es wird das AVR32 EVK1100 
benutzt. Kann man denn irgendwie überprüfen wieviel Daten in den RAM 
geschrieben werden?

von Ben _. (burning_silicon)


Lesenswert?

> Absturz des Controller!?
Bei Abstürzen immer erst die µC-Bergwacht rufen! ;)

SCNR

von cskulkw (Gast)


Lesenswert?

Wenn Du mit dem EVK1100 arbeitest, dann benutzt Du bestimmt das ASF, 
oder?

Weil Du keine Info hast, wo der Prozessor steht, gehe davon aus, dass Du 
keinen Debugger benutzt, oder? Denn dann bräuchtest Du nur den Prozessor 
anhalten und siehst, wo die Gurke liegt. Übrigens siehst damit auch den 
Füllgrad des Empfangsspeichers im RAM.

Also, den UC3A ohne Debugger zu programmieren, ist keine leichte Sache. 
Finde ich - aber das mag man anders sehen. Wenn Du da Fehler suchst, 
dann brauchst Du viel Zeit und Ausdauer.

Benutzt Du das FREERTOS? -> Weil die Kontext-Switcherrei machte die 
Fehlersuche um eine Dimension komplizierter.


So würde ich ohne Debugger vorgehen (JTAGICE mkII oder CLONE - der soll 
ja auch recht brauchbar laufen.) Es muß kein ONE! sein.

Wenn Du dem Board Nachrichten schickst, mußt Du doch wissen, wo in 
Deinem Code der Text rausfällt, damit Du darauf reagieren kannst. 
Benutze die Print_Debug-Funktionen aus einer der anderen Beispiele und 
schaue über UART / RS323 auf Deinem PC z. B. über Hyperterminal, was und 
wieviel ankommt.

So hättest Du die Möglichkeit über die Coderückverfolgung die Stelle des 
Aufhängens einzukreisen. Aber das wird sehr mühsam.

Aber ehrlich: Schaff Dir einen Debugger an. Der UC3A ist einfach zu 
groß, um durch aktives Nachdenken die Fehler aufzuspüren. Wie gesagt, 
ich kenne auch einen Crack, der mich einen Warmduscher nennt. Aber d. h. 
ja nicht, dass das Programmieren nur den Cracks vorbehalten ist.

Viel Erfolg.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> Nach einer unbestimmten Anzahl an Eingaben
> hängt sich der Controller nun auf.

HAt das System (bestehende sendende Komponente mit Putty, empfangende 
Controller-Komponente) schon mal vollständig fehlerfrei funktioniert, 
oder ist dieses ein "initialer" Fehler im Systen (also noch nie richtig 
gelaufen?

Konntest du auch schon mal die Sendende Hardware tauschen, wie verhält 
es sich dann?

Liegen widrge Umgebungsbedingungen zwischen oder am Sender und Empfänger 
vor (Lange Leitungen, schäbige Kabel, schlechte Spannungsversorgung 
etc)?

von Schnubb (Gast)


Lesenswert?

Ich habe mal eine dumme Frage: Wie benutze ich denn den Debugger und 
woher bekomme ich den?

Mein Vorgänger meinte, dass als er fertig war die Software zu schreiben 
alles funktioniert hat. Dann wurde sie hier in Betrieb genommen und nun 
hängt es. Aber laut dem, der die Hardware gemacht hat funktioniert alles 
einwandfrei.
Kabel und so habe ich alles schon mal ausgetauscht und auch eine 
Direktverbindung zu meinem Laptop aufgebaut. Auch mit anderen Pcs 
funktioniert es nicht.

von Matthias R. (mons)


Lesenswert?

Watchdog einfügen. Dann resettet sich der Controller wieder, wenn er 
sich aufhängt.
Natürlich keine Lösung auf Zeit.

von Florian S. (tornado) Benutzerseite


Lesenswert?

Andere Frage:
Wie ist die Verbindung von Controller und PC?

Ich hab hier n ähnliches Problem, habs erst au aufn Controller 
geschoben, der was aber net. Konstellation hier:
Attiny, MAX232, Prolific RS232-USB-Wandler. Letzterer stürzt 
unregelmäßig ab, also die Komponente bei der ichs am wenigsten erwartet 
hatte.
Andere Idee: Timing-Problem? Wieder am Beispiel von RS232: Angenommen, 
der Controller hat keinen Quarz, läuft auf 8Mhz und kann nur 9650Baud 
statt 9600Baud erzeugen. Das funktioniert ne ganze Weile gut, aber 
irgendwann verliert einer der beiden Partner n paar Bits und das ganze 
System gibt den Löffel ab.

Zum Test wenn du keinen Debugger hast (und die Schaltung verändern 
kannst) häng doch einfach ne LED hin, die du Blinken lässt. Wenn der 
Controller abstürzt blinkt da au nix mehr :)

Gruß

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Schnubb schrieb:
> Aber laut dem, der die Hardware gemacht hat funktioniert alles
> einwandfrei.
Glaub dem kein Wort!
Denn offensichtlich funktioniert es ja gerade nicht...

> Aber laut dem, der die Hardware gemacht hat funktioniert alles
> einwandfrei.
Das würde ich meinem Softie auch erst mal sagen. Dann hätte ich 
zumindest mal bis zum Wochenende Ruhe... ;-)

> Mein Vorgänger meinte, dass als er fertig war die Software zu schreiben
Noch ein Lügner!
Software ist nie fertig. Sie muß nur irgendwann ausgeliefert werden....

> Nach einer unbestimmten Anzahl an Eingaben hängt sich der Controller
> nun auf.
Das tut er vermutlich nicht. Denn wohin sollte er sich hängen?
Also wird z.B. eher irgend ein EMV-Spike ein Byte senden, mit dem die 
Software nichts anfangen kann und sich verklemmt, und evtl. in alle 
Ewigkeit auf ein anderes Byte warten, das nie kommt...

>  Nach einer unbestimmten
> Anzahl an Eingaben hängt sich der Controller nun auf.
Wie unbestimmt?
Nach 10 Tastendrücken oder nach einem Tag?

Probiers mal so:
Lass den uC nur mit der Spannungsversorgung laufen (sonst kein anderes 
Kabel angeschlossen) und steck nach 2 Stunden das Übertragungskabel an. 
Bekommst du dann noch eine Antwort, steckst du diese Kabel wieder aus 
und konntrollierst 2 Stunden später nochmal...

von Schnubb (Gast)


Lesenswert?

Auf dem EVK ist eine LED die blinkt, wenn der Controller in Betrieb ist. 
Wenn ich keine Angaben mache, läuft der Controller auch die ganze Zeit 
durch. Erst durch Steuerungseingaben hört er auf zu Arbeiten. Dies 
erkennt man dann auch an der LED. Entweder sie ist aus oder sie leuchtet 
die ganze Zeit (ich dachte, das liegt daran, in welchem "Zustand" sich 
die LED befindet, wenn nix mehr geht). Die Verbindung zu dem Controller 
stellt man mit einem Netzwerkkabel her.

von cskulkw (Gast)


Lesenswert?

Sag Schnubb,

Du hast ein EVK1100. Womit kompilierst Du die Software und wie lädst Du 
Deine Software runter? Oder dokterst Du nur von außen hilfslos rum und 
wunderst Dich, dass das drinnen im Prozessor nichts so funktionert, wie 
Du es Dir vorstellst?

Thema Debugger:

Regulär kostet der ATJTAGICE mkII so ca 280 - 300 Euro. Wenn man bei den 
Distributoren aufpasst Ineltek, Spörle, EBV, etc. gibt es gelegentlich 
Bundel für weniger als die Hälfte + einem Board.

Wenn Dir das alles zu teuer sein sollte, gäbe es noch den AVRDRAGON für 
ca. 50 - 60 Euro. Den muß man auf dem EVK1100 an dem JTAG-Port (polige 
Stiftleiste anschließen) und natürlich auf der anderen Seite an den PC 
(USB). Für den DRAGON soll es eine Firmware geben, mit der man den 
AT32UC3A0512 flashen und debuggen kann. Mittlerweile gibt es das 
AVRStudio5.0 in der beta Version. Kann man meiden, man ist dazu aber 
nicht verpflichtet.

Übrigens, wenn Dir das mit der "print_debug"-Funktion über RS232 zu 
schwierig sein sollte, könntest Du eine Textausgabe auf dem LC-Display 
dip204 machen. Auch dafür gibt es fertige Funktionen, die nur aufgerufen 
werden müssen und man sieht eine Reaktion. Ein Blickcode über eine 
Leuchtdiode hilft einem irgendwann nicht mehr weiter.

...

von Schnubb (Gast)


Lesenswert?

So nach ein bisschen rumstöbern und wenn man die Leute 10 mal fragt habe 
ich nun dieses Gerät gefunden. Den JTAGICE mkII um die Programme 
draufzuspielen. Nun stehe ich noch vor der Aufgabe in den Debug-Modus zu 
kommen und diesen richtig zu bedienen. Kennt da jemand ein gutes 
Tutorial, wo das für blutige Anfänger Schritt für Schritt erklärt wird?

Vielen Dank :)

von cskulkw (Gast)


Angehängte Dateien:

Lesenswert?

Beim AVR32Studio (neuste: Studio 2.6 mit der Toolkette 2.4.2) gibt es 
den RUN-Button. Dabei wird der Code "nur" ohne Debugkontrolle 
heruntergeladen.

Rechts oder links daneben gibt es den Käfer-Button. Wenn Du den drückst, 
dann wechselt das View in eine andere Darstellung. Der Buildlauf 
startet, falls Änderungen vorhanden sind, und wenn die Kompilation 
erfolgreich, startet der Download.

Vorher über Scan-Targets den Debugger am PC finden lassen. -> Properties 
Prozessor und Board auswählen.

Das Studio 2.6 will unter Projekt/Properties noch mals ein Target 
mitgeteilt bekommen. Früher ging das irgendwie automatisch.

Viel Spaß beim Eclipse exploren.

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.