]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c
Update version number to 9.0.0rc2.
[freertos] / FreeRTOS / Source / portable / GCC / ARM_CM3_MPU / port.c
index 651a1111af858d5a29cdf8cb4439d3f308b1393d..f5420d519d936ac24f5b3d1fe91a0c5a7695cb01 100644 (file)
@@ -1,59 +1,64 @@
 /*\r
-    FreeRTOS V7.5.0 - Copyright (C) 2013 Real Time Engineers Ltd.\r
+    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
+    All rights reserved\r
 \r
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
 \r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS provides completely free yet professionally developed,    *\r
-     *    robust, strictly quality controlled, supported, and cross          *\r
-     *    platform software that has become a de facto standard.             *\r
-     *                                                                       *\r
-     *    Help yourself get started quickly and support the FreeRTOS         *\r
-     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
-     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
-     *                                                                       *\r
-     *    Thank you!                                                         *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
     This file is part of the FreeRTOS distribution.\r
 \r
     FreeRTOS is free software; you can redistribute it and/or modify it under\r
     the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
 \r
-    >>! NOTE: The modification to the GPL is included to allow you to distribute\r
-    >>! a combined work that includes FreeRTOS without being obliged to provide\r
-    >>! the source code for proprietary components outside of the FreeRTOS\r
-    >>! kernel.\r
+    ***************************************************************************\r
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
+    >>!   obliged to provide the source code for proprietary components     !<<\r
+    >>!   outside of the FreeRTOS kernel.                                   !<<\r
+    ***************************************************************************\r
 \r
     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
-    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available on the following\r
     link: http://www.freertos.org/a00114.html\r
 \r
-    1 tab == 4 spaces!\r
-\r
     ***************************************************************************\r
      *                                                                       *\r
-     *    Having a problem?  Start by reading the FAQ "My application does   *\r
-     *    not run, what could be wrong?"                                     *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that is more than just the market leader, it     *\r
+     *    is the industry's de facto standard.                               *\r
      *                                                                       *\r
-     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+     *    Help yourself get started quickly while simultaneously helping     *\r
+     *    to support the FreeRTOS project by purchasing a FreeRTOS           *\r
+     *    tutorial book, reference manual, or both:                          *\r
+     *    http://www.FreeRTOS.org/Documentation                              *\r
      *                                                                       *\r
     ***************************************************************************\r
 \r
-    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
-    license and Real Time Engineers Ltd. contact details.\r
+    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading\r
+    the FAQ page "My application does not run, what could be wrong?".  Have you\r
+    defined configASSERT()?\r
+\r
+    http://www.FreeRTOS.org/support - In return for receiving this top quality\r
+    embedded software for free we request you assist our global community by\r
+    participating in the support forum.\r
+\r
+    http://www.FreeRTOS.org/training - Investing in training allows your team to\r
+    be as productive as possible as early as possible.  Now you can receive\r
+    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
+    Ltd, and the world's leading authority on the world's leading RTOS.\r
 \r
     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
     including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
     compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
 \r
-    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
-    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
-    licenses offer ticketed support, indemnification and middleware.\r
+    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
+    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
+    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and commercial middleware.\r
 \r
     http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
     engineered and independently SIL3 certified version for use in safety and\r
@@ -66,6 +71,8 @@
  * Implementation of functions defined in portable.h for the ARM CM3 port.\r
  *----------------------------------------------------------*/\r
 \r
+#error This port is not supported in this V9.0.0 pre-release revision, but will be supported in the final release.  For now use V8.2.3 instead.\r
\r
 /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining\r
 all the API functions to use the MPU wrappers.  That should only be done when\r
 task.h is included from an application file. */\r
@@ -79,18 +86,18 @@ task.h is included from an application file. */
 #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE\r
 \r
 /* Constants required to access and manipulate the NVIC. */\r
-#define portNVIC_SYSTICK_CTRL                                  ( ( volatile unsigned long * ) 0xe000e010 )\r
-#define portNVIC_SYSTICK_LOAD                                  ( ( volatile unsigned long * ) 0xe000e014 )\r
-#define portNVIC_SYSPRI2                                               ( ( volatile unsigned long * ) 0xe000ed20 )\r
-#define portNVIC_SYSPRI1                                               ( ( volatile unsigned long * ) 0xe000ed1c )\r
-#define portNVIC_SYS_CTRL_STATE                                        ( ( volatile unsigned long * ) 0xe000ed24 )\r
+#define portNVIC_SYSTICK_CTRL                                  ( ( volatile uint32_t * ) 0xe000e010 )\r
+#define portNVIC_SYSTICK_LOAD                                  ( ( volatile uint32_t * ) 0xe000e014 )\r
+#define portNVIC_SYSPRI2                                               ( ( volatile uint32_t * ) 0xe000ed20 )\r
+#define portNVIC_SYSPRI1                                               ( ( volatile uint32_t * ) 0xe000ed1c )\r
+#define portNVIC_SYS_CTRL_STATE                                        ( ( volatile uint32_t * ) 0xe000ed24 )\r
 #define portNVIC_MEM_FAULT_ENABLE                              ( 1UL << 16UL )\r
 \r
 /* Constants required to access and manipulate the MPU. */\r
-#define portMPU_TYPE                                                   ( ( volatile unsigned long * ) 0xe000ed90 )\r
-#define portMPU_REGION_BASE_ADDRESS                            ( ( volatile unsigned long * ) 0xe000ed9C )\r
-#define portMPU_REGION_ATTRIBUTE                               ( ( volatile unsigned long * ) 0xe000edA0 )\r
-#define portMPU_CTRL                                                   ( ( volatile unsigned long * ) 0xe000ed94 )\r
+#define portMPU_TYPE                                                   ( ( volatile uint32_t * ) 0xe000ed90 )\r
+#define portMPU_REGION_BASE_ADDRESS                            ( ( volatile uint32_t * ) 0xe000ed9C )\r
+#define portMPU_REGION_ATTRIBUTE                               ( ( volatile uint32_t * ) 0xe000edA0 )\r
+#define portMPU_CTRL                                                   ( ( volatile uint32_t * ) 0xe000ed94 )\r
 #define portEXPECTED_MPU_TYPE_VALUE                            ( 8UL << 8UL ) /* 8 regions, unified. */\r
 #define portMPU_ENABLE                                                 ( 0x01UL )\r
 #define portMPU_BACKGROUND_ENABLE                              ( 1UL << 2UL )\r
