#include #include "fsl_debug_console.h" int _fstat(int fd, struct stat *st) { if (fd < 0) return -1; st->st_mode = S_IFCHR; return 0; } void *_sbrk(int incr) { extern char _pvHeapStart; static unsigned char *heap = NULL; unsigned char *prev_heap; unsigned char x = 0, *heap_end = (unsigned char *)((size_t) &x - 512); (void) x; if (heap == NULL) heap = (unsigned char *) &_pvHeapStart; prev_heap = heap; if (heap + incr > heap_end) return (void *) -1; heap += incr; return prev_heap; } int _open(const char *path) { (void) path; return -1; } int _close(int fd) { (void) fd; return -1; } int _isatty(int fd) { (void) fd; return 1; } int _lseek(int fd, int ptr, int dir) { (void) fd, (void) ptr, (void) dir; return 0; } void _exit(int status) { (void) status; for (;;) asm volatile("BKPT #0"); } void _kill(int pid, int sig) { (void) pid, (void) sig; } int _getpid(void) { return -1; } #ifdef UART_DEBUG // For internal testing purposes #include "hal.h" int _write(int fd, char *ptr, int len) { (void) ptr, (void) len; if (fd == 1) uart_write_buf(UART_DEBUG, ptr, (size_t) len); return len; } #else int _write(int fd, char *ptr, int len) { (void) ptr, (void) len; if (fd == 1) return DbgConsole_Printf("%.*s", len, ptr); return -1; } #endif int _read(int fd, char *ptr, int len) { (void) fd, (void) ptr, (void) len; return -1; } int _link(const char *a, const char *b) { (void) a, (void) b; return -1; } int _unlink(const char *a) { (void) a; return -1; } int _stat(const char *path, struct stat *st) { (void) path, (void) st; return -1; } int mkdir(const char *path, mode_t mode) { (void) path, (void) mode; return -1; } void _init(void) {} extern uint64_t mg_now(void); int _gettimeofday(struct timeval *tv, void *tz) { uint64_t now = mg_now(); (void) tz; tv->tv_sec = (time_t) (now / 1000); tv->tv_usec = (unsigned long) ((now % 1000) * 1000); return 0; }