Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
#include <reent.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/time.h>
#include "cdc.h"
size_t __malloc_margin = 256;
char *__brkval;
int _close(int file) {
return 0;
}
int _fstat(int file, struct stat *st) {
return 0;
}
int _isatty(int file) {
return 1;
}
int _lseek(int file, int ptr, int dir) {
return 0;
}
int _open(const char *name, int flags, int mode) {
return -1;
}
/* Register name faking - works in collusion with the linker. */
register char * stack_ptr asm ("sp");
uint32_t __get_MSP(void)
{
register uint32_t result;
asm volatile ("MRS %0, msp\n" : "=r" (result) );
return(result);
}
void *_sbrk_r(struct _reent *r, ptrdiff_t incr)
{
extern char end; // provided by the linker script
if (__brkval == 0)
__brkval = &end;
if (__brkval + incr > (char*)__get_MSP() - __malloc_margin) {
r->_errno = ENOMEM;
return (void*)-1;
}
void *ret = __brkval;
__brkval += incr;
return ret;
return (void*)-1;
}
ssize_t _read(int fd, void *ptr, size_t len)
{
(void) fd;
//while (!usb_rx_buf.len);
//if (len > usb_rx_buf.len)
// len = usb_rx_buf.len;
char *c = (char *) ptr;
for (uint16_t i = 0; i < len; i++){}
//rb_getc(&usb_rx_buf, c++);
return len;
}
int _write(int file, char *ptr, int len)
{
if (file == STDOUT_FILENO || file == STDERR_FILENO) {
return cdcacm_tx(ptr,len);
}
errno = EIO;
return -1;
}
06396a69cThis file is pinned to the selected release. Download the original to open it in your design tool.