@@ -104,9 +111,9 @@ task.h is included from an application file. */
 #define portNVIC_SYSTICK_CLK                                   ( 0x00000004UL )\r
 #define portNVIC_SYSTICK_INT                                   ( 0x00000002UL )\r
 #define portNVIC_SYSTICK_ENABLE                                        ( 0x00000001UL )\r
-#define portNVIC_PENDSV_PRI                                            ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 16UL )\r
-#define portNVIC_SYSTICK_PRI                                   ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 24UL )\r
-#define portNVIC_SVC_PRI                                               ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 24UL )\r
+#define portNVIC_PENDSV_PRI                                            ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 16UL )\r
+#define portNVIC_SYSTICK_PRI                                   ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 24UL )\r
+#define portNVIC_SVC_PRI                                               ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 24UL )\r
 \r
 /* Constants required to set up the initial stack. */\r
 #define portINITIAL_XPSR                                               ( 0x01000000 )\r
@@ -122,7 +129,7 @@ task.h is included from an application file. */
 /* Each task maintains its own interrupt status in the critical nesting\r
 variable.  Note this is not saved as part of the task context as context\r
 switches can only occur when uxCriticalNesting is zero. */\r
-static unsigned portBASE_TYPE uxCriticalNesting = 0xaaaaaaaa;\r
+static UBaseType_t uxCriticalNesting = 0xaaaaaaaa;\r
 \r
 /*\r
  * Setup the timer to generate the tick interrupts.\r
@@ -139,14 +146,14 @@ static void prvSetupMPU( void ) PRIVILEGED_FUNCTION;
  * into.  The region size is returned as the value that should be programmed\r
  * into the region attribute register for that region.\r
  */\r
-static unsigned long prvGetMPURegionSizeSetting( unsigned long ulActualSizeInBytes ) PRIVILEGED_FUNCTION;\r
+static uint32_t prvGetMPURegionSizeSetting( uint32_t ulActualSizeInBytes ) PRIVILEGED_FUNCTION;\r
 \r
 /*\r
  * Checks to see if being called from the context of an unprivileged task, and\r
  * if so raises the privilege level and returns false - otherwise does nothing\r
  * other than return true.\r
  */\r
-static portBASE_TYPE prvRaisePrivilege( void ) __attribute__(( naked ));\r
+static BaseType_t prvRaisePrivilege( void ) __attribute__(( naked ));\r
 \r
 /*\r
  * Standard FreeRTOS exception handlers.\r
@@ -164,76 +171,74 @@ static void prvRestoreContextOfFirstTask( void ) __attribute__(( naked )) PRIVIL
  * C portion of the SVC handler.  The SVC handler is split between an asm entry\r
  * and a C wrapper for simplicity of coding and maintenance.\r
  */\r
-static void prvSVCHandler( unsigned long *pulRegisters ) __attribute__(( noinline )) PRIVILEGED_FUNCTION;\r
+static void prvSVCHandler( uint32_t *pulRegisters ) __attribute__(( noinline )) PRIVILEGED_FUNCTION;\r
 \r
 /*\r
  * Prototypes for all the MPU wrappers.\r
  */\r
-signed portBASE_TYPE MPU_xTaskGenericCreate( pdTASK_CODE pvTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions );\r
-void MPU_vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const xRegions );\r
-void MPU_vTaskDelete( xTaskHandle pxTaskToDelete );\r
-void MPU_vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement );\r
-void MPU_vTaskDelay( portTickType xTicksToDelay );\r
-unsigned portBASE_TYPE MPU_uxTaskPriorityGet( xTaskHandle pxTask );\r
-void MPU_vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority );\r
-eTaskState MPU_eTaskGetState( xTaskHandle pxTask );\r
-void MPU_vTaskSuspend( xTaskHandle pxTaskToSuspend );\r
-signed portBASE_TYPE MPU_xTaskIsTaskSuspended( xTaskHandle xTask );\r
-void MPU_vTaskResume( xTaskHandle pxTaskToResume );\r
+BaseType_t MPU_xTaskGenericCreate( TaskFunction_t pvTaskCode, const char * const pcName, uint16_t usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pxCreatedTask, StackType_t *puxStackBuffer, const MemoryRegion_t * const xRegions );\r
+void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const xRegions );\r
+void MPU_vTaskDelete( TaskHandle_t pxTaskToDelete );\r
+void MPU_vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, TickType_t xTimeIncrement );\r
+void MPU_vTaskDelay( TickType_t xTicksToDelay );\r
+UBaseType_t MPU_uxTaskPriorityGet( TaskHandle_t pxTask );\r
+void MPU_vTaskPrioritySet( TaskHandle_t pxTask, UBaseType_t uxNewPriority );\r
+eTaskState MPU_eTaskGetState( TaskHandle_t pxTask );\r
+void MPU_vTaskSuspend( TaskHandle_t pxTaskToSuspend );\r
+void MPU_vTaskResume( TaskHandle_t pxTaskToResume );\r
 void MPU_vTaskSuspendAll( void );\r
