mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik *.HEX Datei zu groß?


Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

erstmal vielen Dank für die Website. Das Forum und die Artikel haben
mir schon bei unzähligen Problemen geholfen. Aber gerade hilft mir die
Suchfunktion nicht weiter.
Mein Problem: Sobald mein Programm etwas größer ist bekomme ich meinen
avr nicht mehr Programmiert.
Hier mal ein paar Eckdaten:
MCU: atmega128
Compiler: AVR-GCC
Programmer: Ponyprog 2000

Mit avr-size bekomme ich folgende Information:

Dieses Programm kann ich noch ohne Probleme programmieren:
avr-size -C --mcu=atmega128 main.elf
AVR Memory Usage
----------------
Device: atmega128

Program:   18236 bytes (13.9% Full)
(.text + .data + .bootloader)

Data:       2307 bytes (56.3% Full)
(.data + .bss + .noinit)

Wenn ich bei dem Programm jetzt noch eine Zeile mehr aufs Display
schreibe kann ich nicht mehr programmieren (PonyProg Fehler: -44).
avr-size gibt folgendes aus:
avr-size -C --mcu=atmega128 main.elf
AVR Memory Usage
----------------
Device: atmega128

Program:   18248 bytes (13.9% Full)
(.text + .data + .bootloader)

Data:       2307 bytes (56.3% Full)
(.data + .bss + .noinit)

Es reicht auch schon wenn ich mit Hilfe eines Array ein paar Daten zu
viel in das Flash schreibe. Ich kann es mir nicht erklären, aber für
mich sieht es aus als ob es tatsächlich an der Größe der Hex Datei
liegt.

Wo liegt mein Fehler? Platz habe ich ja noch genug.

Viele Grüße
Volker

Autor: Sebastian Eckert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Komisch. Ist in PonyProg der richtige Chiptyp eingestellt? Läuft der
Code ansonsten? Nicht, daß die Hex-Datei versehentlich als Binärdatei
interpretiert wird...

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich nicht. Das Programm läuft ohne Probleme. Dann schreibe ich
etwas mehr in den Flashspeicher und es geht nicht mehr. Sonst ändere
ich nix. Ich habe jetzt noch etwas gespielt, aber es ist immer
dasselbe. Sobald die Hex Datei zu groß wird kann ich nicht mehr
programmieren. Wenn ich dann einen völlig anderen Programmteil raus
nehme geht es wieder.

Autor: Volker (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe leider immer noch keine Lösung für mein Problem gefunden.
Unter der Woche habe nicht so viel Zeit zum spielen, aber folgende
Erkenntnisse habe ich gewonnen:

Wenn ich nur Programmiere (kein verify) kommt kein Fehler und das
Programm startet. Wenn ich allerdings Programmiere und verify mache
bekomme ich den Fehler -44.

Einfach das verify weg lassen finde ich nicht besonders schön. Wer sagt
mir, dass alles richtig übertragen wurde und mein Programm richtig
läuft?

Ich habe mal ein Beispielprogramm angehängt. Das Programm macht nichts
ausser eine Variable hoch zählen. Um das Programm groß zumachen
schreibe ich einen Array in den Flash Speicher.
Wenn ich ein Byte aus dem Array lösche kann ich den Controller
zuverlässig Programmieren. Aber ein Byte mehr und es geht (mit verify)
kein einziges mal!

Ich bin langsam echt verzweifelt. Wo ist mein Fehler, oder kann die
Hardware eine Macke haben?

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
solved !!!

Mit einem neuen mega128 rennt das Ding wie immer.

Autor: Sebastian Eckert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War also ein Defekt im internen Flash-Speicher. Gut zu wissen,
vielleicht nützt das ja auch anderen Forumnutzern mal.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.