Updates to the Cortex-M tickless idle code to reduce clock slippage.

Updates to prevent the vTaskSwitchContext() function being removed from GCC builds when link time optimisation is used.
This commit is contained in:
Richard Barry 2017-03-28 03:13:48 +00:00
parent 7ee26c1b5e
commit 464c2660ad
16 changed files with 686 additions and 505 deletions

View file

@ -84,6 +84,9 @@ extern "C" {
*-----------------------------------------------------------
*/
/* IAR includes. */
#include <intrinsics.h>
/* Type definitions. */
#define portCHAR char
#define portFLOAT float
@ -137,7 +140,7 @@ typedef unsigned long UBaseType_t;
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
#endif
#if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1
#if( configUSE_PORT_OPTIMISED_TASK_SELECTION == 1 )
/* Check the configuration. */
#if( configMAX_PRIORITIES > 32 )
@ -150,7 +153,6 @@ typedef unsigned long UBaseType_t;
/*-----------------------------------------------------------*/
#include <intrinsics.h>
#define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) uxTopPriority = ( 31UL - ( ( uint32_t ) __CLZ( ( uxReadyPriorities ) ) ) )
#endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */