Introduce configENABLE_BACKWARD_COMPATIBILITY to allow the #defines that provide backward compatibility with FreeRTOS version prior to V8 to be optionally omitted.

This commit is contained in:
Richard Barry 2014-01-13 20:26:47 +00:00
parent f01bf9fdc3
commit a1b8079df1
8 changed files with 137 additions and 47 deletions

View file

@ -1,9 +1,21 @@
#ifndef STDINT_INC #ifndef FREERTOS_STDINT
#define STDINT_INC #define FREERTOS_STDINT
/* This file will get picked up when stdint.h does not appear in the default /*******************************************************************************
include path (which it doesn't seem to be - even though the file exists). */ * THIS IS NOT A FULL stdint.h IMPLEMENTATION - It only contains the definitions
* necessary to build the FreeRTOS code. It is provided to allow FreeRTOS to be
* built using compilers that do not provide their own stdint.h definition.
*
* To use this file:
*
* 1) Copy this file into the directory that contains your FreeRTOSConfig.h
* header file, as that directory will already be in the compilers include
* path.
*
* 2) Rename the copied file stdint.h.
*
*/
typedef signed char int8_t; typedef signed char int8_t;
typedef unsigned char uint8_t; typedef unsigned char uint8_t;
@ -12,4 +24,4 @@ typedef unsigned short uint16_t;
typedef long int32_t; typedef long int32_t;
typedef unsigned long uint32_t; typedef unsigned long uint32_t;
#endif /* STDINT_INC */ #endif /* FREERTOS_STDINT */

View file

@ -1,9 +1,21 @@
#ifndef STDINT_INC #ifndef FREERTOS_STDINT
#define STDINT_INC #define FREERTOS_STDINT
/* This file will get picked up when stdint.h does not appear in the default /*******************************************************************************
include path (which it doesn't seem to be - even though the file exists). */ * THIS IS NOT A FULL stdint.h IMPLEMENTATION - It only contains the definitions
* necessary to build the FreeRTOS code. It is provided to allow FreeRTOS to be
* built using compilers that do not provide their own stdint.h definition.
*
* To use this file:
*
* 1) Copy this file into the directory that contains your FreeRTOSConfig.h
* header file, as that directory will already be in the compilers include
* path.
*
* 2) Rename the copied file stdint.h.
*
*/
typedef signed char int8_t; typedef signed char int8_t;
typedef unsigned char uint8_t; typedef unsigned char uint8_t;
@ -12,4 +24,4 @@ typedef unsigned short uint16_t;
typedef long int32_t; typedef long int32_t;
typedef unsigned long uint32_t; typedef unsigned long uint32_t;
#endif /* STDINT_INC */ #endif /* FREERTOS_STDINT */

View file

@ -1,9 +1,21 @@
#ifndef STDINT_INC #ifndef FREERTOS_STDINT
#define STDINT_INC #define FREERTOS_STDINT
/* This file will get picked up when stdint.h does not appear in the default /*******************************************************************************
include path (which it doesn't seem to be - even though the file exists). */ * THIS IS NOT A FULL stdint.h IMPLEMENTATION - It only contains the definitions
* necessary to build the FreeRTOS code. It is provided to allow FreeRTOS to be
* built using compilers that do not provide their own stdint.h definition.
*
* To use this file:
*
* 1) Copy this file into the directory that contains your FreeRTOSConfig.h
* header file, as that directory will already be in the compilers include
* path.
*
* 2) Rename the copied file stdint.h.
*
*/
typedef signed char int8_t; typedef signed char int8_t;
typedef unsigned char uint8_t; typedef unsigned char uint8_t;
@ -12,4 +24,4 @@ typedef unsigned short uint16_t;
typedef long int32_t; typedef long int32_t;
typedef unsigned long uint32_t; typedef unsigned long uint32_t;
#endif /* STDINT_INC */ #endif /* FREERTOS_STDINT */

View file

@ -1,9 +1,21 @@
#ifndef STDINT_INC #ifndef FREERTOS_STDINT
#define STDINT_INC #define FREERTOS_STDINT
/* This file will get picked up when stdint.h does not appear in the default /*******************************************************************************
include path (which it doesn't seem to be - even though the file exists). */ * THIS IS NOT A FULL stdint.h IMPLEMENTATION - It only contains the definitions
* necessary to build the FreeRTOS code. It is provided to allow FreeRTOS to be
* built using compilers that do not provide their own stdint.h definition.
*
* To use this file:
*
* 1) Copy this file into the directory that contains your FreeRTOSConfig.h
* header file, as that directory will already be in the compilers include
* path.
*
* 2) Rename the copied file stdint.h.
*
*/
typedef signed char int8_t; typedef signed char int8_t;
typedef unsigned char uint8_t; typedef unsigned char uint8_t;
@ -12,4 +24,4 @@ typedef unsigned short uint16_t;
typedef long int32_t; typedef long int32_t;
typedef unsigned long uint32_t; typedef unsigned long uint32_t;
#endif /* STDINT_INC */ #endif /* FREERTOS_STDINT */

View file

