Hello, All!
Пробую освоить сабж. Процесс идет очень тяжко:(
Hапример. Компилятор выдает предупреждения на такие объявления функций прерываний: extern "C" void INT0_vect(void); void INT0_vect(void) __attribute__ ((interrupt)); void INT0_vect(void) и: ISR (TIMER1_COMPA_vect)
Вот что он выдает: Сompiling C++: Soft_Usart.cpp avr-g++ -c -mmcu=atmega128 -I. -x c++ -gdwarf-2 -DF_CPU=8000000UL -Os
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wa,-adhlns=Soft_Usartlst -MD -MP -MF .dep/Soft_Usart.o.d Soft_Usart.cpp -o Soft_Usart.o Soft_Usart.cpp:133: warning: `_Z10__vector_1v' appears to be a misspelled interrupt handler Soft_Usart.cpp:172: warning: `_Z11__vector_12v' appears to be a misspelled signal handler
В тоже время следующие объявления проглатывает: extern "C" void TIMER1_COMPB_vect(void); void TIMER1_COMPB_vect (void) __attribute__ ((naked)); \ void TIMER1_COMPB_vect (void) { __asm__ __volatile__ (
extern "C" void TIMER1_COMPC_vect(void); void TIMER1_COMPC_vect (void) __attribute__ ((naked)); \ void TIMER1_COMPC_vect (void) { __asm__ __volatile__ (
В чем может быть причина? Переходы на функции ставит, пролог и эпилог создает правильный, т.е. правильный для signal и interrupt.
ЗЫ. Что почитать по С++. Читаю Страутрупа... Жук и жаба...
With best regards, Igor. Time: 22:01 Date: 22 Апр 06