Forum: Mikrocontroller und Digitale Elektronik Veraltete avr-lib in AVR-Studio 6.2. verwenden?


von Michael (Gast)


Lesenswert?

Hallo zusammen,

ich habe das Problem, dass ich ein AVR-Studio 6.2 Projekt nach einer 
Neuinstallation v des AVR-Studio nicht mehr kompiliert bekomme.

Es liegt wohl an der Verwendung einer veralteten avr-lib  bei der 
UART-Bibliothek vom Peter Fleury. Hier ist eine Lösung beschreiben, aber 
der UART sendet leider dennoch nicht:
Beitrag "Fleury UART Lib AVR Studio 6.1"

Ich bekomme es leider, nach stundenlangen Versuchen, leider nicht 
weiter, deshalb die Frage, ob es eine Möglichkeit gibt, dennoch mit der 
veralteten avr-lib weiterzuarbeiten, d.h. das Projekt zu kompilieren und 
damit weiterzuarbeiten?

Es hat definitiv auch schon mal mit AVR Studio 6.2. funktioniert, ich 
weiß aber leider nicht mehr, was ich damals gemacht habe, um es dort zum 
Laufen zu bringen.

Danke schon im Vorraus,

Michael

von Jim M. (turboj)


Lesenswert?

Michael schrieb:
> dass ich ein AVR-Studio 6.2 Projekt nach einer
> Neuinstallation v des AVR-Studio nicht mehr kompiliert bekomme.

Üblicherweise sitzt der Fehler dann zwischen Stuhl und Tastatur. Poste 
doch mal die konkreten Fehlermeldungen.

Außerdem ist fast immer die zuerst erscheinende Meldung wichtig und der 
Rest oft nur Folgefehler...

von Michael (Gast)


Lesenswert?

Die konkrete Fehlermeldung lautet:
"attempt to use poisoned "SIG_OVERFLOW0"

Diese Funktion steht bei mir in der main uns beinhaltet folgendes:

SIGNAL (SIG_OVERFLOW0)      // every 4ms at 16MHz
{
  static char ct0, ct1, rpt;
  char i;

  i = key_state ^ ~KEY_INPUT;    // key changed ?
  ct0 = ~(ct0 & i);      // reset or count ct0
  ct1 = ct0 ^ (ct1 & i);    // reset or count ct1
  i &= ct0 & ct1;      // count until roll over ?
  key_state ^= i;      // then toggle debounced state
  key_press |= key_state & i;    // 0->1: key press detect

  if( (key_state & REPEAT_MASK) == 0 )  // check repeat function
     rpt = REPEAT_START;    // start delay
  if( --rpt == 0 ){
    rpt = REPEAT_NEXT;      // repeat delay
    key_rpt |= key_state & REPEAT_MASK;
  }
}

von Dieter F. (Gast)


Lesenswert?


von Michael (Gast)


Lesenswert?

Klammere ich diese SIGNAL-Funktion erstaml aus, kommen dann noch die 
Fehlermeldungen, wie es in den erwähnten Thread auch war:
Beitrag "Fleury UART Lib AVR Studio 6.1"

Error:
attempt to use poisoned "SIG_USART_RECV"
attempt to use poisoned "SIG_USART_DATA"

Warning:
'SIG_USART_RECV' appears to be a misspelled signal handler [enabled by
default]
'SIG_USART_DATA' appears to be a misspelled signal handler [enabled by
default]

Diese beiden Fehlermeldungen bekomm ich weg, auch die SIG_Overflow 
errors und Warnungen, aber der UART sendet trotzdem nichts ans 
Terminalprogramm.

Da ich hier nicht weiterkomme, und um zu vermeiden, den Laptop direkt 
aus den Fenster zu werfen, die Frage, ob man nicht trozdem irgendwie den 
alten Code so kompilieren kann, mit einer aktuellen AVR-Studio Version.

von Dieter F. (Gast)


Lesenswert?

Dein Code-Schnipsel stammt aus der Entprell-Routine von Peter Danegger - 
eine neue Version gibt es hier bei den Artikeln.

https://www.mikrocontroller.net/articles/Entprellung

von Michael (Gast)


Lesenswert?

Ich will am alten Code am liebsten gar nichts verändern, und ich weiß 
ja, das der auch mit AVR-Studio 6.2. funktionieren kann.
Ich musste nur, um etwas anderes auszutesten, AVR-Studio 6.2 löschen, um 
das AVR-Studio 7 zu installieren. Danach habe ich das 6.2 wieder 
installiert, und seitdem kommen diese Fehlermeldungen.

von Michael (Gast)


Lesenswert?

Ist es vielleicht möglich, das Projekt mit einer veralteten Toolchain 
oder alten AVR-Studio-Version zu kompilieren?

von MitLeserin (Gast)


Angehängte Dateien:

Lesenswert?

Die Int_Vektoren heissen heute anders
*************************************
In der gewählten Toolchain finden sich in der Include_Datei des 
entsprechenden Microchip(Atmel)-uProzessors die entsprechenden Vektoren 
am Ende der Datei. Source entsprechend anpassen und neu compilieren.

Als Beispiel für ATmega644:
**************************

C:\Atmel_Toolchain\AVR8_GCC\avr-gcc-8.0_2017-07-19_mingw32\avr\include\a 
vr\iomxx4.h

Der entsprechende Abschnitt ist oben beigefügt.

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.