#include "../../Source/portable/GCC/PPC405_Xilinx/portmacro.h"\r
#endif\r
\r
+#ifdef GCC_PPC440\r
+ #include "../../Source/portable/GCC/PPC440_Xilinx/portmacro.h"\r
+#endif\r
+\r
#ifdef _16FX_SOFTUNE\r
#include "..\..\Source\portable\Softune\MB96340\portmacro.h"\r
#endif\r
licensing and training services.\r
*/\r
\r
-/* \r
-\r
-Changes between V2.5.1 and V2.5.1\r
-\r
- + The memory pool has been defined within a struct to ensure correct memory\r
- alignment on 32bit systems.\r
-\r
-Changes between V2.6.1 and V3.0.0\r
-\r
- + An overflow check has been added to ensure the next free byte variable \r
- does not wrap around.\r
-*/\r
-\r
\r
/*\r
* The simplest possible implementation of pvPortMalloc(). Note that this\r
alignment without using any non-portable code. */\r
static union xRTOS_HEAP\r
{\r
- volatile unsigned portLONG ulDummy;\r
+ #if portBYTE_ALIGNMENT == 8\r
+ volatile portDOUBLE dDummy;\r
+ #else\r
+ volatile unsigned portLONG ulDummy;\r
+ #endif \r
unsigned portCHAR ucHeap[ configTOTAL_HEAP_SIZE ];\r
} xHeap;\r
\r
alignment without using any non-portable code. */\r
static union xRTOS_HEAP\r
{\r
- volatile unsigned portLONG ulDummy;\r
+ #if portBYTE_ALIGNMENT == 8\r
+ volatile portDOUBLE dDummy;\r
+ #else\r
+ volatile unsigned portLONG ulDummy;\r
+ #endif \r
unsigned portCHAR ucHeap[ configTOTAL_HEAP_SIZE ];\r
} xHeap;\r
\r
} xBlockLink;\r
\r
\r
-static const unsigned portSHORT heapSTRUCT_SIZE = ( sizeof( xBlockLink ) + ( sizeof( xBlockLink ) % portBYTE_ALIGNMENT ) );\r
+static const unsigned portSHORT heapSTRUCT_SIZE = ( sizeof( xBlockLink ) + portBYTE_ALIGNMENT - ( sizeof( xBlockLink ) % portBYTE_ALIGNMENT ) );\r
#define heapMINIMUM_BLOCK_SIZE ( ( size_t ) ( heapSTRUCT_SIZE * 2 ) )\r
\r
/* Create a couple of list links to mark the start and end of the list. */\r
required by the port. */\r
#if portSTACK_GROWTH < 0\r
{\r
- pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - 1 );\r
+ pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - 1 ) - ( ( usStackDepth - 1 ) % portBYTE_ALIGNMENT ); \r
}\r
#else\r
{\r