-signed portBASE_TYPE MPU_xTaskResumeAll( void );\r
-portTickType MPU_xTaskGetTickCount( void );\r
-unsigned portBASE_TYPE MPU_uxTaskGetNumberOfTasks( void );\r
-void MPU_vTaskList( signed char *pcWriteBuffer );\r
-void MPU_vTaskGetRunTimeStats( signed char *pcWriteBuffer );\r
-void MPU_vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxTagValue );\r
-pdTASK_HOOK_CODE MPU_xTaskGetApplicationTaskTag( xTaskHandle xTask );\r
-portBASE_TYPE MPU_xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter );\r
-unsigned portBASE_TYPE MPU_uxTaskGetStackHighWaterMark( xTaskHandle xTask );\r
-xTaskHandle MPU_xTaskGetCurrentTaskHandle( void );\r
-portBASE_TYPE MPU_xTaskGetSchedulerState( void );\r
-xTaskHandle MPU_xTaskGetIdleTaskHandle( void );\r
-unsigned portBASE_TYPE MPU_uxTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, unsigned portBASE_TYPE uxArraySize, unsigned long *pulTotalRunTime );\r
-xQueueHandle MPU_xQueueGenericCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType );\r
-signed portBASE_TYPE MPU_xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
-portBASE_TYPE MPU_xQueueGenericReset( xQueueHandle pxQueue, portBASE_TYPE xNewQueue );\r
-unsigned portBASE_TYPE MPU_uxQueueMessagesWaiting( const xQueueHandle pxQueue );\r
-signed portBASE_TYPE MPU_xQueueGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking );\r
-xQueueHandle MPU_xQueueCreateMutex( void );\r
-xQueueHandle MPU_xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount );\r
-portBASE_TYPE MPU_xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime );\r
-portBASE_TYPE MPU_xQueueGiveMutexRecursive( xQueueHandle xMutex );\r
-signed portBASE_TYPE MPU_xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
-signed portBASE_TYPE MPU_xQueueAltGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking );\r
-void MPU_vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcName );\r
-void MPU_vQueueDelete( xQueueHandle xQueue );\r
+BaseType_t MPU_xTaskResumeAll( void );\r
+TickType_t MPU_xTaskGetTickCount( void );\r
+UBaseType_t MPU_uxTaskGetNumberOfTasks( void );\r
+void MPU_vTaskList( char *pcWriteBuffer );\r
+void MPU_vTaskGetRunTimeStats( char *pcWriteBuffer );\r
+void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxTagValue );\r
+TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask );\r
+BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter );\r
+UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask );\r
+TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void );\r
+BaseType_t MPU_xTaskGetSchedulerState( void );\r
+TaskHandle_t MPU_xTaskGetIdleTaskHandle( void );\r
+UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t *pxTaskStatusArray, UBaseType_t uxArraySize, uint32_t *pulTotalRunTime );\r
+QueueHandle_t MPU_xQueueGenericCreate( UBaseType_t uxQueueLength, UBaseType_t uxItemSize, uint8_t ucQueueType );\r
+BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, BaseType_t xCopyPosition );\r
+BaseType_t MPU_xQueueGenericReset( QueueHandle_t pxQueue, BaseType_t xNewQueue );\r
+UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t pxQueue );\r
+BaseType_t MPU_xQueueGenericReceive( QueueHandle_t pxQueue, void * const pvBuffer, TickType_t xTicksToWait, BaseType_t xJustPeeking );\r
+QueueHandle_t MPU_xQueueCreateMutex( void );\r
+QueueHandle_t MPU_xQueueCreateCountingSemaphore( UBaseType_t uxCountValue, UBaseType_t uxInitialCount );\r
+BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xBlockTime );\r
+BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t xMutex );\r
+void MPU_vQueueAddToRegistry( QueueHandle_t xQueue, char *pcName );\r
+void MPU_vQueueDelete( QueueHandle_t xQueue );\r
 void *MPU_pvPortMalloc( size_t xSize );\r
 void MPU_vPortFree( void *pv );\r
 void MPU_vPortInitialiseBlocks( void );\r
 size_t MPU_xPortGetFreeHeapSize( void );\r
-xQueueSetHandle MPU_xQueueCreateSet( unsigned portBASE_TYPE uxEventQueueLength );\r
-xQueueSetMemberHandle MPU_xQueueSelectFromSet( xQueueSetHandle xQueueSet, portTickType xBlockTimeTicks );\r
-portBASE_TYPE MPU_xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet );\r
-portBASE_TYPE MPU_xQueueRemoveFromSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet );\r
-signed portBASE_TYPE MPU_xQueuePeekFromISR( xQueueHandle xQueue, void * const pvBuffer );\r
+QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength );\r
+QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet, TickType_t xBlockTimeTicks );\r
+BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet );\r
+BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet );\r
+BaseType_t MPU_xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer );\r
+void* MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore );\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
 /*\r
  * See header file for description.\r
  */\r
-portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters, portBASE_TYPE xRunPrivileged )\r
+StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters, BaseType_t xRunPrivileged )\r
 {\r
        /* Simulate the stack frame as it would be created by a context switch\r
        interrupt. */\r
        pxTopOfStack--; /* Offset added to account for the way the MCU uses the stack on entry/exit of interrupts. */\r
        *pxTopOfStack = portINITIAL_XPSR;       /* xPSR */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) pxCode;      /* PC */\r
+       *pxTopOfStack = ( StackType_t ) pxCode; /* PC */\r
        pxTopOfStack--;\r
        *pxTopOfStack = 0;      /* LR */\r
        pxTopOfStack -= 5;      /* R12, R3, R2 and R1. */\r
-       *pxTopOfStack = ( portSTACK_TYPE ) pvParameters;        /* R0 */\r
+       *pxTopOfStack = ( StackType_t ) pvParameters;   /* R0 */\r
        pxTopOfStack -= 9;      /* R11, R10, R9, R8, R7, R6, R5 and R4. */\r
 \r
        if( xRunPrivileged == pdTRUE )\r
