Ce module fournit un mécanisme d'allocation dynamique de mémoire optimisé.
|
|
typedef struct xHeap | xHeap |
| | Structure pour gérer un tas.
|
| |
| #define HEAP_DEFINE_BUF |
( |
|
name, |
|
|
|
size |
|
) |
| |
Allocation d'un tas de taille size.
- Paramètres
-
| name | nom du tas |
| size | taille du tas en octets |
Définition à la ligne 77 du fichier heap.h.
| void* pvHeapAllocMem |
( |
xHeap * |
heap, |
|
|
size_t |
size |
|
) |
| |
Alloue un bloc sur le tas.
- Paramètres
-
| heap | tas |
| size | taille en octets du bloc demandé |
- Renvoie
- pointeur sur le bloc ou NULL en cas d'erreur
| void* pvHeapCalloc |
( |
xHeap * |
heap, |
|
|
size_t |
nmemb, |
|
|
size_t |
size |
|
) |
| |
Alloue un bloc sur le tas pour un tableau.
Cette fonction est conforme à la fonction calloc() C ANSI.
Chaque bloc alloué avec cette fonction aura une taille supérieure à la taille demandée de sizeof(size_t) (2 octets sur AVR8).
- Paramètres
-
| heap | tas |
| nmemb | nombre d'éléments |
| size | taille en octets de l'élément |
- Renvoie
- pointeur sur le bloc ou NULL en cas d'erreur
| void* pvHeapMalloc |
( |
xHeap * |
heap, |
|
|
size_t |
size |
|
) |
| |
Alloue un bloc sur le tas.
Cette fonction est conforme à la fonction malloc() C ANSI.
Chaque bloc alloué avec cette fonction aura une taille supérieure à la taille demandée de sizeof(size_t) (2 octets sur AVR8).
- Paramètres
-
| heap | tas |
| size | taille en octets du bloc demandé |
- Renvoie
- pointeur sur le bloc ou NULL en cas d'erreur
| size_t ulHeapFreeSpace |
( |
xHeap * |
heap | ) |
|
Quantité de mémoire libre d'un tas.
- Paramètres
-
- Renvoie
- nombre d'octets libre
- Note
- La valeur retournée est la somme de toutes les zones libres. Ces régions ne sont pas forcément contigues, aussi une allocation peut échouer même si si la taille demandée est inférieure à l'espace libre.
| void vHeapFree |
( |
xHeap * |
heap, |
|
|
void * |
mem |
|
) |
| |
Libère un bloc alloué avec pvHeapMalloc() ou pvHeapCalloc()
Cette fonction est conforme à la fonction free() C ANSI.
- Paramètres
-
| heap | tas |
| mem | pointeur sur le bloc à libérer |
| void vHeapFreeMem |
( |
xHeap * |
heap, |
|
|
void * |
mem, |
|
|
size_t |
size |
|
) |
| |
Libère un bloc alloué avec pvHeapAllocMem()
- Paramètres
-
| heap | tas |
| mem | pointeur sur le bloc à libérer |
| size | taille en octets du bloc |
| void vHeapInit |
( |
xHeap * |
heap, |
|
|
void * |
memory, |
|
|
size_t |
size |
|
) |
| |
Initialise un tas.
- Paramètres
-
| heap | tas |
| memory | buffer mémoire déclaré avec HEAP_DEFINE_BUF() |
| size | taille en octets du buffer |