Stuck with semaphore compiler errors
I’m getting two compiler errors due to the use of semaphores that I can’ t figure out – details below.
I’m compiling for an NXP LPC-2103 ARM7-TDMI micro using:
- FreeRTOS V5.3.0
- Eclipse Ganeymeded V3.4.2
- Zylin Embedded CDT V4.6.1
- YAGARTO
binutils: 2.19.1
gcc: 4.3.3
newlib: 1.17.0
gdb: 6.8.50-20080308-cvs
I’m trying to use semaphores to implement deferred interrupt processing. I have:
- an init function called from main.c that creates the semaphore…
vSemaphoreCreateBinary( xI2CSemaphore );
- an isr wrapper and an isr
- the isr "gives" the semaphore
xSemaphoreGiveFromISR(xI2CSemaphore, &xI2CSemaphoreWokeTask);
- a task "takes" the semaphore
if (xSemaphoreTake(xI2CSemaphore, (portTickType) 1) == pdTRUE) {
I have the init function and the task in a common .c file that includes a global variable definition for the semaphore handle
xSemaphoreHandle xI2CSemaphore = NULL;
The isr wrapper and isr are in another .c file that includes an external global variable reference
extern xSemaphoreHandle xI2CSemaphore;
I get the following errors:
PROJECT/i2cISR.c:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘xI2CSemaphore’
PROJECT/i2cISR.c: In function ‘vI2C_ISR’:
PROJECT/i2cISR.c:74: error: ‘xI2CSemaphore’ undeclared (first use in this function)
I’m stuck. Any help is appreciated!
TC
Stuck with semaphore compiler errors
Compiler doesn’t understand, what xSemaphoreHandle means. Propably you forgot to include "semphr.h" file in header, where your
extern xSemaphoreHandle xI2CSemaphore;
is.
Regards,
Adam
Stuck with semaphore compiler errors
That was it. I figured I was leaving out something obvious but I just couldn’t figure it out.
Thanks for the help!
TC