-         

Ergebnis 1 bis 6 von 6

Thema: Fehlermeldung bei make all

  1. #1

    Fehlermeldung bei make all

    Anzeige

    Ich benutze Linux, habe also kein WinAVR oder so installiert, sondern avr-gcc und co aus den Repos.
    Ich denke allerdings mir fehlt da irgendwas, weiß aber nicht mehr weiter was das wohl ist.
    Jedenfalls bekomme ich sowohl mit der originalen Library, als auch mit der AsuroLib von Sourceforge ne Fehlermeldung, wenn ich mein erstes kleines Programm kompilieren will:
    Code:
    set -e; avr-gcc -MM -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=../../lib/asuro.lst ../../lib/asuro.c \
    | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
    [ -s asuro.d ] || rm -f asuro.d
    ../../lib/asuro.c:222:9: error: attempt to use poisoned "SIG_OVERFLOW2"
    ../../lib/asuro.c:239:8: error: attempt to use poisoned "SIG_OUTPUT_COMPARE2"
    ../../lib/asuro.c:267:9: error: attempt to use poisoned "SIG_INTERRUPT1"
    ../../lib/asuro.c:301:9: error: attempt to use poisoned "SIG_ADC"
    -------- begin --------
    avr-gcc --version
    avr-gcc (GCC) 4.7.2
    Copyright (C) 2012 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=../../lib/asuro.lst ../../lib/asuro.c -o asuro.o
    ../../lib/asuro.c:222:9: error: attempt to use poisoned "SIG_OVERFLOW2"
    ../../lib/asuro.c: In function 'SIG_OVERFLOW2':
    ../../lib/asuro.c:222:1: warning: 'SIG_OVERFLOW2' appears to be a misspelled signal handler [enabled by default]
    ../../lib/asuro.c: At top level:
    ../../lib/asuro.c:239:8: error: attempt to use poisoned "SIG_OUTPUT_COMPARE2"
    ../../lib/asuro.c: In function 'SIG_OUTPUT_COMPARE2':
    ../../lib/asuro.c:239:1: warning: 'SIG_OUTPUT_COMPARE2' appears to be a misspelled signal handler [enabled by default]
    ../../lib/asuro.c: At top level:
    ../../lib/asuro.c:267:9: error: attempt to use poisoned "SIG_INTERRUPT1"
    ../../lib/asuro.c: In function 'SIG_INTERRUPT1':
    ../../lib/asuro.c:267:1: warning: 'SIG_INTERRUPT1' appears to be a misspelled signal handler [enabled by default]
    ../../lib/asuro.c: At top level:
    ../../lib/asuro.c:301:9: error: attempt to use poisoned "SIG_ADC"
    ../../lib/asuro.c: In function 'SIG_ADC':
    ../../lib/asuro.c:301:1: warning: 'SIG_ADC' appears to be a misspelled signal handler [enabled by default]
    das ist mit der AsuroLib von Sourceforge, mit der originalen siehts aber ähnlich aus.
    Da ich mich mit signal handlern nicht auskenn, weiß ich auch nicht, woher der Fehler rührt; wie gesagt ich vermute mir fehlt ne Datei, oder es ist was nicht richtig in dem Makefile referenziert.

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Vermutlich hängt das irgendwie mit der veralteten Datei signal.h zusammen. Diese wurde inzwischen von interrupt.h abgelöst und dabei wurden auch neue Namen für die Interupts eingeführt. Vielleicht könntest du mal testweise einen Namen in der Datei asuro.c ändern um zu prüfen, ob das was bringt. Z.B. wird aus 'SIG_OVERFLOW2' das neue 'TIMER2_OVF_vect':

    Code:
    /* uses timer2 (36kHz for IR communication */
    // SIGNAL (SIG_OVERFLOW2)
    ISR (TIMER2_OVF_vect)
    {
    	TCNT2 += 0x25;
    	count36kHz ++;
    	if (!count36kHz) timebase ++;
    }
    Die Liste der Interuptnamen findet man in der Datei iom8.h die über io.h eingebunden wird:

    Code:
    /* Interrupt vectors */
    
    /* External Interrupt Request 0 */
    #define INT0_vect			_VECTOR(1)
    #define SIG_INTERRUPT0			_VECTOR(1)
    
    /* External Interrupt Request 1 */
    #define INT1_vect			_VECTOR(2)
    #define SIG_INTERRUPT1			_VECTOR(2)
    
    /* Timer/Counter2 Compare Match */
    #define TIMER2_COMP_vect		_VECTOR(3)
    #define SIG_OUTPUT_COMPARE2		_VECTOR(3)
    
    /* Timer/Counter2 Overflow */
    #define TIMER2_OVF_vect			_VECTOR(4)
    #define SIG_OVERFLOW2			_VECTOR(4)
    
    /* Timer/Counter1 Capture Event */
    #define TIMER1_CAPT_vect		_VECTOR(5)
    #define SIG_INPUT_CAPTURE1		_VECTOR(5)
    
    /* Timer/Counter1 Compare Match A */
    #define TIMER1_COMPA_vect		_VECTOR(6)
    #define SIG_OUTPUT_COMPARE1A		_VECTOR(6)
    
    /* Timer/Counter1 Compare Match B */
    #define TIMER1_COMPB_vect		_VECTOR(7)
    #define SIG_OUTPUT_COMPARE1B		_VECTOR(7)
    
    /* Timer/Counter1 Overflow */
    #define TIMER1_OVF_vect			_VECTOR(8)
    #define SIG_OVERFLOW1			_VECTOR(8)
    
    /* Timer/Counter0 Overflow */
    #define TIMER0_OVF_vect			_VECTOR(9)
    #define SIG_OVERFLOW0			_VECTOR(9)
    
    /* Serial Transfer Complete */
    #define SPI_STC_vect			_VECTOR(10)
    #define SIG_SPI				_VECTOR(10)
    
    /* USART, Rx Complete */
    #define USART_RXC_vect			_VECTOR(11)
    #define SIG_UART_RECV			_VECTOR(11)
    
    /* USART Data Register Empty */
    #define USART_UDRE_vect			_VECTOR(12)
    #define SIG_UART_DATA			_VECTOR(12)
    
    /* USART, Tx Complete */
    #define USART_TXC_vect			_VECTOR(13)
    #define SIG_UART_TRANS			_VECTOR(13)
    
    /* ADC Conversion Complete */
    #define ADC_vect			_VECTOR(14)
    #define SIG_ADC				_VECTOR(14)
    
    /* EEPROM Ready */
    #define EE_RDY_vect			_VECTOR(15)
    #define SIG_EEPROM_READY		_VECTOR(15)
    
    /* Analog Comparator */
    #define ANA_COMP_vect			_VECTOR(16)
    #define SIG_COMPARATOR			_VECTOR(16)
    
    /* 2-wire Serial Interface */
    #define TWI_vect			_VECTOR(17)
    #define SIG_2WIRE_SERIAL		_VECTOR(17)
    
    /* Store Program Memory Ready */
    #define SPM_RDY_vect			_VECTOR(18)
    #define SIG_SPM_READY			_VECTOR(18)
    Gruß

    mic
    Geändert von radbruch (15.10.2012 um 20:49 Uhr)

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Danke, damit läuft make ohne Fehler durch

  4. #4
    Hallo,
    ich hab das selbe Problem. Hab die Namen in asuro.c angeglichen. Wie kompiliere ich die lib jetzt unter Linux? Kann ich danach weiterhin make all verwenden oder muss ich irgendwas mit angeben?

  5. #5
    gmbo
    Gast

    SIG_INTERRUPT1 geht nicht immer

    Ist mir heute beim Wechsel von ATTiny2313 auf 4313 auch passiert.
    das ließ sich vom wechsel von SIG_INTERRUPT1 auf INT1_vect bereinigen.
    Warum bei der gleichen Compilerversion unterschiedliche Headernammen existieren verstehe ich aber auch nicht.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2015
    Beiträge
    9
    Geändert von radbruch (25.01.2015 um 21:27 Uhr)

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 06.01.2012, 16:30
  2. [ERLEDIGT] Probleme mit Make All
    Von Snow Wolf im Forum Robby RP6
    Antworten: 12
    Letzter Beitrag: 21.06.2011, 16:20
  3. make erstellen
    Von Thomas$ im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 01.03.2010, 19:41
  4. make fil
    Von airforceone im Forum Asuro
    Antworten: 3
    Letzter Beitrag: 06.01.2007, 17:39
  5. Make all/Make extcoff (WinAVR)
    Von Whassup im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 21.02.2005, 16:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •