cancel
Showing results for 
Search instead for 
Did you mean: 

Long Blocking MotionFX_manger_run() Processing Time

Daniel L
Associate III

Hi, I am currently having an issue where the MotionFX_manager_run Function is taking 4ms to process, blocking and starving other tasks. I am running at 48MHz on the STM32WB55 using the softfp compilation. How can I reduce the processing time of the function and double check it is using the FPU?

/* Run Sensor Fusion algorithm */
PORT_LPUART1_RX->BSRR = PIN_LPUART1_RX;
MotionFX_manager_run(pdata_in, pdata_out, MOTIONFX_ENGINE_DELTATIME);
PORT_LPUART1_RX->BRR = PIN_LPUART1_RX;

0690X00000AqWftQAF.jpg

Thanks,

Daniel

1 ACCEPTED SOLUTION

Accepted Solutions
Miroslav BATEK
ST Employee

Hi,

elapsed time 4ms on Cortex-M4 running at 48MHz is expected value.

It is not possible to reduce the elapsed time unless you increase clock speed. MotionFX is complex algorithm.

Softfp option use FPU, it doesn't use specific FPU registers for passing parameters during function calls, but it doesn't have impact on performance.

View solution in original post

1 REPLY 1
Miroslav BATEK
ST Employee

Hi,

elapsed time 4ms on Cortex-M4 running at 48MHz is expected value.

It is not possible to reduce the elapsed time unless you increase clock speed. MotionFX is complex algorithm.

Softfp option use FPU, it doesn't use specific FPU registers for passing parameters during function calls, but it doesn't have impact on performance.