Здравствуйте. У меня возникла следующая проблема. При попытке собрать примеры scmRTOS.3.05 для микроконтроллеров MSP430 компилятор (msp430-gcc 4.6.3) выдаёт большое количество ошибок (листинг представлен ниже). Хотелось бы понять в чём дело, примеры для 4-ой версии ОСи данным компилятором собираются без проблем.
../scmRTOS/MSP430/OS_Target.h: В функции «void SetISRStackPointer()»: ../scmRTOS/MSP430/OS_Target.h:219:5: ошибка: некорректное преобразование из «word {aka short unsigned int}» в «void*» [-fpermissive] /usr/local/lib/gcc/msp430/4.6.3/../../../../msp430/include/intrinsics.h:82:6: ошибка: при инициализации 1 -го аргумента «void __write_stack_pointer(void*)» [-fpermissive] ../scmRTOS/MSP430/OS_Target.h: В функции «void SetStackPointer(TStackItem*)»: ../scmRTOS/MSP430/OS_Target.h:222:61: ошибка: некорректное преобразование из «word {aka short unsigned int}» в «void*» [-fpermissive] /usr/local/lib/gcc/msp430/4.6.3/../../../../msp430/include/intrinsics.h:82:6: ошибка: при инициализации 1 -го аргумента «void __write_stack_pointer(void*)» [-fpermissive] In file included from ../scmRTOS/MSP430/OS_Target.h:230:0, from ../scmRTOS/Common/scmRTOS.h:52, from ./src/main.cpp:48: ../scmRTOS/Common/OS_Kernel.h: At global scope: ../scmRTOS/Common/OS_Kernel.h:111:44: ошибка: «TBaseProcess» не был декларирован ../scmRTOS/Common/OS_Kernel.h:112:49: ошибка: «TBaseProcess» не был декларирован ../scmRTOS/Common/OS_Kernel.h:113:54: ошибка: «TBaseProcess» не является именем типа ../scmRTOS/Common/OS_Kernel.h:113:68: ошибка: ISO C++ запрещает декларации «p» без типа [-fpermissive] ../scmRTOS/Common/OS_Kernel.h:114:55: ошибка: «TBaseProcess» не является именем типа ../scmRTOS/Common/OS_Kernel.h:114:69: ошибка: ISO C++ запрещает декларации «p» без типа [-fpermissive] ../scmRTOS/Common/OS_Kernel.h:124:9: ошибка: «TBaseProcess» не является именем типа ../scmRTOS/Common/OS_Kernel.h:148:44: ошибка: «TBaseProcess» не был декларирован In file included from ../scmRTOS/MSP430/OS_Target.h:230:0, from ../scmRTOS/Common/scmRTOS.h:52, from ./src/main.cpp:48: ../scmRTOS/Common/OS_Kernel.h: В функции «bool OS::IsProcessSuspended(const OS::TBaseProcess&)»: ../scmRTOS/Common/OS_Kernel.h:123:21: ошибка: «OS::TProcessMap OS::TKernel::ReadyProcessMap» is private ../scmRTOS/Common/OS_Kernel.h:283:19: ошибка: в данном контексте ../scmRTOS/Common/OS_Kernel.h: At global scope: ../scmRTOS/Common/OS_Kernel.h:307:6: ошибка: прототип для «void OS::TKernel::RegisterProcess(OS::TBaseProcess*)» не имеет соответствия в классе «OS::TKernel» ../scmRTOS/Common/OS_Kernel.h:148:28: ошибка: претендент: void OS::TKernel::RegisterProcess(int*) ../scmRTOS/Common/OS_Kernel.h: В функции-члене «void OS::TKernel::SystemTimer()»: ../scmRTOS/Common/OS_Kernel.h:333:27: ошибка: нет декларации «ProcessTable» в этой области видимости ../scmRTOS/Common/OS_Kernel.h: В функции-члене «TStackItem* OS::TKernel::ContextSwitchHook(TStackItem*)»: ../scmRTOS/Common/OS_Kernel.h:383:5: ошибка: нет декларации «ProcessTable» в этой области видимости ../scmRTOS/Common/OS_Kernel.h: At global scope: ../scmRTOS/Common/OS_Kernel.h:398:28: ошибка: «void OS::Run()» следовало объявить внутри «OS» ../scmRTOS/Common/OS_Kernel.h: В функции «void OS::Run()»: ../scmRTOS/Common/OS_Kernel.h:400:29: ошибка: «class OS::TKernel» has no member named «ProcessTable» In file included from ../scmRTOS/Common/OS_Kernel.h:404:0, from ../scmRTOS/MSP430/OS_Target.h:230, from ../scmRTOS/Common/scmRTOS.h:52, from ./src/main.cpp:48: ../scmRTOS/Common/OS_Services.h: В функции-члене «bool OS::channel<T, size, S>::pop(T&, TTimeout)»: ../scmRTOS/Common/OS_Services.h:311:34: ошибка: «class OS::TKernel» has no member named «ProcessTable» ../scmRTOS/Common/OS_Services.h: В функции-члене «bool OS::channel<T, size, S>::pop_back(T&, TTimeout)»: ../scmRTOS/Common/OS_Services.h:353:34: ошибка: «class OS::TKernel» has no member named «ProcessTable» ../scmRTOS/Common/OS_Services.h: В функции-члене «bool OS::channel<T, size, S>::read(T*, S, TTimeout)»: ../scmRTOS/Common/OS_Services.h:412:30: ошибка: «class OS::TKernel» has no member named «ProcessTable» Сборка завершилась с ошибкой. In file included from ../scmRTOS/Common/scmRTOS.h:52:0, from ./src/main.cpp:48: ../scmRTOS/MSP430/OS_Target.h: В функции-члене «void OS::TISRW_SS::ISR_Enter()»: ../scmRTOS/MSP430/OS_Target.h:278:24: ошибка: «class OS::TKernel» has no member named «ProcessTable» ../scmRTOS/MSP430/OS_Target.h: В функции-члене «void OS::TISRW_SS::ISR_Exit()»: ../scmRTOS/MSP430/OS_Target.h:287:36: ошибка: «class OS::TKernel» has no member named «ProcessTable» ./src/main.cpp: At global scope: ./src/main.cpp:110:17: ошибка: specializing member «OS::process<(OS::TPriority)0u, 200u>::Exec» requires «template<>» syntax make: *** [obj/main.o] Ошибка 1
|