Page 1 of 1

Unable to build wtih semaphores

Posted: Fri Apr 26, 2013 5:10 pm
by robmilne
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

Re: Unable to build wtih semaphores

Posted: Fri Apr 26, 2013 5:28 pm
by paolo.gai
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

Re: Unable to build wtih semaphores

Posted: Fri Apr 26, 2013 5:30 pm
by paolo.gai
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

Re: Unable to build wtih semaphores

Posted: Fri Apr 26, 2013 5:50 pm
by robmilne
Thanks Paolo for the quick response! My ECC2 project is building OK now.

-rob