@ -73,6 +73,14 @@
#include <stddef.h> #include <stddef.h>
#include <stdint.h> #include <stdint.h>
/* Check stdint.h was included. */
#ifndef UINT32_MAX
/* Check if the FreeRTOS stdint subset has been included. */
#ifndef FREERTOS_STDINT
#error Read the instructions in FreeRTOS/source/stdint.readme if stdint.h is not provided with your compiler.
#endif /* FREERTOS_STDINT */
#endif /* UINT32_MAX */
/* Basic FreeRTOS definitions. */ /* Basic FreeRTOS definitions. */
#include "projdefs.h" #include "projdefs.h"
@ -684,29 +692,36 @@ is included as it is used by the port layer. */
#define mtCOVERAGE_TEST_MARKER() #define mtCOVERAGE_TEST_MARKER()
#endif #endif
/* For backward compatibility. */ /* Definitions to allow backward compatibility with FreeRTOS versions prior to
#define eTaskStateGet eTaskGetState V8 if desired. */
#define portTickType TickType_t #ifndef configENABLE_BACKWARD_COMPATIBILITY
#define xTaskHandle TaskHandle_t #define configENABLE_BACKWARD_COMPATIBILITY 1
#define xQueueHandle QueueHandle_t #endif
#define xSemaphoreHandle SemaphoreHandle_t
#define xQueueSetHandle QueueSetHandle_t
#define xQueueSetMemberHandle QueueSetMemberHandle_t
#define xTimeOutType TimeOut_t
#define xMemoryRegion MemoryRegion_t
#define xTaskParameters TaskParameters_t
#define xTaskStatusType TaskStatus_t
#define xTimerHandle TimerHandle_t
#define xCoRoutineHandle CoRoutineHandle_t
#define pdTASK_HOOK_CODE TaskHookFunction_t
#define portTICK_RATE_MS portTICK_PERIOD_MS
/* Backward compatibility within the scheduler code only - these definitions #if configENABLE_BACKWARD_COMPATIBILITY == 1
are not really required but are included for completeness. */ #define eTaskStateGet eTaskGetState
#define tmrTIMER_CALLBACK TimerCallbackFunction_t #define portTickType TickType_t
#define pdTASK_CODE TaskFunction_t #define xTaskHandle TaskHandle_t
#define xListItem ListItem_t #define xQueueHandle QueueHandle_t
#define xList List_t #define xSemaphoreHandle SemaphoreHandle_t
#define xQueueSetHandle QueueSetHandle_t
#define xQueueSetMemberHandle QueueSetMemberHandle_t
#define xTimeOutType TimeOut_t
#define xMemoryRegion MemoryRegion_t
#define xTaskParameters TaskParameters_t
#define xTaskStatusType TaskStatus_t
#define xTimerHandle TimerHandle_t
#define xCoRoutineHandle CoRoutineHandle_t
#define pdTASK_HOOK_CODE TaskHookFunction_t
#define portTICK_RATE_MS portTICK_PERIOD_MS
/* Backward compatibility within the scheduler code only - these definitions
are not really required but are included for completeness. */
#define tmrTIMER_CALLBACK TimerCallbackFunction_t
#define pdTASK_CODE TaskFunction_t
#define xListItem ListItem_t
#define xList List_t
#endif /* configENABLE_BACKWARD_COMPATIBILITY */
#endif /* INC_FREERTOS_H */ #endif /* INC_FREERTOS_H */

View file

@ -0,0 +1,27 @@
#ifndef FREERTOS_STDINT
#define FREERTOS_STDINT
/*******************************************************************************
* THIS IS NOT A FULL stdint.h IMPLEMENTATION - It only contains the definitions
* necessary to build the FreeRTOS code. It is provided to allow FreeRTOS to be
* built using compilers that do not provide their own stdint.h definition.
*
* To use this file:
*
* 1) Copy this file into the directory that contains your FreeRTOSConfig.h
* header file, as that directory will already be in the compilers include
* path.
*
* 2) Rename the copied file stdint.h.
*
*/
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef short int16_t;
typedef unsigned short uint16_t;
typedef long int32_t;
typedef unsigned long uint32_t;
#endif /* FREERTOS_STDINT */

View file

@ -94,9 +94,9 @@
#define portSTACK_TYPE uint32_t #define portSTACK_TYPE uint32_t
#define portBASE_TYPE long #define portBASE_TYPE long
typedef portSTACK_TYPE StackType_t; typedef portSTACK_TYPE StackType_t;
typedef long BaseType_t; typedef long BaseType_t;
typedef unsigned long UBaseType_t; typedef unsigned long UBaseType_t;
typedef uint32_t TickType_t; typedef uint32_t TickType_t;
#define portMAX_DELAY ( TickType_t ) 0xffffffffUL #define portMAX_DELAY ( TickType_t ) 0xffffffffUL
@ -115,7 +115,7 @@ typedef unsigned long UBaseType_t;
/* Called at the end of an ISR that can cause a context switch. */ /* Called at the end of an ISR that can cause a context switch. */
#define portEND_SWITCHING_ISR( xSwitchRequired )\ #define portEND_SWITCHING_ISR( xSwitchRequired )\
{ \ { \
extern uint32_t ulPortYieldRequired; \ extern uint32_t ulPortYieldRequired; \
\ \
if( xSwitchRequired != pdFALSE ) \ if( xSwitchRequired != pdFALSE ) \
{ \ { \

View file

@ -115,7 +115,7 @@ typedef unsigned long UBaseType_t;
/* Called at the end of an ISR that can cause a context switch. */ /* Called at the end of an ISR that can cause a context switch. */
#define portEND_SWITCHING_ISR( xSwitchRequired )\ #define portEND_SWITCHING_ISR( xSwitchRequired )\
{ \ { \
extern uint32_t ulPortYieldRequired; \ extern uint32_t ulPortYieldRequired; \
\ \
if( xSwitchRequired != pdFALSE ) \ if( xSwitchRequired != pdFALSE ) \
{ \ { \