Forum: Mikrocontroller und Digitale Elektronik Out of Memory


von Patrick (Gast)


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

von Peter D. (peda)


Lesenswert?

"... jedoch von Vornherein mehr als 1kb brennen kann."

Nun, das kann kein Programmer beim ATTiny15.


Peter

von Patrick (Gast)


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

von Hannes L. (hannes)


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.

...

von Patrick (Gast)


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

von Patrick (Gast)


Lesenswert?

Mit Programm meine ich in diesem Fall das ATProg30...

von Hannes L. (hannes)


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.

...

von Patrick (Gast)


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

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.