OSA работает только со следующими компиляторами:
Остальные компиляторы пока не поддерживаются.
Эта ошибка возникает, когда вы пытаетесь разместить переменные OSA с помощью устаревших констант. Новые константы имеют префикс имени "OS_BANK_" (См. конфигурация.)
Одна или несколько констант OS_BANK_xxx имеют недопустимое значение (в файле OSAcfg.h). Разрешены только значения 0, 1, 2 и 3.
Вы пытаетесь переопределить тип таймера через устаревшую константу OST_TIMER. В старых версиях этой константе приравнивалось имя типа напрямую (например, char или unsigned long). Теперь тип таймеров задается указанием размерности переменной. Например:
#define OS_TIMER_SIZE 4 // таймеры будет типа unsigned long
Начиная с версии 90200 типы OST_MSG и OST_SMSG не могут быть переопределены напрямую. Теперь они переопределяются через константы OS_MSG_TYPE и OS_SMSG_TYPE. Причина описана ниже:
Например OST_MSG определена в файле OSAcfg.h так:
#define OST_MSG void *
Когда определяется несколько переменных:
OST_MSG msg1, msg2, msg3;
компилятор делает подстановку:
void * msg1, msg2, msg3;
Как видно, толь msg1 будет указателем, а msg2 and msg3 будет иметь просто тип void.
Ситуацию можно было бы исправить так:
typedef void * OST_MSG;
Но тогда будет невозможно переопределять эти типы вручную. По этой причине переопределение типа OST_MSG сделано так:
#define OS_MSG_TYPE int *
а сам OST_MSG определяется без вмешательства пользователя в файле OSA.h:
typedef OS_MSG_TYPE OST_MSG;
Введено неправильно значение размера переменных типа счетного семафора. Допустимые значения:
Введено неправильно значение размера переменных таймера. Допустимые значения:
Qtimers are not supported with 12-bit controllers. Actualy, there is no needness to use them on 12-bit PICs, since benefit is noticed only with large number of timers.
Контроллеры STM8 с ROM > 64K пока что не поддерживаются