Hello SEGGER Team,
I have recently started to use SEGGER’s SystemView to visualize interrupt execution on an ARM Cortex-M4 CPU. I have managed to set up everything and integrate SystemView into my project based on this User Guide: segger.com/downloads/free-utilities/UM08027
I am not using any embedded RTOS, my application is bare-metal and for the time being, I only want to use SystemView to monitor interrupt executions. Everything works well, except one thing: there is an issue that SystemView does not see the interrupts until an interrupt fires. For example, all of the interrupts in the Contexts window (Page 34 in the user guide) only become visible after an interrupt fires.
At the beginning of main I call:
void SEGGER_SYSVIEW_Conf(void);
Which calls:
void SEGGER_SYSVIEW_Init(U32 SysFreq, U32 CPUFreq, const SEGGER_SYSVIEW_OS_API *pOSAPI, SEGGER_SYSVIEW_SEND_SYS_DESC_FUNC pfSendSysDesc);
and
void SEGGER_SYSVIEW_SetRAMBase(U32 RAMBaseAddress);
I also implemented: static void _cbSendSystemDesc(void); which serves as the input parameter of pfSendSysDesc in the SEGGER_SYSVIEW_INIT(...) function.
In _cbSendSystemDesc(void) I use: void SEGGER_SYSVIEW_SendSysDesc(const char *sSysDesc) to send all the information related to interrupts in the form “I#<interrupt_id>=<interrupt_name>”.
So eventually, all the system information (basically the names of the interrupts) become available in SystemView but I have to wait until the first interrupt is fired. Is there a way that SystemView displays all of the interrupts, even if none of them was fired? (But once the recording started, of course.)
Thank you very much in advance!
I have recently started to use SEGGER’s SystemView to visualize interrupt execution on an ARM Cortex-M4 CPU. I have managed to set up everything and integrate SystemView into my project based on this User Guide: segger.com/downloads/free-utilities/UM08027
I am not using any embedded RTOS, my application is bare-metal and for the time being, I only want to use SystemView to monitor interrupt executions. Everything works well, except one thing: there is an issue that SystemView does not see the interrupts until an interrupt fires. For example, all of the interrupts in the Contexts window (Page 34 in the user guide) only become visible after an interrupt fires.
At the beginning of main I call:
void SEGGER_SYSVIEW_Conf(void);
Which calls:
void SEGGER_SYSVIEW_Init(U32 SysFreq, U32 CPUFreq, const SEGGER_SYSVIEW_OS_API *pOSAPI, SEGGER_SYSVIEW_SEND_SYS_DESC_FUNC pfSendSysDesc);
and
void SEGGER_SYSVIEW_SetRAMBase(U32 RAMBaseAddress);
I also implemented: static void _cbSendSystemDesc(void); which serves as the input parameter of pfSendSysDesc in the SEGGER_SYSVIEW_INIT(...) function.
In _cbSendSystemDesc(void) I use: void SEGGER_SYSVIEW_SendSysDesc(const char *sSysDesc) to send all the information related to interrupts in the form “I#<interrupt_id>=<interrupt_name>”.
So eventually, all the system information (basically the names of the interrupts) become available in SystemView but I have to wait until the first interrupt is fired. Is there a way that SystemView displays all of the interrupts, even if none of them was fired? (But once the recording started, of course.)
Thank you very much in advance!