Out of Memory

Gast #351129
Lesenswert?

Hallo,

ich habe ein Problem beim brennen des ATtiny15 mit dem Programm von
Herrn Johann Aichinger (ATProg30).
Das Brennen von At90S2313 und AT90S8515 klappt problemlos.
Bei Brennen des Programms auf den tiny15 wird mir folgende
Fehlermeldung von ATProg30 ausgegeben: Out of memory: 0000
Das Programm ist mehr als einfach gehalten und sollte eigendlich nicht
das Problem darstellen.
Ebenfalls suche ich ein gutes Brennprogramm welches ähnlich das von
Herrn Aichinger ist, jedoch von Vornherein mehr als 1kb brennen kann.
Gibt es da welche(ich gehe mal davon aus, eben auch welche die meinen
Leichtbaubrenner vorerst unterstützen, demnächst gibts einen neuen über
Com-Port)oder sollte ich dieses freischalten lassen?

Danke und Gruß
Patrick
Gast #351131
Lesenswert?

Das habe ich doch auch garnicht behauptet, auf meiner Liste der zu
brennenden Controller stehen nicht nur ATtiny15er drauf...

Zumal das Programm die Größe der Hex-Datei einließt, und da habe ich in
diesem Fall eine für den Tiny15 mit 2,83kb.

Gruß
Patrick
#351132
Lesenswert?

Die Hexdatei ist eine Textdatei, in der die binären Werte hexadezimal
(ASCII-Text) mit Adressen, Prüfsummen und anderem Overhead dargestellt
werden. Deren Dateigröße ist also  bedeutend größer als die Größe des
damit dargestellten Programms. Die Angabe der HEX-Dateigröße ist also
nicht relevant.

...
Gast #351133
Lesenswert?

^^

Das wollte ich damit sagen, das Programm geht nach der Hex-Datei-größe
wie oben gesagt, und wie Hannes eben erwähnte ist diese bzw. kann diese
größer sein, daher die Beschränkung und die Möglichkeit den Code NICHT
auf den Tiny zu brennen.

gruß
Patrick
#351135
Lesenswert?

> ist diese bzw. kann diese größer sein,

Sie kann nicht nur größer sein, sie ist definitiv größer. Aus einem
Byte Nutzdaten werden zwei Bytes Text, dazu kommt noch je Zeile die
Adresse, der Zeilentyp, die Prüfsumme und der Doppelpunkt. Und dann
noch die erste und letzte Zeile, die (meist) keinen Programmcode
enthalten.

Schau dir doch einfach mal das Format einer Intel-Hex-Datei an. Google
wird dir sicher zeigen, wo du die Erklärung zu diesem Dateiformat
findest.

Andererseits wird beim Assemblieren des Quelltextes angezeigt, wieviel
Flash, EEPROM und SRAM das Programm benötigt, zumindest ist das bei
AVR-Studio und Assembler der Fall.

Programme für den Tiny15 haben meist noch eine andere Eigenheit. Wenn
die Programme zeitkritisch sind, dann hat der Programmierer sicherlich
an die Calibration des internen RC-Oszillators auf 1,6MHz gedacht. Dazu
hat das AVR-Programm dann eine Routine, die das Calibrationsbyte von
einer vordefinierten Stelle des Programmcodes (meist das untere Byte
der letzten Flash-Zelle) in das Register OSCCAL schreibt. Da das
Calibrationsbyte exemplarabhängig ist, muss es der Anwender vor dem
Brennen ermitteln und an die dafür vorgesehene Speicherstelle
schreiben.

Ich will damit sagen, dass zum Umgang mit AVRs etwas mehr gehört, als
nur gesammelte HEX-Dateien anderer Leute in den AVR zu brennen und dann
zu erwarten, dass alles wie geplant funktioniert.

...
Gast #351136
Lesenswert?

Danke Hannes, für die nochmalige Erklärung.

> Ich will damit sagen, dass zum Umgang mit AVRs... <

Na dann hab ich ja Glück, das es sich bei mir fast ausschließlich um
selbst geschriebene Programme handelt ;-)

Nun sind wir dabei jedoch vom eigendlichen Thema abgekommen :-)

Gruß
Patrick

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren