Pitaya_MM32F3273_Template/src/app_syscalls.c

46 lines
851 B
C

#include "board_init.h"
#include "hal_uart.h"
int _write(int fd, char *ptr, int len) {
int i = 0;
if (fd > 2) {
return -1;
}
while (*ptr && (i < len)) {
while (0u == (UART_STATUS_TX_EMPTY & UART_GetStatus(BOARD_DEBUG_UART_PORT))) {
}
UART_PutData(BOARD_DEBUG_UART_PORT, (uint8_t)(*ptr));
i++;
ptr++;
}
return i;
}
int _read(int fd, char *ptr, int len) {
int my_len;
if (fd > 2) {
return -1;
}
my_len = 0;
while (len > 0) {
while (0u == (UART_STATUS_RX_DONE & UART_GetStatus(BOARD_DEBUG_UART_PORT))) {
}
*ptr = UART_GetData(BOARD_DEBUG_UART_PORT);
len--;
my_len++;
if ((*ptr == '\r') || (*ptr == '\n') || (*ptr == '\0')) {
break;
}
ptr++;
}
return my_len;
}