I'm trying to use the System Analyzer window to verify that all my threads are executed in the right time. My program has four threads, one of which has to executes every 10ms and has a priority osPriorityHigh. When I take this one out of my program, I'm able to see the other three threads on the System Analyzer Window, but when I put it back and run the program with the four threads, the System Analyzer Window only displays the thread actions but not the threads themselves (see image below). How could I solve this problem? It is a problem of the EventRecorder configuration (I left it by default)? I'm using CMSIS::RTOS2 (RTX5), the target is a nRF52840.
Any help would be appreciated.
Please make sure, Event Recorder RAM is uninitialized: https://developer.arm.com/documentation/ka003868/latest
And also check, if in the Event Recorder Window Toolbar: https://www.keil.com/support/man/docs/uv4/uv4_db_dbg_evr_view.htm, missed events are indicated. In that case, the events informing the thread creation could have been lost. To better handle situations with event bursts, try reducing the number of generated events by deselecting them in the config and/or increase the event buffer "Number of Events" in the target RAM: https://www.keil.com/support/man/docs/uv4/uv4_db_dbg_evr_setup.htm
Hi Andreas. Thank you for replying. I changed the Number of Records to 512 and follow the instructions on here, and now I'm able to see all my threads on the System Analyzer Window, thank you for your advice! However, in the Event Recorder Window, if I understand well the Recording info, I still missing a lot of events (see image below). Could you please tell me where exactly I can deselect the generated events and where I can decrease the event buffer? I'm new using the Event Recorder.
Thank you!
Hello JAP_7, please open the RTX_Config.h file and switch to the Configuration Wizard view. Then edit the part regarding the Event Recorder in there:
https://arm-software.github.io/CMSIS_5/RTOS2/html/config_rtx5.html#evtrecConfig
There you can also de-select RTX5 related event generation. For example, uncheck Memory Pool, Message Queue and Timer to see if this already makes a difference. In the end, only enable the events you are interested in and hopefully, your debug system will not miss any of them.
Hello Andreas. By enabling only the threads recording on the Event Recorder section of RTX_Config.h, I don't miss any event. Thank you for your help!