J
john2020
Guest
Hello All,
Mohol by niekto posúdiť nasledujúci kód init_mem.c.
Tu je kód pre init_mem.c
void init_mempool (
void * bazén, / * adresa pamäť * /
unsigned int size) (/ * veľkosť bazéna v bajtoch * /
/ * Nastaviť __mp__ poukázať na začiatok bazéna a nastavenia
* Veľkosti bazéna.
* /
__mp__ = (struct __mp__ *) ((unsigned int) ((unsigned int) bazén 3) & ~ 3);
/ * Nastaviť odkaz bloku v bazéne na NULL (pretože je to jediný
* Blok) a inicializovať veľkosť jeho dátovej oblasti.
* /
((struct __mp__ *), bazén) -> next = NULL;
((struct __mp__ *), bazén) -> len = veľkosť - Hlien;
)
Tu je spôsob, zkusím to:
unsigned char memory_pool [0x4000];
void main (void)
(
init_mempool (memory_pool, sizeof (memory_pool));
Rx_Data_Buffer = (char *) calloc (10, 1);
free (Rx_Data_Buffer);
)
Výška init_mempool () zlyhá, ale keď dám štart adresu pamäte RAM
a jeho celkovej veľkosti ako parametre init_mempool (), funguje to.
Ako budem mať možnosť prideliť obmedzenú časť RAM ako Heap?
Pozdravy,
John
Mohol by niekto posúdiť nasledujúci kód init_mem.c.
Tu je kód pre init_mem.c
void init_mempool (
void * bazén, / * adresa pamäť * /
unsigned int size) (/ * veľkosť bazéna v bajtoch * /
/ * Nastaviť __mp__ poukázať na začiatok bazéna a nastavenia
* Veľkosti bazéna.
* /
__mp__ = (struct __mp__ *) ((unsigned int) ((unsigned int) bazén 3) & ~ 3);
/ * Nastaviť odkaz bloku v bazéne na NULL (pretože je to jediný
* Blok) a inicializovať veľkosť jeho dátovej oblasti.
* /
((struct __mp__ *), bazén) -> next = NULL;
((struct __mp__ *), bazén) -> len = veľkosť - Hlien;
)
Tu je spôsob, zkusím to:
unsigned char memory_pool [0x4000];
void main (void)
(
init_mempool (memory_pool, sizeof (memory_pool));
Rx_Data_Buffer = (char *) calloc (10, 1);
free (Rx_Data_Buffer);
)
Výška init_mempool () zlyhá, ale keď dám štart adresu pamäte RAM
a jeho celkovej veľkosti ako parametre init_mempool (), funguje to.
Ako budem mať možnosť prideliť obmedzenú časť RAM ako Heap?
Pozdravy,
John