Skip to main content
Visitor II
October 18, 2019
Solved

Long Blocking MotionFX_manger_run() Processing Time

  • October 18, 2019
  • 1 reply
  • 742 views

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

    This topic has been closed for replies.
    Best answer by Miroslav BATEK

    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.

    1 reply

    ST Employee
    October 18, 2019

    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.