Hi there!
I'm trying to get Segger SysView working with FreeRTOS v10.3.1 on an ARM Cortex M0+. I applied the FreeRTOSV10_Core.patch by hand, added the example SEGGER_SYSVIEW_X_GetTimestamp() function and increment the SEGGER_SYSVIEW_TickCnt variable at the start of xPortSysTickHandler() in FreeRTOS/Source/portable/GCC/ARM_CM0/port.c as follows:
#ifdef CFG_SEGGER_SYSVIEW_ENABLED
volatile uint32_t SEGGER_SYSVIEW_TickCnt;
#endif
void xPortSysTickHandler( void )
{
uint32_t ulPreviousMask;
#ifdef CFG_SEGGER_SYSVIEW_ENABLED
SEGGER_SYSVIEW_TickCnt++;
#endif
ulPreviousMask = portSET_INTERRUPT_MASK_FROM_ISR();
traceISR_ENTER();
{
/* Increment the RTOS tick. */
if( xTaskIncrementTick() != pdFALSE )
{
traceISR_EXIT_TO_SCHEDULER();
/* Pend a context switch. */
portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
}
else
{
traceISR_EXIT();
}
}
portCLEAR_INTERRUPT_MASK_FROM_ISR( ulPreviousMask );
}
Display More
The SysTick and Scheduler events are shown correctly with timestamps in the event log but they are not displayed in the Timeline window:
I also noticed that there is a "No runtime!" warning.
Attached is "freertos_v10_3_1.SVDat" for inspection. It looks like my patch to FreeRTOS V10.3.1 was not completely successful. Any hints / tips on how to fix it would be much appreciated!
Thanks in advance,
Pieter
https://piconomix.com