Gast
#1148446
Hallo, vor kurzem hatte ich Probleme mit meinem ext. RAM (32kx8). Daher wollte ich ein kleines Testprogramm schreiben, welches mir mal mitteilt, wann ein Schreib-/Lesefehler auftritt. Dazu reserviere ich Speicherblöcke der Größe sizeof(char)*x mittels malloc(). Danach schreibe ich Werte hinein, lese diese wieder und schaue ob da was im Argen lag. Der Block wird wieder frei gegeben, x wird inkrementiert und das ganze beginnt wieder von vorn. Ist nicht besonders schön, aber einfach :) Nun kam bei der Sache herraus, dass nach 10238 reserveirten Bytes ein Fehler auftrat. Komisch finde ich bei dieser Zahl nur, dass das ziemlich die Hälfte meines reservierten Heaps darstellt: --defsym=__heap_start=0x804000,--defsym=__heap_end=0x808fff Außerdem war es ein Schreib-/Lesefehler und kein Fehler bei der Reservierung des Speicherblocks. Mein Verdacht viel auf eine weiter kalte Lötstelle bei einem Adresspin. Falls ich also zu heap_start die 10238 Byte hinzurechne komme ich auf die Adresse 0x806801, welche keinen signifikaten Sprung in der binären Adresse aufweißt. Ich bin mir aber auch nicht sicher, ob man das so rechnen darf. Ich lasse mir von meinem Testprog auch die Adresse des reservierten Speicherblockes zurückgeben, welche beim Abbruch dez 10238 ist. Aber was zeigt mir diese Adresse? Einen Ort nach heap_start, also 10238 + 0x804000? Generell frage ich mich, ob dieses Verhalten noch normal ist, oder ob da wirklich noch wo der Wurm drin ist? PS: mein anderer Beitrag Beitrag "SRAM liefert flasche Werte zurück"