Помогите разобраться. Пишу программу для Atmega8535. Использую при этом scmRTOS 3.10 и компилятор IAR 6.3. При компиляции получаю ошибку:
Error[Pe795]: specializing function "OS::process<pr, stack_size, rstack_size>::Exec [with pr=OS::pr0, stack_size=(word)40U, rstack_size=(word)10U]" D
Код программы:
#include <ioavr.h> #include <scmRTOS.h> //--------------------------------------------------------------------------- typedef OS::process<OS::pr0, 40, 10> TProc1; typedef OS::process<OS::pr1, 40, 10> TProc2; //---------------------------------------------------------------------------
TProc1 Proc1; TProc2 Proc2;
//--------------------------------------------------------------------------- #define LED1 0 #define LED2 1 #define LED_DDR DDRB #define LED_PORT PORTB
int main() { LED_DDR = 0xff; LED_PORT = (1<<LED1)|(1<<LED2); TCNT0 = 0xf0; TCCR0 = 0x05; TIMSK |= (1 << TOIE0); OS::Run(); } //---------------------------------------------------------------------------
OS_PROCESS void TProc1::Exec() { for(;;) { LED_PORT ^= (1<<LED1); Sleep(500); } } //---------------------------------------------------------------------------
OS_PROCESS void TProc2::Exec() { for(;;) { LED_PORT ^= (1<<LED2); Sleep(120); } }
//--------------------------------------------------------------------------- void OS::SystemTimerUserHook() { TCNT0 = 0xf0; } Место обнаружения ошибки - на этой строке: OS_PROCESS void TProc1::Exec() Для функции TProc2::Exec() - такая же ошибка. Вроде как все согласно документации на scmRTOS.
Сообщение отредактировал _trunk_ - Oct 3 2011, 12:02
|