~~NOTOC~~ ====== OSA : Error list ====== ==== #1 : Unknown compiler! ==== OSA работает только со следующими компиляторами: * HI-TECH PICC STD * HI-TECH PICC18 STD * Microchip C18 * Microchip C30 * CCS PICC * microC PRO for PIC Остальные компиляторы пока не поддерживаются. ---- ==== #2 : Constants OS_xxx_BANK are not allowed now (use OS_BANK_xxx instead) ==== Эта ошибка возникает, когда вы пытаетесь разместить переменные OSA с помощью устаревших констант. Новые константы имеют префикс имени "##[[osa:ref:appendix:configuration|OS_BANK_]]##" (См. [[osa:ref:appendix:configuration#Размещение данных для PIC10, PIC12, PIC16 и PIC18|конфигурация]].) ---- ==== #3 .. #12 : Incorrect OS_BANK_xxx value (should be 0, 1, 2 or 3) ==== Одна или несколько констант ##[[osa:ref:appendix:configuration|OS_BANK_xxx]]## имеют недопустимое значение (в файле ##[[osa:ref:appendix:configuration|OSAcfg.h]]##). Разрешены только значения 0, 1, 2 и 3. ---- ==== #13 : OST_TIMER is not supported! Use OS_TIMER_SIZE instead ==== Вы пытаетесь переопределить тип таймера через устаревшую константу ##[[osa:ref:description:data_types#OST_TIMER|OST_TIMER]]##. В старых версиях этой константе приравнивалось имя типа напрямую (например, **char** или **unsigned long**). Теперь тип таймеров задается указанием размерности переменной. Например: #define OS_TIMER_SIZE 4 // таймеры будет типа unsigned long ---- ==== #14 .. #15 : Can't redefine name OST_xxx in 'OSAcfg.h'. Use OS_xxx_TYPE instead. ==== Начиная с версии 90200 типы ##[[osa:ref:description:data_types#OST_MSG|OST_MSG]]## и ##[[osa:ref:description:data_types#OST_SMSG|OST_SMSG]]## не могут быть переопределены напрямую. Теперь они переопределяются через константы ##[[osa:ref:appendix:configuration|OS_MSG_TYPE]]## и ##[[osa:ref:appendix:configuration|OS_SMSG_TYPE.]]## Причина описана ниже: Например ##[[osa:ref:description:data_types#OST_MSG|OST_MSG]]## определена в файле ##[[osa:ref:appendix:configuration|OSAcfg.h]]## так: #define OST_MSG void * Когда определяется несколько переменных: OST_MSG msg1, msg2, msg3; компилятор делает подстановку: void * msg1, msg2, msg3; Как видно, толь **msg1** будет указателем, а **msg2** and **msg3** будет иметь просто тип void. Ситуацию можно было бы исправить так: typedef void * OST_MSG; Но тогда будет невозможно переопределять эти типы вручную. По этой причине переопределение типа ##[[osa:ref:description:data_types#OST_MSG|OST_MSG]]## сделано так: #define OS_MSG_TYPE int * а сам ##[[osa:ref:description:data_types#OST_MSG|OST_MSG]]## определяется без вмешательства пользователя в файле OSA.h: typedef OS_MSG_TYPE OST_MSG; ---- ==== #16 : Incorrect OS_CSEM_SIZE value (m.b. only 1, 2 or 4)! (see OSAcfg.h) ==== Введено неправильно значение размера переменных типа счетного семафора. Допустимые значения: * 1 - для unsigned char * 2 - для unsigned int * 4 - для unsigned long ---- ==== #17 .. #21 : Bad OS_xxx size (must be 1, 2 or 4) ==== Введено неправильно значение размера переменных таймера. Допустимые значения: * 1 - для unsigned char * 2 - для unsigned int * 4 - для unsigned long ---- ==== #22: Qtimers are not supported under 12-bit controllers (PIC10 and PIC12) ==== 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. ---- ==== #25: STM8 with ROM > 64K are not supported yet ==== Контроллеры STM8 с ROM > 64K пока что не поддерживаются ----