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?
|
Forum: Mikrocontroller und Digitale Elektronik Absturz durch Array warum?Hallo, kann mir jemand von euch erklären warum mein Programm bei einer Arraydefinition von
abstürzt ( einen Hard Fault Handler auslöst) und bei
ganz normal weiterläuft? 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 ;) Tom schrieb: > abstürzt ( einen Hard Fault Handler auslöst) und bei Nanu? Hat denn ein 8051 überhaupt einen Hard Fault Handler? 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. 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. 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. 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.
|
|