Hi,
When I add...
EE_OPT = "__SEM__";
...to my oil file the project fails to build (as per examples\s12xs\porting_examples\multistack_cw\EEtest5).
The Eclipse output...
CPP ee_swait.c
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(71): ERROR C1815: EE_BLOCKED not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(77): ERROR C1815: EE_TID not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(85): ERROR C1815: EE_TID not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(97): ERROR C1815: EE_TID not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(98): ERROR C1815: EE_TID not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(100): ERROR C1815: EE_STIME not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(100): ERROR C1815: EE_th_absdline not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(100): ERROR C1842: [ incompatible types
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(101): ERROR C1842: [ incompatible types
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(101): ERROR C5002: Illegal type
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(100): ERROR C1829: + - incompatible Types
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(100): ERROR C1844: Call-operator applied to non-function
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(101): ERROR C1822: Type mismatch (expected 'error ', given 'int ')
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(110): ERROR C2801: ';' missing
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(110): ERROR C2801: ';' missing
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(110): WARNING C1420: Result of function-call is ignored
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(117): ERROR C1815: EE_WASSTACKED not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(121): ERROR C1815: EE_STACKED not declared (or typename)
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(128): ERROR C2801: ';' missing
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(128): ERROR C2801: ';' missing
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(128): WARNING C1420: Result of function-call is ignored
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(129): ERROR C2801: '}' missing
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(130): ERROR C2801: ';' missing
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(130): ERROR C2801: ';' missing
C:\Evidence\ee\pkg\kernel\sem\src\ee_swait.c(130): WARNING C1420: Result of function-call is ignored
make: *** [obj/pkg/kernel/sem/src/ee_swait.o] Error 1
Is there a fix or workaround?
-rob
Unable to build wtih semaphores
Moderator: paolo.gai
Re: Unable to build wtih semaphores
Hi,
__SEM__ is for usage together with __FP__, __EDF__ or __FRSH__ .
If you got that error it means that you are using one of the OSEK Conformance classes. If so, please define __OO_SEM__, then be sure to use either ECC1 or ECC2, and be sure to give a private stack to all tasks using the semaphores.
Please also note that Semaphores are not standard OSEK/VDX...
Ciao,
PJ
__SEM__ is for usage together with __FP__, __EDF__ or __FRSH__ .
If you got that error it means that you are using one of the OSEK Conformance classes. If so, please define __OO_SEM__, then be sure to use either ECC1 or ECC2, and be sure to give a private stack to all tasks using the semaphores.
Please also note that Semaphores are not standard OSEK/VDX...
Ciao,
PJ
Re: Unable to build wtih semaphores
Also note that examples\s12xs\porting_examples\multistack_cw\EEtest5 uses FP, so it should work without problems (I'll check it again on monday).
Ciao,
PJ
Ciao,
PJ
Re: Unable to build wtih semaphores
Thanks Paolo for the quick response! My ECC2 project is building OK now.
-rob
-rob