diff --git a/portable/MemMang/heap_4.c b/portable/MemMang/heap_4.c index 59a1ce0be..6d1c6a8ee 100644 --- a/portable/MemMang/heap_4.c +++ b/portable/MemMang/heap_4.c @@ -444,7 +444,6 @@ void * pvPortCalloc( size_t xNum, static void prvHeapInit( void ) /* PRIVILEGED_FUNCTION */ { BlockLink_t * pxFirstFreeBlock; - uint8_t * pucAlignedHeap; portPOINTER_SIZE_TYPE uxAddress; size_t xTotalHeapSize = configTOTAL_HEAP_SIZE; @@ -458,8 +457,6 @@ static void prvHeapInit( void ) /* PRIVILEGED_FUNCTION */ xTotalHeapSize -= ( size_t ) ( uxAddress - ( portPOINTER_SIZE_TYPE ) ucHeap ); } - pucAlignedHeap = ( uint8_t * ) uxAddress; - #if ( configENABLE_HEAP_PROTECTOR == 1 ) { vApplicationGetRandomHeapCanary( &( xHeapCanary ) ); @@ -468,12 +465,12 @@ static void prvHeapInit( void ) /* PRIVILEGED_FUNCTION */ /* xStart is used to hold a pointer to the first item in the list of free * blocks. The void cast is used to prevent compiler warnings. */ - xStart.pxNextFreeBlock = ( void * ) heapPROTECT_BLOCK_POINTER( pucAlignedHeap ); + xStart.pxNextFreeBlock = ( void * ) heapPROTECT_BLOCK_POINTER( uxAddress ); xStart.xBlockSize = ( size_t ) 0; /* pxEnd is used to mark the end of the list of free blocks and is inserted * at the end of the heap space. */ - uxAddress = ( portPOINTER_SIZE_TYPE ) ( pucAlignedHeap + xTotalHeapSize ); + uxAddress = ( portPOINTER_SIZE_TYPE ) ( uxAddress + xTotalHeapSize ); uxAddress -= ( portPOINTER_SIZE_TYPE ) xHeapStructSize; uxAddress &= ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ); pxEnd = ( BlockLink_t * ) uxAddress; @@ -482,7 +479,7 @@ static void prvHeapInit( void ) /* PRIVILEGED_FUNCTION */ /* To start with there is a single free block that is sized to take up the * entire heap space, minus the space taken by pxEnd. */ - pxFirstFreeBlock = ( BlockLink_t * ) pucAlignedHeap; + pxFirstFreeBlock = ( BlockLink_t * ) uxAddress; pxFirstFreeBlock->xBlockSize = ( size_t ) ( uxAddress - ( portPOINTER_SIZE_TYPE ) pxFirstFreeBlock ); pxFirstFreeBlock->pxNextFreeBlock = heapPROTECT_BLOCK_POINTER( pxEnd ); diff --git a/portable/MemMang/heap_5.c b/portable/MemMang/heap_5.c index a801298c1..5ced44e65 100644 --- a/portable/MemMang/heap_5.c +++ b/portable/MemMang/heap_5.c @@ -138,9 +138,9 @@ #else /* if ( configENABLE_HEAP_PROTECTOR == 1 ) */ - #define heapPROTECT_BLOCK_POINTER( pxBlock ) ( pxBlock ) + #define heapPROTECT_BLOCK_POINTER( pxBlock ) ( pxBlock ) - #define heapVALIDATE_BLOCK_POINTER( pxBlock ) ( pxBlock ) + #define heapVALIDATE_BLOCK_POINTER( pxBlock ) #endif /* configENABLE_HEAP_PROTECTOR */ @@ -562,7 +562,7 @@ void vPortDefineHeapRegions( const HeapRegion_t * const pxHeapRegions ) /* PRIVI if( ( xAddress & portBYTE_ALIGNMENT_MASK ) != 0 ) { xAddress += ( portBYTE_ALIGNMENT - 1 ); - xAddress &= ~portBYTE_ALIGNMENT_MASK; + xAddress &= ~( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK; /* Adjust the size for the bytes lost to alignment. */ xTotalRegionSize -= ( size_t ) ( xAddress - ( portPOINTER_SIZE_TYPE ) pxHeapRegion->pucStartAddress );