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
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...
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; } }
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.
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
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.
Ist es vielleicht möglich, das Projekt mit einer veralteten Toolchain oder alten AVR-Studio-Version zu kompilieren?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.