1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**
- ******************************************************************************
- * @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
- *
- * <h2><center>© Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
- /* Includes */
- #include <errno.h>
- #include <stdio.h>
- /* Variables */
- extern int errno;
- register char * stack_ptr asm("sp");
- /* Functions */
- /**
- _sbrk
- Increase program data space. Malloc and related functions depend on this
- **/
- caddr_t _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 (caddr_t) -1;
- }
- heap_end += incr;
- return (caddr_t) prev_heap_end;
- }
|