Unable to build wtih semaphores

Forum related to ERIKA Enterprise and RT-Druid version 2

Moderator: paolo.gai

Locked
robmilne

Unable to build wtih semaphores

Post 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
paolo.gai
Administrator
Posts: 877
Joined: Thu Dec 07, 2006 12:11 pm

Re: Unable to build wtih semaphores

Post 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
paolo.gai
Administrator
Posts: 877
Joined: Thu Dec 07, 2006 12:11 pm

Re: Unable to build wtih semaphores

Post 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
robmilne

Re: Unable to build wtih semaphores

Post by robmilne »

Thanks Paolo for the quick response! My ECC2 project is building OK now.

-rob
Locked