tree d17814949e30ed540daa9d9394cbf135286d19da
parent 1431b65110a294720b75af2f80b0f6465220a90f
author Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com> 1604597216 -0800
committer GitHub <noreply@github.com> 1604597216 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfpDXgCRBK7hj4Ov3rIwAAdHIIADeluc67qeak/AmdGNycE+rW
 ZO+7OJXqkkoR2yN3GeKS0EVvAdd/hpdS3eFW+TOrBJlli9V2Ry2//bZA78v4dYS+
 UXEEUExDwo7LpmH8JYq5h6MM8egLirDfZa+dFvDzJ5bs3RffOjBHZTseGU6zMcIZ
 t7ch6pvOqbwFZilebhaL9vkYjhk0wlwLc4wA5uMDQVm/bvUpogtzf8jAlV5jJQc5
 8fQQ4eftMLyzwb5NNLw4mMv5+QfItiMxDkOjVOfWUknxX9JN6e9jP4kPLFNibISN
 CedgPWfjFA0lHSGO+WECg6phvoLrMIG+AwvM+gpAtzIiEcG4H8GDLvLbcRkCZqY=
 =nRt4
 -----END PGP SIGNATURE-----
 

Ensure interrupts are enabled at first task start (#214)

Critical sections in FreeRTOS are implemented using the following two
functions:

void vPortEnterCritical( void )
{
    portDISABLE_INTERRUPTS();
    uxCriticalNesting++;
}

void vPortExitCritical( void )
{
    uxCriticalNesting--;

    if( uxCriticalNesting == 0 )
    {
        portENABLE_INTERRUPTS();
    }
}

uxCriticalNesting is initialized to a large value at the start and set
to zero when the scheduler is started (xPortStartScheduler). As a
result, before the scheduler is started, a pair of enter/exit critical
section will leave the interrupts disabled because uxCriticalNesting
will not reach zero in the vPortExitCritical function. This is done to
ensure that the interrupts remain disabled from the time first FreeRTOS
API is called to the time when the scheduler is started. The scheduler
starting code is expected to enure that interrupts are enabled before
the first task starts executing.

Cortex-M33 ports were not enabling interrupts before starting the first
task and as a result, the first task was started with interrupts
disabled. This PR fixes the issue by ensuring that interrupts are
enabled before the first task is started.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>