source: ecs_cellMon/firmware/Core/Src/syscalls.c

Last change on this file was 3, checked in by f.jahn, 3 years ago

fw hinzugfügt-->zed

File size: 4.6 KB
Line 
1/**
2*****************************************************************************
3**
4** File : syscalls.c
5**
6** Author : Auto-generated by System workbench for STM32
7**
8** Abstract : System Workbench Minimal System calls file
9**
10** For more information about which c-functions
11** need which of these lowlevel functions
12** please consult the Newlib libc-manual
13**
14** Target : STMicroelectronics STM32
15**
16** Distribution: The file is distributed “as is,” without any warranty
17** of any kind.
18**
19*****************************************************************************
20** @attention
21**
22** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
23**
24** Redistribution and use in source and binary forms, with or without modification,
25** are permitted provided that the following conditions are met:
26** 1. Redistributions of source code must retain the above copyright notice,
27** this list of conditions and the following disclaimer.
28** 2. Redistributions in binary form must reproduce the above copyright notice,
29** this list of conditions and the following disclaimer in the documentation
30** and/or other materials provided with the distribution.
31** 3. Neither the name of STMicroelectronics nor the names of its contributors
32** may be used to endorse or promote products derived from this software
33** without specific prior written permission.
34**
35** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
36** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
39** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
40** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
41** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
42** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
43** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
44** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45**
46*****************************************************************************
47*/
48
49/* Includes */
50#include <sys/stat.h>
51#include <stdlib.h>
52#include <errno.h>
53#include <stdio.h>
54#include <signal.h>
55#include <time.h>
56#include <sys/time.h>
57#include <sys/times.h>
58
59
60/* Variables */
61//#undef errno
62extern int errno;
63extern int __io_putchar(int ch) __attribute__((weak));
64extern int __io_getchar(void) __attribute__((weak));
65
66register char * stack_ptr asm("sp");
67
68char *__env[1] = { 0 };
69char **environ = __env;
70
71
72/* Functions */
73void initialise_monitor_handles()
74{
75}
76
77int _getpid(void)
78{
79 return 1;
80}
81
82int _kill(int pid, int sig)
83{
84 errno = EINVAL;
85 return -1;
86}
87
88void _exit (int status)
89{
90 _kill(status, -1);
91 while (1) {} /* Make sure we hang here */
92}
93
94__attribute__((weak)) int _read(int file, char *ptr, int len)
95{
96 int DataIdx;
97
98 for (DataIdx = 0; DataIdx < len; DataIdx++)
99 {
100 *ptr++ = __io_getchar();
101 }
102
103return len;
104}
105
106__attribute__((weak)) int _write(int file, char *ptr, int len)
107{
108 int DataIdx;
109
110 for (DataIdx = 0; DataIdx < len; DataIdx++)
111 {
112 __io_putchar(*ptr++);
113 }
114 return len;
115}
116
117caddr_t _sbrk(int incr)
118{
119 extern char end asm("end");
120 static char *heap_end;
121 char *prev_heap_end;
122
123 if (heap_end == 0)
124 heap_end = &end;
125
126 prev_heap_end = heap_end;
127 if (heap_end + incr > stack_ptr)
128 {
129// write(1, "Heap and stack collision\n", 25);
130// abort();
131 errno = ENOMEM;
132 return (caddr_t) -1;
133 }
134
135 heap_end += incr;
136
137 return (caddr_t) prev_heap_end;
138}
139
140int _close(int file)
141{
142 return -1;
143}
144
145
146int _fstat(int file, struct stat *st)
147{
148 st->st_mode = S_IFCHR;
149 return 0;
150}
151
152int _isatty(int file)
153{
154 return 1;
155}
156
157int _lseek(int file, int ptr, int dir)
158{
159 return 0;
160}
161
162int _open(char *path, int flags, ...)
163{
164 /* Pretend like we always fail */
165 return -1;
166}
167
168int _wait(int *status)
169{
170 errno = ECHILD;
171 return -1;
172}
173
174int _unlink(char *name)
175{
176 errno = ENOENT;
177 return -1;
178}
179
180int _times(struct tms *buf)
181{
182 return -1;
183}
184
185int _stat(char *file, struct stat *st)
186{
187 st->st_mode = S_IFCHR;
188 return 0;
189}
190
191int _link(char *old, char *new)
192{
193 errno = EMLINK;
194 return -1;
195}
196
197int _fork(void)
198{
199 errno = EAGAIN;
200 return -1;
201}
202
203int _execve(char *name, char **argv, char **env)
204{
205 errno = ENOMEM;
206 return -1;
207}
Note: See TracBrowser for help on using the repository browser.