@@ -268,13 +273,13 @@ void vPortSVCHandler( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-static void prvSVCHandler(     unsigned long *pulParam )\r
+static void prvSVCHandler(     uint32_t *pulParam )\r
 {\r
-unsigned char ucSVCNumber;\r
+uint8_t ucSVCNumber;\r
 \r
        /* The stack contains: r0, r1, r2, r3, r12, r14, the return address and\r
        xPSR.  The first argument (r0) is pulParam[ 0 ]. */\r
-       ucSVCNumber = ( ( unsigned char * ) pulParam[ portOFFSET_TO_PC ] )[ -2 ];\r
+       ucSVCNumber = ( ( uint8_t * ) pulParam[ portOFFSET_TO_PC ] )[ -2 ];\r
        switch( ucSVCNumber )\r
        {\r
                case portSVC_START_SCHEDULER    :       *(portNVIC_SYSPRI1) |= portNVIC_SVC_PRI;\r
@@ -329,7 +334,7 @@ static void prvRestoreContextOfFirstTask( void )
                "       ldr r14, =0xfffffffd                    \n" /* Load exec return code. */\r
                "       bx r14                                                  \n"\r
                "                                                                       \n"\r
-               "       .align 2                                                \n"\r
+               "       .align 4                                                \n"\r
                "pxCurrentTCBConst2: .word pxCurrentTCB \n"\r
        );\r
 }\r
@@ -338,7 +343,7 @@ static void prvRestoreContextOfFirstTask( void )
 /*\r
  * See header file for description.\r
  */\r
-portBASE_TYPE xPortStartScheduler( void )\r
+BaseType_t xPortStartScheduler( void )\r
 {\r
        /* configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to 0.  See\r
        http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html */\r
@@ -369,14 +374,15 @@ portBASE_TYPE xPortStartScheduler( void )
 \r
 void vPortEndScheduler( void )\r
 {\r
-       /* It is unlikely that the CM3 port will require this function as there\r
-       is nothing to return to.  */\r
+       /* Not implemented in ports where there is nothing to return to.\r
+       Artificially force an assert. */\r
+       configASSERT( uxCriticalNesting == 1000UL );\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
 void vPortEnterCritical( void )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        portDISABLE_INTERRUPTS();\r
        uxCriticalNesting++;\r
@@ -387,8 +393,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 \r
 void vPortExitCritical( void )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
+       configASSERT( uxCriticalNesting );\r
        uxCriticalNesting--;\r
        if( uxCriticalNesting == 0 )\r
        {\r
@@ -433,7 +440,7 @@ void xPortPendSVHandler( void )
                "       msr psp, r0                                                     \n"\r
                "       bx r14                                                          \n"\r
                "                                                                               \n"\r
-               "       .align 2                                                        \n"\r
+               "       .align 4                                                        \n"\r
                "pxCurrentTCBConst: .word pxCurrentTCB  \n"\r
                ::"i"(configMAX_SYSCALL_INTERRUPT_PRIORITY)\r
        );\r
@@ -442,7 +449,7 @@ void xPortPendSVHandler( void )
 \r
 void xPortSysTickHandler( void )\r
 {\r
-unsigned long ulDummy;\r
+uint32_t ulDummy;\r
 \r
        ulDummy = portSET_INTERRUPT_MASK_FROM_ISR();\r
        {\r
@@ -471,46 +478,46 @@ static void prvSetupTimerInterrupt( void )
 \r
 static void prvSetupMPU( void )\r
 {\r
-extern unsigned long __privileged_functions_end__[];\r
-extern unsigned long __FLASH_segment_start__[];\r
-extern unsigned long __FLASH_segment_end__[];\r
-extern unsigned long __privileged_data_start__[];\r
-extern unsigned long __privileged_data_end__[];\r
+extern uint32_t __privileged_functions_end__[];\r
+extern uint32_t __FLASH_segment_start__[];\r
+extern uint32_t __FLASH_segment_end__[];\r
+extern uint32_t __privileged_data_start__[];\r
+extern uint32_t __privileged_data_end__[];\r
 \r
        /* Check the expected MPU is present. */\r
        if( *portMPU_TYPE == portEXPECTED_MPU_TYPE_VALUE )\r
        {\r
                /* First setup the entire flash for unprivileged read only access. */\r
-        *portMPU_REGION_BASE_ADDRESS = ( ( unsigned long ) __FLASH_segment_start__ ) | /* Base address. */\r
+        *portMPU_REGION_BASE_ADDRESS = ( ( uint32_t ) __FLASH_segment_start__ ) | /* Base address. */\r
                                                                                ( portMPU_REGION_VALID ) |\r
                                                                                ( portUNPRIVILEGED_FLASH_REGION );\r
 \r
                *portMPU_REGION_ATTRIBUTE =             ( portMPU_REGION_READ_ONLY ) |\r
                                                                                ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |\r
-                                                                               ( prvGetMPURegionSizeSetting( ( unsigned long ) __FLASH_segment_end__ - ( unsigned long ) __FLASH_segment_start__ ) ) |\r
+                                                                               ( prvGetMPURegionSizeSetting( ( uint32_t ) __FLASH_segment_end__ - ( uint32_t ) __FLASH_segment_start__ ) ) |\r
                                                                                ( portMPU_REGION_ENABLE );\r
 \r
                /* Setup the first 16K for privileged only access (even though less\r
                than 10K is actually being used).  This is where the kernel code is\r
                placed. */\r
-        *portMPU_REGION_BASE_ADDRESS = ( ( unsigned long ) __FLASH_segment_start__ ) | /* Base address. */\r
+        *portMPU_REGION_BASE_ADDRESS = ( ( uint32_t ) __FLASH_segment_start__ ) | /* Base address. */\r
                                                                                ( portMPU_REGION_VALID ) |\r
                                                                                ( portPRIVILEGED_FLASH_REGION );\r
 \r
                *portMPU_REGION_ATTRIBUTE =             ( portMPU_REGION_PRIVILEGED_READ_ONLY ) |\r
                                                                                ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |\r
-                                                                               ( prvGetMPURegionSizeSetting( ( unsigned long ) __privileged_functions_end__ - ( unsigned long ) __FLASH_segment_start__ ) ) |\r
+                                                                               ( prvGetMPURegionSizeSetting( ( uint32_t ) __privileged_functions_end__ - ( uint32_t ) __FLASH_segment_start__ ) ) |\r
                                                                                ( portMPU_REGION_ENABLE );\r
 \r
                /* Setup the privileged data RAM region.  This is where the kernel data\r
                is placed. */\r
-               *portMPU_REGION_BASE_ADDRESS =  ( ( unsigned long ) __privileged_data_start__ ) | /* Base address. */\r
+               *portMPU_REGION_BASE_ADDRESS =  ( ( uint32_t ) __privileged_data_start__ ) | /* Base address. */\r
                                                                                ( portMPU_REGION_VALID ) |\r
                                                                                ( portPRIVILEGED_RAM_REGION );\r
 \r
                *portMPU_REGION_ATTRIBUTE =             ( portMPU_REGION_PRIVILEGED_READ_WRITE ) |\r
                                                                                ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |\r
-                                                                               prvGetMPURegionSizeSetting( ( unsigned long ) __privileged_data_end__ - ( unsigned long ) __privileged_data_start__ ) |\r
+                                                                               prvGetMPURegionSizeSetting( ( uint32_t ) __privileged_data_end__ - ( uint32_t ) __privileged_data_start__ ) |\r
                                                                                ( portMPU_REGION_ENABLE );\r
 \r
                /* By default allow everything to access the general peripherals.  The\r
@@ -532,9 +539,9 @@ extern unsigned long __privileged_data_end__[];
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-static unsigned long prvGetMPURegionSizeSetting( unsigned long ulActualSizeInBytes )\r
+static uint32_t prvGetMPURegionSizeSetting( uint32_t ulActualSizeInBytes )\r
 {\r
-unsigned long ulRegionSize, ulReturnValue = 4;\r
+uint32_t ulRegionSize, ulReturnValue = 4;\r
 \r
        /* 32 is the smallest region size, 31 is the largest valid value for\r
        ulReturnValue. */\r
@@ -556,7 +563,7 @@ unsigned long ulRegionSize, ulReturnValue = 4;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-static portBASE_TYPE prvRaisePrivilege( void )\r
+static BaseType_t prvRaisePrivilege( void )\r
 {\r
        __asm volatile\r
        (\r
@@ -574,40 +581,40 @@ static portBASE_TYPE prvRaisePrivilege( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMORY_REGION * const xRegions, portSTACK_TYPE *pxBottomOfStack, unsigned short usStackDepth )\r
+void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMORY_REGION * const xRegions, StackType_t *pxBottomOfStack, uint16_t usStackDepth )\r
 {\r
-extern unsigned long __SRAM_segment_start__[];\r
-extern unsigned long __SRAM_segment_end__[];\r
-extern unsigned long __privileged_data_start__[];\r
-extern unsigned long __privileged_data_end__[];\r
-long lIndex;\r
-unsigned long ul;\r
+extern uint32_t __SRAM_segment_start__[];\r
+extern uint32_t __SRAM_segment_end__[];\r
+extern uint32_t __privileged_data_start__[];\r
+extern uint32_t __privileged_data_end__[];\r
+int32_t lIndex;\r
+uint32_t ul;\r
 \r
        if( xRegions == NULL )\r
        {\r
                /* No MPU regions are specified so allow access to all RAM. */\r
         xMPUSettings->xRegion[ 0 ].ulRegionBaseAddress =\r
-                               ( ( unsigned long ) __SRAM_segment_start__ ) | /* Base address. */\r
+                               ( ( uint32_t ) __SRAM_segment_start__ ) | /* Base address. */\r
                                ( portMPU_REGION_VALID ) |\r
                                ( portSTACK_REGION );\r
 \r
                xMPUSettings->xRegion[ 0 ].ulRegionAttribute =\r
                                ( portMPU_REGION_READ_WRITE ) |\r
                                ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |\r
-                               ( prvGetMPURegionSizeSetting( ( unsigned long ) __SRAM_segment_end__ - ( unsigned long ) __SRAM_segment_start__ ) ) |\r
+                               ( prvGetMPURegionSizeSetting( ( uint32_t ) __SRAM_segment_end__ - ( uint32_t ) __SRAM_segment_start__ ) ) |\r
                                ( portMPU_REGION_ENABLE );\r
 \r
                /* Re-instate the privileged only RAM region as xRegion[ 0 ] will have\r
                just removed the privileged only parameters. */\r
                xMPUSettings->xRegion[ 1 ].ulRegionBaseAddress =\r
-                               ( ( unsigned long ) __privileged_data_start__ ) | /* Base address. */\r
+                               ( ( uint32_t ) __privileged_data_start__ ) | /* Base address. */\r
                                ( portMPU_REGION_VALID ) |\r
                                ( portSTACK_REGION + 1 );\r
 \r
                xMPUSettings->xRegion[ 1 ].ulRegionAttribute =\r
                                ( portMPU_REGION_PRIVILEGED_READ_WRITE ) |\r
                                ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |\r
-                               prvGetMPURegionSizeSetting( ( unsigned long ) __privileged_data_end__ - ( unsigned long ) __privileged_data_start__ ) |\r
+                               prvGetMPURegionSizeSetting( ( uint32_t ) __privileged_data_end__ - ( uint32_t ) __privileged_data_start__ ) |\r
                                ( portMPU_REGION_ENABLE );\r
 \r
                /* Invalidate all other regions. */\r
@@ -627,13 +634,13 @@ unsigned long ul;
                {\r
                        /* Define the region that allows access to the stack. */\r
                        xMPUSettings->xRegion[ 0 ].ulRegionBaseAddress =\r
-                                       ( ( unsigned long ) pxBottomOfStack ) |\r
+                                       ( ( uint32_t ) pxBottomOfStack ) |\r
                                        ( portMPU_REGION_VALID ) |\r
                                        ( portSTACK_REGION ); /* Region number. */\r
 \r
                        xMPUSettings->xRegion[ 0 ].ulRegionAttribute =\r
                                        ( portMPU_REGION_READ_WRITE ) | /* Read and write. */\r
-                                       ( prvGetMPURegionSizeSetting( ( unsigned long ) usStackDepth * ( unsigned long ) sizeof( portSTACK_TYPE ) ) ) |\r
+                                       ( prvGetMPURegionSizeSetting( ( uint32_t ) usStackDepth * ( uint32_t ) sizeof( StackType_t ) ) ) |\r
                                        ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |\r
                                        ( portMPU_REGION_ENABLE );\r
                }\r
@@ -648,7 +655,7 @@ unsigned long ul;
                                xRegions into the CM3 specific MPU settings that are then\r
                                stored in xMPUSettings. */\r
                                xMPUSettings->xRegion[ ul ].ulRegionBaseAddress =\r
-                                               ( ( unsigned long ) xRegions[ lIndex ].pvBaseAddress ) |\r
+                                               ( ( uint32_t ) xRegions[ lIndex ].pvBaseAddress ) |\r
                                                ( portMPU_REGION_VALID ) |\r
                                                ( portSTACK_REGION + ul ); /* Region number. */\r
 \r
@@ -670,10 +677,10 @@ unsigned long ul;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-signed portBASE_TYPE MPU_xTaskGenericCreate( pdTASK_CODE pvTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions )\r
+BaseType_t MPU_xTaskGenericCreate( TaskFunction_t pvTaskCode, const char * const pcName, uint16_t usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pxCreatedTask, StackType_t *puxStackBuffer, const MemoryRegion_t * const xRegions )\r
 {\r
-signed portBASE_TYPE xReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        xReturn = xTaskGenericCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask, puxStackBuffer, xRegions );\r
        portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -681,9 +688,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-void MPU_vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const xRegions )\r
+void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const xRegions )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        vTaskAllocateMPURegions( xTask, xRegions );\r
        portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -691,9 +698,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_vTaskDelete == 1 )\r
-       void MPU_vTaskDelete( xTaskHandle pxTaskToDelete )\r
+       void MPU_vTaskDelete( TaskHandle_t pxTaskToDelete )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskDelete( pxTaskToDelete );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -702,9 +709,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_vTaskDelayUntil == 1 )\r
-       void MPU_vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement )\r
+       void MPU_vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, TickType_t xTimeIncrement )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -713,9 +720,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_vTaskDelay == 1 )\r
-       void MPU_vTaskDelay( portTickType xTicksToDelay )\r
+       void MPU_vTaskDelay( TickType_t xTicksToDelay )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskDelay( xTicksToDelay );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -724,10 +731,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_uxTaskPriorityGet == 1 )\r
-       unsigned portBASE_TYPE MPU_uxTaskPriorityGet( xTaskHandle pxTask )\r
+       UBaseType_t MPU_uxTaskPriorityGet( TaskHandle_t pxTask )\r
        {\r
-       unsigned portBASE_TYPE uxReturn;\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       UBaseType_t uxReturn;\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                uxReturn = uxTaskPriorityGet( pxTask );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -737,9 +744,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_vTaskPrioritySet == 1 )\r
-       void MPU_vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority )\r
+       void MPU_vTaskPrioritySet( TaskHandle_t pxTask, UBaseType_t uxNewPriority )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskPrioritySet( pxTask, uxNewPriority );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -748,9 +755,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_eTaskGetState == 1 )\r
-       eTaskState MPU_eTaskGetState( xTaskHandle pxTask )\r
+       eTaskState MPU_eTaskGetState( TaskHandle_t pxTask )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
        eTaskState eReturn;\r
 \r
                eReturn = eTaskGetState( pxTask );\r
