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
Komisch. Ist in PonyProg der richtige Chiptyp eingestellt? Läuft der Code ansonsten? Nicht, daß die Hex-Datei versehentlich als Binärdatei interpretiert wird...
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.
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?
War also ein Defekt im internen Flash-Speicher. Gut zu wissen, vielleicht nützt das ja auch anderen Forumnutzern mal.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.