Dear All,
I tried to compile a simple code using SIGNAL API for Attiny2313
target, but I always hit the following warning:
main.c:14: warning: `SIG_OVERFLOW1' appears to be a misspelled signal
handler
The full message is as follow:
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 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.
Compiling: main.c
avr-gcc -c -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=1000000UL
-I../../../../Apps/WinAVR/avr/include -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 -MD -MP -MF
.dep/main.o.d main.c -o main.o
main.c:14: warning: `SIG_OVERFLOW1' appears to be a misspelled signal
handler
Linking: main.elf
avr-gcc -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=1000000UL
-I../../../../Apps/WinAVR/avr/include -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -MD -MP -MF
.dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref -lm
I am using latest version of winavr from
http://sourceforge.net/forum/forum.php?forum_id=446217.
The interrupt handler is as follow :
SIGNAL ( SIG_OVERFLOW1 )
{
//set PORTB.2 low
PORTB ^= 0x1;
// reload counter
TCNT1 = 0xffff - 1000;
/* enable interrupts */
sei ();
}
The assembler listing is as follow:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26
2: 2a c0 rjmp .+84 ; 0x58
4: 29 c0 rjmp .+82 ; 0x58
6: 28 c0 rjmp .+80 ; 0x58
8: 27 c0 rjmp .+78 ; 0x58
a: 26 c0 rjmp .+76 ; 0x58
c: 25 c0 rjmp .+74 ; 0x58
e: 24 c0 rjmp .+72 ; 0x58
10: 23 c0 rjmp .+70 ; 0x58
12: 22 c0 rjmp .+68 ; 0x58
14: 21 c0 rjmp .+66 ; 0x58
16: 20 c0 rjmp .+64 ; 0x58
18: 1f c0 rjmp .+62 ; 0x58
1a: 1e c0 rjmp .+60 ; 0x58
1c: 1d c0 rjmp .+58 ; 0x58
1e: 1c c0 rjmp .+56 ; 0x58
20: 1b c0 rjmp .+54 ; 0x58
22: 1a c0 rjmp .+52 ; 0x58
24: 19 c0 rjmp .+50 ; 0x58
Apparently, the interrupt handler is not installed. The same code
compiled and worked properly for Atmega8. Please advise on how to get
the interrupt to work for attiny2313.
Thanks in advance.
regards
kchoo