@@ -761,10 +768,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )\r
-       xTaskHandle MPU_xTaskGetIdleTaskHandle( void )\r
+       TaskHandle_t MPU_xTaskGetIdleTaskHandle( void )\r
        {\r
-       xTaskHandle xReturn;\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       TaskHandle_t xReturn;\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xTaskGetIdleTaskHandle();\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -774,9 +781,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_vTaskSuspend == 1 )\r
-       void MPU_vTaskSuspend( xTaskHandle pxTaskToSuspend )\r
+       void MPU_vTaskSuspend( TaskHandle_t pxTaskToSuspend )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskSuspend( pxTaskToSuspend );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -785,22 +792,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_vTaskSuspend == 1 )\r
-       signed portBASE_TYPE MPU_xTaskIsTaskSuspended( xTaskHandle xTask )\r
-       {\r
-       signed portBASE_TYPE xReturn;\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
-\r
-               xReturn = xTaskIsTaskSuspended( xTask );\r
-        portRESET_PRIVILEGE( xRunningPrivileged );\r
-               return xReturn;\r
-       }\r
-#endif\r
-/*-----------------------------------------------------------*/\r
-\r
-#if ( INCLUDE_vTaskSuspend == 1 )\r
-       void MPU_vTaskResume( xTaskHandle pxTaskToResume )\r
+       void MPU_vTaskResume( TaskHandle_t pxTaskToResume )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskResume( pxTaskToResume );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -810,17 +804,17 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 \r
 void MPU_vTaskSuspendAll( void )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        vTaskSuspendAll();\r
     portRESET_PRIVILEGE( xRunningPrivileged );\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-signed portBASE_TYPE MPU_xTaskResumeAll( void )\r
