August 5, 2022 at 08:48 #32955
I’m encountering the following error
“Could not find the following symbol in MbedProject1.elf: SysprogsRTOSHooks_RTX_thread_switch_helper
Please ensure that your project references the profiler framework, calls the InitializeInstruemtnignProfiler() function and is built with the USE_RTX preprocessor macro…”
When I’m trying to use the Instrumenting Profiler tool where debugging runs fine.
I double checked that <SysprogsProfiler.h> is defined and InitializeInstrumentingProfiler(); is called in main(); but unsure how you confirm if you’re building with the mentioned macro.
Thank you!August 5, 2022 at 09:01 #32956
Unfortunately, it is hard to suggest anything specific based on the description you provided.
In order for us to provide any help with this, we need to be able to reproduce the problem on our side.
Please provide complete and detailed steps to reproduce the issue as described below:
- The steps should begin with launching Visual Studio. They should include every step necessary to create the project from scratch and reproduce the issue.
- Please make sure the steps do not involve any 3rd-party code as we will not be able to review it. If the problem only happens with a specific project, please make sure you can reproduce it on a clean project created from scratch.
- The steps should include uncropped screenshots of all wizard pages, VisualGDB Project Properties pages and any other GUI involved in reproducing the problem. This is critical for us to be able to reproduce the problem on our side.
You can read more about the best way to report VisualGDB issues in our problem reporting guidelines, If you do not wish to document the repro steps and save the screenshots, please consider recording a screen video instead and sending us a link to it.August 7, 2022 at 08:18 #32962
Update: we have just rechecked VisualGDB profiling with the latest mbed 6.16 and it worked just fine. We have updated the tutorial showing how to patch the mbed source to facilitate profiling.
If it still doesn’t work for you, please follow the instructions in our previous reply to carefully document every step you take when creating the project, and we will gladly point out the possible cause of the problem.August 10, 2022 at 07:53 #32982
It worked, Thank you!August 10, 2022 at 08:03 #32983
I read this from the tutorials “Note that the interrupt handler takes a lot of time as we have not switched our device to the fast clock and the code execution is relatively slow compared to the rate of SysTick interrupts”
and am wondering how do you switch the instrumentingprofiler to a faster clock since it’s taking too long going through my code by e.g. instrumenting slowdown 23x. Thanks!August 12, 2022 at 08:09 #32997
The “fast clock” refers to the entire device rather than the profiler. E.g. using the HSE + PLL instead of the slower HSI clock. You can find more details about the STM32 clocks in the STM32 HAL documentation, device datasheets and mbed documentation.
That said, the instrumenting slowdown of 23x indicates that you have instrumented some very small functions that invoked frequently. We would advise finding out the most frequently executed functions via the profiler view, and then specifically excluding them from instrumentation in the “Start Profiling Session” window. This will greatly reduce the overhead, while still giving a good picture of the performance of various parts of your program.
You must be logged in to reply to this topic.