stm32f7, vPortRaiseBASEPRI

Hello, I want to start ethernet on stm32f7 but task always sticks on one place –
if (inHandlerMode()) { if (xSemaphoreTakeFromISR(semaphoreid, &taskWoken) != pdTRUE) { return osErrorOS; } portENDSWITCHINGISR(taskWoken); }
else if (xSemaphoreTake(semaphore
id, ticks) != pdTRUE) { return osErrorOS; } , and when I put breakpoint I receive this message: Program received signal SIGINT, Interrupt. 0x08005352 in vPortRaiseBASEPRI () at C:/Projects/STM32F7/Middlewares/FreeRTOS/Source/Portable/GCC/ARM_CM7/r0p1/portmacro.h:215 215 __asm volatile Any idea why is that. When I put my code in exmple of ethernet at stm it works fine.

stm32f7, vPortRaiseBASEPRI

I’m not sure where this code comes from. ~~~~ if (inHandlerMode()) { if (xSemaphoreTakeFromISR(semaphoreid, &taskWoken) != pdTRUE) { return osErrorOS; } portENDSWITCHINGISR(taskWoken); } else if (xSemaphoreTake(semaphoreid, ticks) != pdTRUE) { return osErrorOS; } ~~~~ It looks like inHandlerMode() returns true if the function is called from an ISR? Where did you get your NetworkInterface.c from? Does that contain the above code?

stm32f7, vPortRaiseBASEPRI

NetworkInterface.c I didnt have this file. ~~~ int32t osSemaphoreWait (osSemaphoreId semaphoreid, uint32t millisec) { TickTypet ticks; portBASE_TYPE taskWoken = pdFALSE; if (semaphore_id == NULL) { return osErrorParameter; } ticks = 0; if (millisec == osWaitForever) { ticks = portMAXDELAY; } else if (millisec != 0) { ticks = millisec / portTICKPERIOD_MS; if (ticks == 0) { ticks = 1; } } if (inHandlerMode()) { if (xSemaphoreTakeFromISR(semaphoreid, &taskWoken) != pdTRUE) { return osErrorOS; } portENDSWITCHINGISR(taskWoken); }
else if (xSemaphoreTake(semaphore
id, ticks) != pdTRUE) { return osErrorOS; } return osOK; } ~~~ This is whole function. It is in cmsis_os.c

stm32f7, vPortRaiseBASEPRI

There is a pre-configured STM32 Ethernet example here: http://www.freertos.org/FreeRTOS-Plus/FreeRTOSPlusTCP/TCP-IPFATExamplesSTSTM32F407.html

stm32f7, vPortRaiseBASEPRI

This is whole function. It is in cmsis_os.c
This is not a file that is provided in the official FreeRTOS distribution. I think it is the CMSIS wrapper provided by ST.

stm32f7, vPortRaiseBASEPRI

Thank you, I’ll asked ST for more information