+BaseType_t MPU_xTaskResumeAll( void )\r
 {\r
-signed portBASE_TYPE xReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        xReturn = xTaskResumeAll();\r
     portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -828,10 +822,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-portTickType MPU_xTaskGetTickCount( void )\r
+TickType_t MPU_xTaskGetTickCount( void )\r
 {\r
-portTickType xReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+TickType_t xReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        xReturn = xTaskGetTickCount();\r
     portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -839,10 +833,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-unsigned portBASE_TYPE MPU_uxTaskGetNumberOfTasks( void )\r
+UBaseType_t MPU_uxTaskGetNumberOfTasks( void )\r
 {\r
-unsigned portBASE_TYPE uxReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+UBaseType_t uxReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        uxReturn = uxTaskGetNumberOfTasks();\r
     portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -851,9 +845,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_TRACE_FACILITY == 1 )\r
-       void MPU_vTaskList( signed char *pcWriteBuffer )\r
+       void MPU_vTaskList( char *pcWriteBuffer )\r
        {\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskList( pcWriteBuffer );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -862,9 +856,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configGENERATE_RUN_TIME_STATS == 1 )\r
-       void MPU_vTaskGetRunTimeStats( signed char *pcWriteBuffer )\r
+       void MPU_vTaskGetRunTimeStats( char *pcWriteBuffer )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskGetRunTimeStats( pcWriteBuffer );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -873,9 +867,9 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_APPLICATION_TASK_TAG == 1 )\r
-       void MPU_vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxTagValue )\r
+       void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxTagValue )\r
        {\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vTaskSetApplicationTaskTag( xTask, pxTagValue );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -884,10 +878,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_APPLICATION_TASK_TAG == 1 )\r
