Compare commits

...

2 Commits

4 changed files with 11 additions and 35 deletions

View File

@ -1,30 +0,0 @@
#cmake_minimum_required(VERSION 3.12)
project(iss)
message(STATUS " here in iss")
# Create library for ISS board support
add_library(board_iss STATIC
init.c
write.c
)
# Include directories
target_include_directories(board_iss PUBLIC
${BSP_BASE}/include
${BSP_BASE}/env
${CMAKE_CURRENT_SOURCE_DIR}
)
# Set compile options
target_compile_options(board_iss PRIVATE
-march=${RISCV_ARCH}_zicsr_zifencei
-mabi=${RISCV_ABI}
-mcmodel=medany
-ffunction-sections
-fdata-sections
)
# Add compile definitions
target_compile_definitions(board_iss PRIVATE
BOARD_${BOARD}
)

View File

@ -1,3 +1,4 @@
#include "platform.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h> #include <stdio.h>
#include <sys/types.h> #include <sys/types.h>
@ -5,14 +6,15 @@
ssize_t _bsp_read(int fd, void *ptr, size_t len) { ssize_t _bsp_read(int fd, void *ptr, size_t len) {
uint8_t *current = (uint8_t *)ptr; uint8_t *current = (uint8_t *)ptr;
volatile uint32_t *uart_rx = (uint32_t *)0xFFFF0000;
ssize_t result = 0; ssize_t result = 0;
if (isatty(fd)) { if (isatty(fd)) {
for (current = (uint8_t *)ptr; (current < ((uint8_t *)ptr) + len); for (current = (uint8_t *)ptr; (current < ((uint8_t *)ptr) + len) &&
(get_uart_rx_tx_reg_rx_avail(uart) > 0);
current++) { current++) {
*current = *uart_rx; *current = uart_read(uart);
result++; result++;
} }
return result; return result;
} }
return EOF; return EOF;

View File

@ -1,5 +1,6 @@
/* See LICENSE of license details. */ /* See LICENSE of license details. */
#include "platform.h"
#include <errno.h> #include <errno.h>
#include <stdint.h> #include <stdint.h>
#include <sys/types.h> #include <sys/types.h>
@ -9,10 +10,12 @@ ssize_t _bsp_write(int fd, const void *ptr, size_t len) {
const uint8_t *current = (const uint8_t *)ptr; const uint8_t *current = (const uint8_t *)ptr;
if (isatty(fd)) { if (isatty(fd)) {
for (size_t jj = 0; jj < len; jj++) { for (size_t jj = 0; jj < len; jj++) {
*((uint32_t *)0xFFFF0000) = current[jj]; uart_write(uart, current[jj]);
if (current[jj] == '\n') {
uart_write(uart, '\r');
}
} }
return len; return len;
} }
return 1; return 1;
} }

View File

@ -36,5 +36,6 @@ foreach(FILE ${LIB_SOURCES})
endforeach() endforeach()
add_library(wrap STATIC ${LIB_SOURCES} ../env/${BOARD_BASE}/bsp_write.c ../env/${BOARD_BASE}/bsp_read.c) add_library(wrap STATIC ${LIB_SOURCES} ../env/${BOARD_BASE}/bsp_write.c ../env/${BOARD_BASE}/bsp_read.c)
target_include_directories(wrap PUBLIC ../include)
target_link_options(wrap INTERFACE ${WRAP_ARGS}) target_link_options(wrap INTERFACE ${WRAP_ARGS})