This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Can lazy stacking be enabled while SYSBIOS is running

Other Parts Discussed in Thread: SYSBIOS

Hi,

This is a follow up to a previous old post related to MSP432 operation.

In my code, I enable lazy FP register stacking [FPU_enableLazyStacking();]  in main() before starting SYSBIOS [BIOS_start();].

It appears that as SYSBIOS starts up, it explicitly turns off lazy stacking because once SYSBIOS is running FPCCR.ASPEN = 0 & FPCCR.LSPEN = 0

So my question is, given that SYSBIOS seems to explicitly turn off lazy stacking as it starts up, is it safe to turn it back on again or will this cause the OS trouble?

Cheers

Julian

  • Lazy Stacking is a feature of ARM. I think you can find more description about this when searching "RTOS + lazy stacking". If you want to open it, you need to make sure whether you have use "FPU".

  • G'Day Eason,

    Thank you for your reply. 

    Our project (which includes floating point operations) uses SYSBIOS running on an MSP432 (M4F) device.  

    As best I can tell, other RTOS implementation support Lazy Stacking  (e.g. FreeRTOS, ChibiOS) but its not clear whether SYSBIOS does.

    Indeed it seems SYSBIOS explicitly turns off lazy stacking.  See  [SIMPLELINK]kernel\tirtos\packages\ti\sysbios\family\arm\m3\Hwi.c lines 458 - 463. 

    #if (defined(__TI_VFP_SUPPORT__) || \
        (defined(__VFP_FP__) && !defined(__SOFTFP__)) || \
        defined(__ARMVFP__))
        /* disable lazy stacking mode fp indications in control register */
        Hwi_nvic.FPCCR &= ~0xc0000000; /* clear ASPEN and LSPEN bits */
    #endif

    I've single stepped through this function [Hwi_initNVIC()] and I can confirm that this is where SYSBIOS turns off lazy stacking. 

    So I think my question stands.  Does SYSBIOS support Lazy Stacking?

    Cheers

    Julian

  • Hi Julian,

    Thank you to clarify the problem. I think it supports Lazy Stacking. You can double check with the defined value, like this. You can get more information.

    Eason

**Attention** This is a public forum