-       pdTASK_HOOK_CODE MPU_xTaskGetApplicationTaskTag( xTaskHandle xTask )\r
+       TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask )\r
        {\r
-       pdTASK_HOOK_CODE xReturn;\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       TaskHookFunction_t xReturn;\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xTaskGetApplicationTaskTag( xTask );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -897,10 +891,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_APPLICATION_TASK_TAG == 1 )\r
-       portBASE_TYPE MPU_xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter )\r
+       BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter )\r
        {\r
-       portBASE_TYPE xReturn;\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       BaseType_t xReturn;\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xTaskCallApplicationTaskHook( xTask, pvParameter );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -910,23 +904,23 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_TRACE_FACILITY == 1 )\r
-       unsigned portBASE_TYPE MPU_uxTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, unsigned portBASE_TYPE uxArraySize, unsigned long *pulTotalRunTime )\r
+       UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t *pxTaskStatusArray, UBaseType_t uxArraySize, uint32_t *pulTotalRunTime )\r
        {\r
-       unsigned portBASE_TYPE uxReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       UBaseType_t uxReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                uxReturn = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
-               return xReturn;\r
+               return uxReturn;\r
        }\r
 #endif\r
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )\r
-       unsigned portBASE_TYPE MPU_uxTaskGetStackHighWaterMark( xTaskHandle xTask )\r
+       UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask )\r
        {\r
-       unsigned portBASE_TYPE uxReturn;\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       UBaseType_t uxReturn;\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                uxReturn = uxTaskGetStackHighWaterMark( xTask );\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -936,10 +930,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_xTaskGetCurrentTaskHandle == 1 )\r
-       xTaskHandle MPU_xTaskGetCurrentTaskHandle( void )\r
+       TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void )\r
        {\r
-       xTaskHandle xReturn;\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       TaskHandle_t xReturn;\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xTaskGetCurrentTaskHandle();\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -949,10 +943,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if ( INCLUDE_xTaskGetSchedulerState == 1 )\r
-       portBASE_TYPE MPU_xTaskGetSchedulerState( void )\r
+       BaseType_t MPU_xTaskGetSchedulerState( void )\r
        {\r
-       portBASE_TYPE xReturn;\r
-    portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       BaseType_t xReturn;\r
+    BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xTaskGetSchedulerState();\r
         portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -961,10 +955,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 #endif\r
 /*-----------------------------------------------------------*/\r
 \r
-xQueueHandle MPU_xQueueGenericCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType )\r
+QueueHandle_t MPU_xQueueGenericCreate( UBaseType_t uxQueueLength, UBaseType_t uxItemSize, uint8_t ucQueueType )\r
 {\r
-xQueueHandle xReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+QueueHandle_t xReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        xReturn = xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType );\r
        portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -972,10 +966,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-portBASE_TYPE MPU_xQueueGenericReset( xQueueHandle pxQueue, portBASE_TYPE xNewQueue )\r
+BaseType_t MPU_xQueueGenericReset( QueueHandle_t pxQueue, BaseType_t xNewQueue )\r
 {\r
-portBASE_TYPE xReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        xReturn = xQueueGenericReset( pxQueue, xNewQueue );\r
        portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -983,10 +977,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-signed portBASE_TYPE MPU_xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )\r
+BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, BaseType_t xCopyPosition )\r
 {\r
-signed portBASE_TYPE xReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        xReturn = xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition );\r
        portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -994,10 +988,10 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-unsigned portBASE_TYPE MPU_uxQueueMessagesWaiting( const xQueueHandle pxQueue )\r
+UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t pxQueue )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
-unsigned portBASE_TYPE uxReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
+UBaseType_t uxReturn;\r
 \r
        uxReturn = uxQueueMessagesWaiting( pxQueue );\r
        portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1005,10 +999,10 @@ unsigned portBASE_TYPE uxReturn;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-signed portBASE_TYPE MPU_xQueueGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking )\r
+BaseType_t MPU_xQueueGenericReceive( QueueHandle_t pxQueue, void * const pvBuffer, TickType_t xTicksToWait, BaseType_t xJustPeeking )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
-signed portBASE_TYPE xReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xReturn;\r
 \r
        xReturn = xQueueGenericReceive( pxQueue, pvBuffer, xTicksToWait, xJustPeeking );\r
        portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1016,10 +1010,10 @@ signed portBASE_TYPE xReturn;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-signed portBASE_TYPE MPU_xQueuePeekFromISR( xQueueHandle pxQueue, void * const pvBuffer )\r
+BaseType_t MPU_xQueuePeekFromISR( QueueHandle_t pxQueue, void * const pvBuffer )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
-signed portBASE_TYPE xReturn;\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xReturn;\r
 \r
        xReturn = xQueuePeekFromISR( pxQueue, pvBuffer );\r
        portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1027,11 +1021,22 @@ signed portBASE_TYPE xReturn;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
