stm32h743_player/Core/Src/syscalls.c
2024-03-03 22:46:44 +08:00

187 lines
2.8 KiB
C

/**
******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System 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-2023 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 <sys/stat.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
#include <signal.h>
#include <time.h>
#include <sys/time.h>
#include <sys/times.h>
#include "main.h"
char *__env[1] = { 0 };
char **environ = __env;
int __io_putchar(int ch)
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, HAL_MAX_DELAY);
return ch;
}
__attribute__((weak)) int __io_getchar(void);
void initialise_monitor_handles()
{
}
int _getpid(void)
{
return 1;
}
int _kill(int pid, int sig)
{
UNUSED(pid);
UNUSED(sig);
errno = EINVAL;
return -1;
}
void _exit (int status)
{
_kill(status, -1);
while (1); /* Make sure we hang here */
}
__attribute__((weak)) int _read(int file, char *ptr, int len)
{
UNUSED(file);
for (int DataIdx = 0; DataIdx < len; DataIdx ++) {
*ptr++ = __io_getchar();
}
return len;
}
__attribute__((weak)) int _write(int file, char *ptr, int len)
{
UNUSED(file);
for (int DataIdx = 0; DataIdx < len; DataIdx ++) {
__io_putchar(*ptr++);
}
return len;
}
int _close(int file)
{
UNUSED(file);
return -1;
}
int _fstat(int file, struct stat *st)
{
UNUSED(file);
st->st_mode = S_IFCHR;
return 0;
}
int _isatty(int file)
{
UNUSED(file);
return 1;
}
int _lseek(int file, int ptr, int dir)
{
UNUSED(file);
UNUSED(ptr);
UNUSED(dir);
return 0;
}
int _open(char *path, int flags, ...)
{
UNUSED(path);
UNUSED(flags);
/* Pretend like we always fail */
return -1;
}
int _wait(int *status)
{
UNUSED(status);
errno = ECHILD;
return -1;
}
int _unlink(char *name)
{
UNUSED(name);
errno = ENOENT;
return -1;
}
int _times(struct tms *buf)
{
UNUSED(buf);
return -1;
}
int _stat(char *file, struct stat *st)
{
UNUSED(file);
st->st_mode = S_IFCHR;
return 0;
}
int _link(char *old, char *new)
{
UNUSED(old);
UNUSED(new);
errno = EMLINK;
return -1;
}
int _fork(void)
{
errno = EAGAIN;
return -1;
}
int _execve(char *name, char **argv, char **env)
{
UNUSED(name);
UNUSED(argv);
UNUSED(env);
errno = ENOMEM;
return -1;
}