[Fix] Type for pointers operations (#550)

* fix type for pointers operations in some places: size_t -> portPOINTER_SIZE_TYPE

* fix pointer arithmetics

* fix xAddress type
diff --git a/portable/MemMang/heap_2.c b/portable/MemMang/heap_2.c
index 0700a0d..a22163e 100644
--- a/portable/MemMang/heap_2.c
+++ b/portable/MemMang/heap_2.c
@@ -353,7 +353,7 @@
 

     /* To start with there is a single free block that is sized to take up the

      * entire heap space. */

-    pxFirstFreeBlock = ( void * ) pucAlignedHeap;

+    pxFirstFreeBlock = ( BlockLink_t * ) pucAlignedHeap;

     pxFirstFreeBlock->xBlockSize = configADJUSTED_HEAP_SIZE;

     pxFirstFreeBlock->pxNextFreeBlock = &xEnd;

 }

diff --git a/portable/MemMang/heap_4.c b/portable/MemMang/heap_4.c
index 834ba2e..f61162a 100644
--- a/portable/MemMang/heap_4.c
+++ b/portable/MemMang/heap_4.c
@@ -377,17 +377,17 @@
 {

     BlockLink_t * pxFirstFreeBlock;

     uint8_t * pucAlignedHeap;

-    size_t uxAddress;

+    portPOINTER_SIZE_TYPE uxAddress;

     size_t xTotalHeapSize = configTOTAL_HEAP_SIZE;

 

     /* Ensure the heap starts on a correctly aligned boundary. */

-    uxAddress = ( size_t ) ucHeap;

+    uxAddress = ( portPOINTER_SIZE_TYPE ) ucHeap;

 

     if( ( uxAddress & portBYTE_ALIGNMENT_MASK ) != 0 )

     {

         uxAddress += ( portBYTE_ALIGNMENT - 1 );

-        uxAddress &= ~( ( size_t ) portBYTE_ALIGNMENT_MASK );

-        xTotalHeapSize -= uxAddress - ( size_t ) ucHeap;

+        uxAddress &= ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK );

+        xTotalHeapSize -= uxAddress - ( portPOINTER_SIZE_TYPE ) ucHeap;

     }

 

     pucAlignedHeap = ( uint8_t * ) uxAddress;

@@ -399,17 +399,17 @@
 

     /* pxEnd is used to mark the end of the list of free blocks and is inserted

      * at the end of the heap space. */

-    uxAddress = ( ( size_t ) pucAlignedHeap ) + xTotalHeapSize;

+    uxAddress = ( ( portPOINTER_SIZE_TYPE ) pucAlignedHeap ) + xTotalHeapSize;

     uxAddress -= xHeapStructSize;

-    uxAddress &= ~( ( size_t ) portBYTE_ALIGNMENT_MASK );

-    pxEnd = ( void * ) uxAddress;

+    uxAddress &= ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK );

+    pxEnd = ( BlockLink_t * ) uxAddress;

     pxEnd->xBlockSize = 0;

     pxEnd->pxNextFreeBlock = NULL;

 

     /* 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 = ( void * ) pucAlignedHeap;

-    pxFirstFreeBlock->xBlockSize = uxAddress - ( size_t ) pxFirstFreeBlock;

+    pxFirstFreeBlock = ( BlockLink_t * ) pucAlignedHeap;

+    pxFirstFreeBlock->xBlockSize = ( size_t ) ( uxAddress - ( portPOINTER_SIZE_TYPE ) pxFirstFreeBlock );

     pxFirstFreeBlock->pxNextFreeBlock = pxEnd;

 

     /* Only one block exists - and it covers the entire usable heap space. */

diff --git a/portable/MemMang/heap_5.c b/portable/MemMang/heap_5.c
index 193155a..c5d29d9 100644
--- a/portable/MemMang/heap_5.c
+++ b/portable/MemMang/heap_5.c
@@ -442,10 +442,10 @@
 void vPortDefineHeapRegions( const HeapRegion_t * const pxHeapRegions )

 {

     BlockLink_t * pxFirstFreeBlockInRegion = NULL, * pxPreviousFreeBlock;

-    size_t xAlignedHeap;

+    portPOINTER_SIZE_TYPE xAlignedHeap;

     size_t xTotalRegionSize, xTotalHeapSize = 0;

     BaseType_t xDefinedRegions = 0;

-    size_t xAddress;

+    portPOINTER_SIZE_TYPE xAddress;

     const HeapRegion_t * pxHeapRegion;

 

     /* Can only call once! */

@@ -458,7 +458,7 @@
         xTotalRegionSize = pxHeapRegion->xSizeInBytes;

 

         /* Ensure the heap region starts on a correctly aligned boundary. */

-        xAddress = ( size_t ) pxHeapRegion->pucStartAddress;

+        xAddress = ( portPOINTER_SIZE_TYPE ) pxHeapRegion->pucStartAddress;

 

         if( ( xAddress & portBYTE_ALIGNMENT_MASK ) != 0 )

         {

@@ -466,7 +466,7 @@
             xAddress &= ~portBYTE_ALIGNMENT_MASK;

 

             /* Adjust the size for the bytes lost to alignment. */

-            xTotalRegionSize -= xAddress - ( size_t ) pxHeapRegion->pucStartAddress;

+            xTotalRegionSize -= ( size_t ) ( xAddress - ( portPOINTER_SIZE_TYPE ) pxHeapRegion->pucStartAddress );

         }

 

         xAlignedHeap = xAddress;

@@ -506,7 +506,7 @@
          * sized to take up the entire heap region minus the space taken by the

          * free block structure. */

         pxFirstFreeBlockInRegion = ( BlockLink_t * ) xAlignedHeap;

-        pxFirstFreeBlockInRegion->xBlockSize = xAddress - ( size_t ) pxFirstFreeBlockInRegion;

+        pxFirstFreeBlockInRegion->xBlockSize = ( size_t ) ( xAddress - ( portPOINTER_SIZE_TYPE ) pxFirstFreeBlockInRegion );

         pxFirstFreeBlockInRegion->pxNextFreeBlock = pxEnd;

 

         /* If this is not the first region that makes up the entire heap space