Не могу скомпилить FREERTOS в IAR ARM 5.50 если включаю "Multi-file Compilation", как только подключаю queue.h компилятор выдает кучу таких ошибок
Цитата
Error[Pe1061]: declaration of function "xQueueGenericSend" is incompatible with a declaration in another translation unit D:\Develop\xxxx\Firmware\Cortex\Source\FreeRTOS\Include\queue.h 472
the other declaration is at line 451 of "D:\Develop\xxxx\Firmware\Cortex\Source\FREERTOS\queue.c"
Уже второй день бьюсь не могу их подружить. Без "Multi-file Compilation" работает все нормально.
Как только пост создал и проблема частично решилась.
Вся беда в том что, в queue.h тип xQueueHandle обьявлен как void
Код
typedef void * xQueueHandle;
а в queue.c как структура
Код
typedef xQUEUE * xQueueHandle;
Вылечил так.
Подключил queue.h в queue.c
Определение структуры xQUEUE вынес в queue.h сюдаже и определение типа xQueueHandle. Все собралось, еще не осознал чем это грозит, да и не красиво как то, может есть еще варианты ?