AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Allocation mémoire dynamique

Description détaillée

Ce module fournit un mécanisme d'allocation dynamique de mémoire optimisé.

Graphe de collaboration de Allocation mémoire dynamique:

Structures de données

struct  xHeap
 Structure pour gérer un tas. Plus de détails...
 

Fonctions

void * pvHeapAllocMem (xHeap *heap, size_t size)
 Alloue un bloc sur le tas. Plus de détails...
 
void * pvHeapCalloc (xHeap *heap, size_t nmemb, size_t size)
 Alloue un bloc sur le tas pour un tableau. Plus de détails...
 
void * pvHeapMalloc (xHeap *heap, size_t size)
 Alloue un bloc sur le tas. Plus de détails...
 
size_t ulHeapFreeSpace (xHeap *heap)
 Quantité de mémoire libre d'un tas. Plus de détails...
 
void vHeapFree (xHeap *heap, void *mem)
 Libère un bloc alloué avec pvHeapMalloc() ou pvHeapCalloc() Plus de détails...
 
void vHeapFreeMem (xHeap *heap, void *mem, size_t size)
 Libère un bloc alloué avec pvHeapAllocMem() Plus de détails...
 
void vHeapInit (xHeap *heap, void *memory, size_t size)
 Initialise un tas. Plus de détails...
 

Macros

#define HEAP_DEFINE_BUF(name, size)
 Allocation d'un tas de taille size. Plus de détails...
 

Définitions de type

typedef struct xHeap xHeap
 Structure pour gérer un tas.
 

Documentation des macros

#define HEAP_DEFINE_BUF (   name,
  size 
)

Allocation d'un tas de taille size.

Paramètres
namenom du tas
sizetaille du tas en octets

Définition à la ligne 77 du fichier heap.h.

Documentation des fonctions

void* pvHeapAllocMem ( xHeap heap,
size_t  size 
)

Alloue un bloc sur le tas.

Paramètres
heaptas
sizetaille 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
heaptas
nmembnombre d'éléments
sizetaille 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
heaptas
sizetaille 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
heaptas
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
heaptas
mempointeur sur le bloc à libérer
void vHeapFreeMem ( xHeap heap,
void *  mem,
size_t  size 
)

Libère un bloc alloué avec pvHeapAllocMem()

Paramètres
heaptas
mempointeur sur le bloc à libérer
sizetaille en octets du bloc
void vHeapInit ( xHeap heap,
void *  memory,
size_t  size 
)

Initialise un tas.

Paramètres
heaptas
memorybuffer mémoire déclaré avec HEAP_DEFINE_BUF()
sizetaille en octets du buffer