Привет, многоуважаемый All!
Вот имеются непонятки с сабжем. Рисую минимальный проект в oil-конфигураторе, генерю файлы и шаблоны, создаю проект в таскинге - всё вроде есть.
Когда компилирую и собираю проект - генерится следующий лог:
---------------- Compiling "c:\program files\osek\c167\src\osek.c" osek.src: 888: @IF (@osdXC164CS) E 200: illegal character 892: @ELSE E 200: illegal character 894: @ENDI E 200: illegal character 2180: @IF (@osdXC164CS) E 200: illegal character 2206: @ELSE E 200: illegal character 2218: @ENDI E 200: illegal character
---------------- Ну, и естественно, проект не собирается. osek.c - один из исходников РТОС. Текст, на который идёт ругань следующий:
---------------- ... #if (osdCompiler == osdCompilerTaskingC167) #pragma asm MOV _isrRegBankLevel1, R0 ; copy the user stack pointer MOV CP, #_isrRegBankLevel1 @IF (@osdXC164CS) ; set the stackpointer to top ( can be in segment > 0 ) MOV SPSEG, #SEG ?SYSSTACK_TOP MOV SP, #SOF ?SYSSTACK_TOP @ELSE MOV SP, #0FC00h ; set the stackpointer to top @ENDI NOP ; of system stack MOV R0, #_isrUserStackLevel1Top ; set user stack pointer #pragma endasm ...
----------------
Собственно, то, что заключено между #pragma asm и #pragma enasm в итоге включается в текст osek.src в неизменном виде (как я понял - это ассемблерный файл с выполненными подстановками). Ругачка идёт на символы препроцессора, которые, получается не должны в нём быть. Я в полном ступоре - всё, что можно уже пощёлкал и по переключал. Помогите, pls, если кто с этим сталкивался!
Система - WinXP, Tasking tools for C166/ST10v7.5 r2, Tasking EIDE v.2.7r5, OSEK RTOS osCAN v2.03