Forum: Mikrocontroller und Digitale Elektronik Absturz durch Array warum?


von Tom (Gast)


Lesenswert?

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

ganz normal weiterläuft?

von Lasse S. (cowz) Benutzerseite


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 ;)

von Tobi (Gast)


Lesenswert?

konisch, bei mir gehts

von (prx) A. K. (prx)


Lesenswert?

Tom schrieb:

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

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

von Peter D. (peda)


Lesenswert?

42

von <yxcvbnm,.- (Gast)


Lesenswert?

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

von Gerd (Gast)


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.

von Lasse S. (cowz) Benutzerseite


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.

von (prx) A. K. (prx)


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.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Was soll sie bei der Informationslage auch anderes machen? ;)

von Frank M. (ukw) (Moderator) Benutzerseite


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 ;-)

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.