mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Studio hängt beim flashen vom uc


Autor: Christian V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,
ich habe ein problem was mich mittlerweile zum verzweifeln bringt :/

AVR Studio 4.18 684 kann mein .hex file nicht vollständig flashen.

Es sieht so aus, das es flashed und dann an einer Stelle hängen bleibt 
und dann die typische Fehlermeldung wirft: ISP Mode Error


Das witzige ist, das ich nun nach 2 Tagen googlen und lesen noch nix 
gefunden habe was mich weiterbringen könnte.

Dafür kann ich den Fehler reproduzieren und zwar habe ich folgendes 
Beispielprogramm:

#include <stdlib.h>
#include <avr/io.h>

#define F_CPU 8000000

#include <util/delay.h>
#include "lcd.h"


int main(void)
{
    int i;
    i = 0;

    DDRB = 0xFF;

    DDRD  &= ~(1 << PD3);  // Pin PD3 als Eingang
    PORTD |= (1 << PD3);   // internen Pull-Up an PD3 aktivieren

    // Led blinken lassen, um zu sehen ob das prg läuft
    _delay_ms(100);
    PORTB = PINB ^ (1 << PB1);
    _delay_ms(1000);
    PORTB = PINB ^ (1 << PB1);
    _delay_ms(1000);
    // Led blinken lassen, um zu sehen ob das prg läuft

    /* initialize display, cursor off */
    lcd_init(LCD_DISP_ON);
    lcd_clrscr();

    for (;;) {

    if ( !(PIND & (1<<PIND3)) ) {
      _delay_ms(100);

      if ( !(PIND & (1<<PIND3)) ) {
        if ( i > 3) {
          i = 0;
        }

      lcd_clrscr();
      lcd_gotoxy(0,i);
      lcd_puts("LCD Test Line\n");
      PORTB = PINB ^ (1 << PB1); // Led an/aus-schalten, zur Kontrolle
      i = i + 1;
      }
    }
  }
}

Diese Programm läuft problemlos. Füge ich nun in die for-schleife exakt 
die gleiche Pin-Abfrage hinzu, nur mit PIND2, dann kann AVR-Studio sie 
nicht mehr flashen.

Es wurden makefiles aus der LCD-Lib von Peter sowie makefiles aus den 
Tutorials verwendet.

Benutze Hardware:
AVR-Studio 4.18 684
WINAVR 20090313
USB-ISP aus der Bucht
+ Detecting on 'Auto'...
+ AVRISP with V2 firmware found on COM5:
+ Getting revisions.. HW: 0x0f, SW Major: 0x02, SW Minor: 0x0a .. OK
+ Getting isp parameter.. SD=0x01 .. OK
Atmel AT90S4433 mit 8 MHz Quarz

Habe das gleiche Problem wenn ich es auf meinem Notebook mit Win XP 
versuche, als auch unter Win 7.


Vielleicht kann mir ja Jemand von Euch weiterhelfen.

Gruss,
Christian

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Häng mal das *.hex File hier an.
Ich kann es problemlos flashen, bin mir nur nicht sicher ob es exakt das 
gleiche ist.

Autor: Wayne Monga (vibra)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mmoin

bei Atmel gibts schon SP1 fürs AVRStudio , nur mal so angemerkt

mfg

Autor: Christian V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin dem Problem etwas näher gekommen, es liegt an der Typenzuweisung 
von "int i"

Wenn ich es auf "uint8_t i;" änder, dann flashed er es problemlos.


Witzig ist nur das ich bei einem anderem Testprogramm, 3x uint8_t 
variablen habe, und er sobald ich der dritten einen Wert zuweise, genau 
wieder beim flashen hängen bleibt.


PS: Danke für den hinweiss mit dem SP1-Update :)

Autor: Christian V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss doch irgendwo einen Fehler haben, versuche ich mit der 
LCD-Libary vom Peter z.B. 4 Zeilen nacheinander auszugeben, kann ich 
auch wieder nicht flashen, erst wenn ich zwischen die Zeilen ein 
_delay_us() einbaue...


Sind macht das ganze nun nicht mehr :/

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du Alleinunterhalter spielst und deinen Code nicht preisgeben 
willst, dann kann dir auch keiner helfen.

Autor: Christian V. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Huhu,
ich noch einmal, ich weiss nicht mehr weiter, ich kann doch nur einen 
typen-konflikt haben?!?!?

Ich habe mal die kompletten Dateien angehängt, in der taster.c ist die 
Zeile 151 mit "// Fehlerzeile" makiert worden, sobald man dort die 
beiden // am Anfang entfernt, compiliert und flashed, hängt sich 
AVR-Studio wieder auf.



Gruss,
Christian

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dürfte schwierig sein, Dein Problem nachzuvollziehen, Deinen AT90S4433 
gibts wohl nur noch im Museum.

Kannst Du mal nen ATmega8 ausprobieren, ob der geht?


Peter

Autor: Christian V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter: Hehe, so in der Art kam es mir auch vor, als ich ihn hier liegen 
sah ;)

Ich habe hier noch einen ATmega48, der wird dann morgen mal als 
Vergleich herhalten müssen.
Nun habe ich echt keinen Nerv mehr, und es entzieht sich einfach 
jeglicher Logik, was hier passiert :/

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also bei mir hängt sich mit und ohne Zeile 151 nicht auf.

Autor: Christian V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,
transplantation geglückt, Patient ATmega48 lebt, und läuft problemlos, 
mit folgendem Programm:

#include <stdlib.h>
#define F_CPU  8000000
#include <util/delay.h>
#include "lcd.h"

int LCDMenuPoint;

int main(void)
{
  char buffer[7];

  LCDMenuPoint = 0;

  _delay_ms(30);

  lcd_init(LCD_DISP_ON);

  while(1)
  {
    _delay_ms(2000);

    lcd_gotoxy(0,0);
    lcd_puts("Counter=");

    itoa(LCDMenuPoint, buffer, 10);
    lcd_puts(buffer);

    LCDMenuPoint = LCDMenuPoint + 1;
  }
}


Ich denke also das der alte at90s4433 von mir einen weg hat...soviel 
panik für nix, sorry :/

Gruss,
Christian

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.