AnsweredAssumed Answered

stm32f405 malloc issue

Question asked by Angelo Dureghello on Mar 31, 2014
Latest reply on Mar 31, 2014 by sung.chen_chung
Dear,

as in several examples, i implemented my _sbrk function to be able to use malloc, as (copied from examples):

extern int  _end;

/*
 * _sbrk needed for malloc
 */
caddr_t _sbrk ( int incr ) {

        static unsigned char *heap = NULL;
        unsigned char *prev_heap;

        if (heap == NULL) {
                heap = (unsigned char *)&_end;
        }
        prev_heap = heap;
        /* check removed to show basic approach */

        heap += incr;

        return (caddr_t) prev_heap;
}

Program compiles fine, no warnings, if i call directly _sbrk to allocate memory (instead of malloc) it works perfect, if i instead call "malloc", i see that _sbrk is called, but the return value of malloc is an null pointer (0).

Probably, malloc after calling sbrk do some other checks, and returns 0.


Every help is appreciated.
Thanks

Outcomes