/*! * @file syscalls.c * Implements some base-level for libc for heap management and printing on * the debug port. */ #include #include #include #include #include #include #include #include #include #include #include #define AUTO_RETURN_AFTER_NEWLINE 1 // _write currently adds \n after \r automatically. // If the At91lib\utility\stdio.c printf implementation is not used anymore: // remove if there are spurious newlines! //int _read(int file, void *ptr, size_t len) { // (void)len; // if(file <= STDERR_FILENO) { // *(char *) ptr = DBGU_GetChar(); //#if AUTO_RETURN_AFTER_NEWLINE // if((*(char *) ptr != '\n') && (*(char *) ptr != '\r')) { // DBGU_PutChar(*(char *) ptr); // } // else if(*(char *) ptr == '\r') { // DBGU_PutChar('\n'); // DBGU_PutChar('\r'); // } //#endif // return 1; // } // else { // return -1; // } // //} int _write(int file, const void *ptr, size_t len) { size_t i; if(file <= STDERR_FILENO) { for(i=0; i