mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Absturz durch Array warum?


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
kann mir jemand von euch erklären warum mein Programm bei einer 
Arraydefinition von
uint8_t data[13];
abstürzt ( einen Hard Fault Handler auslöst) und bei
uint8_t data[12];

ganz normal weiterläuft?

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
13 ist die Unglückszahl. Du darfst dein Programm an keinem Freitag 
compilieren.


Im Ernst, das einzige, was man bei deinem Codefetzen vermuten kann, ist, 
dass du nicht mehr genug Speicher hast. Das wär dann aber eh ganz schön 
arg knapp, wenn das auf ein Byte ankommt.

Etwas mehr Code/Information wäre trotzdem nett ;)

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
konisch, bei mir gehts

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tom schrieb:

> abstürzt ( einen Hard Fault Handler auslöst) und bei

Nanu? Hat denn ein 8051 überhaupt einen Hard Fault Handler?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
42

Autor: <yxcvbnm,.- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein, das ist ein apple-µC und die zahl 13 ist nicht zertifiziert...

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann nimm halt immer nur Zwölfer. In vielen Aufzügen kannst du auch 
nicht in den 13. Stock fahren. Da stehste direkt im 14.

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ernsthaft:
Es könnte auch sein, dass dein Controller nicht damit klar kommt, dass 
da das Aligning kaputt geht und der Compiler das nich hinbekommt.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lasse S. schrieb:

> Es könnte auch sein, dass dein Controller nicht damit klar kommt, dass
> da das Aligning kaputt geht und der Compiler das nich hinbekommt.

Du solltest deine Glaskugel mal neu kalibrieren. Die läuft grad Amok.

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll sie bei der Informationslage auch anderes machen? ;)

Autor: Frank M. (ukw) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einer Datenmenge von 13 Bytes wird das Programm so schwer, dass es 
abstürzt. Das ist genauso wie bei einer Brücke, die nur für Laster bis 
12 Tonnen zugelassen ist. Bei 13 Tonnen stürzt die Brücke ein und der 
Laster ab.

Was lernen wir daraus? Bytes haben ein Gewicht, dreh den µC mal rum und 
schau, ob der unten schon ein Loch hat ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.