Hi,
in the ProfilerRTOS_FreeRTOS.c file there is the following function:
void InitializeProfilerRTOSHooks()
{
volatile int x = 0;
extern void xQueueGenericSendFromISR();
extern void xQueueReceiveFromISR();
if (x)
{
SysprogsRTOSHooks_FreeRTOS_vTaskSwitchContext();
SysprogsRTOSHooks_FreeRTOS_vTaskDelete(0);
SysprogsRTOSHooks_FreeRTOS_SysTick_Handler();
#ifdef PROFILER_nRF5Xxxxx
SysprogsRTOSHooks_FreeRTOS_RTC1_IRQHandler();
#endif
SysprogsRTOSHooks_FreeRTOS_SVC_Handler();
SysprogsRTOSHooks_FreeRTOS_traceQUEUE_SEND_Actual(0);
SysprogsRTOSHooks_FreeRTOS_traceQUEUE_RECEIVE_Actual(0);
SysprogsRTOSHooks_FreeRTOS_SchedulerStarting();
x = (int)&xQueueGenericSendFromISR;
x = (int)&xQueueReceiveFromISR;
}
}
If I compile a project with FreeRTOS and FastSemihosting I get the compiler errors “Error conflicting types for ‘xQueueGenericSendFromISR’ …” and “Error conflicting types for ‘xQueueReceiveFromISR’ …”. This is because the file includes “FreeRTOS.h” which further includes “queue.h” (at least in the FreeRTOS port I use). So the declaration of those two functions is in the same c file and gets compiled into the same object. As the declaration does not match (return type and paramters) the compiler throws those two error messages. Of course I can fix this for myself but I would have to change it any time you update the FastSemihosting code. It would be great if you could fix it in your code as well.
Thanks!
Elias
-
This topic was modified 3 years, 4 months ago by support. Reason: formatting