/** ****************************************************************************** * @file sysmem.c * @author Auto-generated by STM32CubeIDE * @brief STM32CubeIDE Minimal System Memory calls file * * For more information about which c-functions * need which of these lowlevel functions * please consult the Newlib libc-manual ****************************************************************************** * @attention * * Copyright (c) 2020-2021 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* Includes */ #include #include #include /* Variables */ extern int errno; register char * stack_ptr asm("sp"); /* Functions */ /** _sbrk Increase program data space. Malloc and related functions depend on this **/ void * _sbrk(int incr) { extern char end asm("end"); static char * heap_end; char * prev_heap_end; if (heap_end == 0) heap_end = &end; prev_heap_end = heap_end; if (heap_end + incr > stack_ptr) { errno = ENOMEM; return (void *) -1; } heap_end += incr; return (void *) prev_heap_end; }