+void* MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore )\r
+{\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
+void * xReturn;\r
+\r
+       xReturn = ( void * ) xQueueGetMutexHolder( xSemaphore );\r
+       portRESET_PRIVILEGE( xRunningPrivileged );\r
+       return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
 #if ( configUSE_MUTEXES == 1 )\r
-       xQueueHandle MPU_xQueueCreateMutex( void )\r
+       QueueHandle_t MPU_xQueueCreateMutex( void )\r
        {\r
-    xQueueHandle xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    QueueHandle_t xReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xQueueCreateMutex( queueQUEUE_TYPE_MUTEX );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1041,10 +1046,10 @@ signed portBASE_TYPE xReturn;
 /*-----------------------------------------------------------*/\r
 \r
 #if configUSE_COUNTING_SEMAPHORES == 1\r
-       xQueueHandle MPU_xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount )\r
+       QueueHandle_t MPU_xQueueCreateCountingSemaphore( UBaseType_t uxCountValue, UBaseType_t uxInitialCount )\r
        {\r
-    xQueueHandle xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+    QueueHandle_t xReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xQueueCreateCountingSemaphore( uxCountValue, uxInitialCount );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1054,10 +1059,10 @@ signed portBASE_TYPE xReturn;
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_MUTEXES == 1 )\r
-       portBASE_TYPE MPU_xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime )\r
+       BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xBlockTime )\r
        {\r
-       portBASE_TYPE xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       BaseType_t xReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xQueueTakeMutexRecursive( xMutex, xBlockTime );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1067,10 +1072,10 @@ signed portBASE_TYPE xReturn;
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_MUTEXES == 1 )\r
-       portBASE_TYPE MPU_xQueueGiveMutexRecursive( xQueueHandle xMutex )\r
+       BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t xMutex )\r
        {\r
-       portBASE_TYPE xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       BaseType_t xReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xQueueGiveMutexRecursive( xMutex );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1080,10 +1085,10 @@ signed portBASE_TYPE xReturn;
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_QUEUE_SETS == 1 )\r
-       xQueueSetHandle MPU_xQueueCreateSet( unsigned portBASE_TYPE uxEventQueueLength )\r
+       QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength )\r
        {\r
-       xQueueSetHandle xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       QueueSetHandle_t xReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xQueueCreateSet( uxEventQueueLength );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1093,10 +1098,10 @@ signed portBASE_TYPE xReturn;
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_QUEUE_SETS == 1 )\r
-       xQueueSetMemberHandle MPU_xQueueSelectFromSet( xQueueSetHandle xQueueSet, portTickType xBlockTimeTicks )\r
+       QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet, TickType_t xBlockTimeTicks )\r
        {\r
-       xQueueSetMemberHandle xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       QueueSetMemberHandle_t xReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xQueueSelectFromSet( xQueueSet, xBlockTimeTicks );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1106,10 +1111,10 @@ signed portBASE_TYPE xReturn;
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_QUEUE_SETS == 1 )\r
-       portBASE_TYPE MPU_xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet )\r
+       BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet )\r
        {\r
-       portBASE_TYPE xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       BaseType_t xReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xQueueAddToSet( xQueueOrSemaphore, xQueueSet );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1119,10 +1124,10 @@ signed portBASE_TYPE xReturn;
 /*-----------------------------------------------------------*/\r
 \r
 #if ( configUSE_QUEUE_SETS == 1 )\r
-       portBASE_TYPE MPU_xQueueRemoveFromSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet )\r
+       BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet )\r
        {\r
-       portBASE_TYPE xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       BaseType_t xReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                xReturn = xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet );\r
                portRESET_PRIVILEGE( xRunningPrivileged );\r
@@ -1131,36 +1136,10 @@ signed portBASE_TYPE xReturn;
 #endif\r
 /*-----------------------------------------------------------*/\r
 \r
-#if configUSE_ALTERNATIVE_API == 1\r
-       signed portBASE_TYPE MPU_xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )\r
-       {\r
-       signed portBASE_TYPE xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
-\r
-               xReturn =       signed portBASE_TYPE xQueueAltGenericSend( pxQueue, pvItemToQueue, xTicksToWait, xCopyPosition );\r
-               portRESET_PRIVILEGE( xRunningPrivileged );\r
-               return xReturn;\r
-       }\r
-#endif\r
-/*-----------------------------------------------------------*/\r
-\r
-#if configUSE_ALTERNATIVE_API == 1\r
-       signed portBASE_TYPE MPU_xQueueAltGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking )\r
-       {\r
-    signed portBASE_TYPE xReturn;\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
-\r
-               xReturn = xQueueAltGenericReceive( pxQueue, pvBuffer, xTicksToWait, xJustPeeking );\r
-               portRESET_PRIVILEGE( xRunningPrivileged );\r
-               return xReturn;\r
-       }\r
-#endif\r
-/*-----------------------------------------------------------*/\r
-\r
 #if configQUEUE_REGISTRY_SIZE > 0\r
-       void MPU_vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcName )\r
+       void MPU_vQueueAddToRegistry( QueueHandle_t xQueue, char *pcName )\r
        {\r
-       portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
                vQueueAddToRegistry( xQueue, pcName );\r
 \r
@@ -1169,9 +1148,9 @@ signed portBASE_TYPE xReturn;
 #endif\r
 /*-----------------------------------------------------------*/\r
 \r
-void MPU_vQueueDelete( xQueueHandle xQueue )\r
+void MPU_vQueueDelete( QueueHandle_t xQueue )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        vQueueDelete( xQueue );\r
 \r
@@ -1179,32 +1158,40 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-void *MPU_pvPortMalloc( size_t xSize )\r
-{\r
-void *pvReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )\r
+       \r
+       void *MPU_pvPortMalloc( size_t xSize )\r
+       {\r
+       void *pvReturn;\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
-       pvReturn = pvPortMalloc( xSize );\r
+               pvReturn = pvPortMalloc( xSize );\r
 \r
-       portRESET_PRIVILEGE( xRunningPrivileged );\r
+               portRESET_PRIVILEGE( xRunningPrivileged );\r
 \r
-       return pvReturn;\r
-}\r
+               return pvReturn;\r
+       }\r
+       \r
+#endif /* configSUPPORT_DYNAMIC_ALLOCATION */\r
 /*-----------------------------------------------------------*/\r
 \r
-void MPU_vPortFree( void *pv )\r
-{\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )\r
 \r
-       vPortFree( pv );\r
+       void MPU_vPortFree( void *pv )\r
+       {\r
+       BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
-       portRESET_PRIVILEGE( xRunningPrivileged );\r
-}\r
+               vPortFree( pv );\r
+\r
+               portRESET_PRIVILEGE( xRunningPrivileged );\r
+       }\r
+       \r
+#endif /* configSUPPORT_DYNAMIC_ALLOCATION */\r
 /*-----------------------------------------------------------*/\r
 \r
 void MPU_vPortInitialiseBlocks( void )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        vPortInitialiseBlocks();\r
 \r
@@ -1215,7 +1202,7 @@ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();
 size_t MPU_xPortGetFreeHeapSize( void )\r
 {\r
 size_t xReturn;\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        xReturn = xPortGetFreeHeapSize();\r
 \r
@@ -1231,7 +1218,7 @@ equals the privilege state on entry.  For example:
 \r
 void MPU_FunctionName( [parameters ] )\r
 {\r
-portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+BaseType_t xRunningPrivileged = prvRaisePrivilege();\r
 \r
        FunctionName( [parameters ] );\r
 \r