Compare commits
4 Commits
develop
...
3389875643
Author | SHA1 | Date | |
---|---|---|---|
3389875643 | |||
4d25972e4d | |||
e051cf180e | |||
ab2b7214fe |
7
env/TGCP/init.c
vendored
7
env/TGCP/init.c
vendored
@ -110,12 +110,13 @@ void _fini()
|
||||
}
|
||||
|
||||
int is_uart_ready(int uart_id){
|
||||
return 1;
|
||||
return !UART0_REG(UART_REG_TXFIFO) & 0x80000000;
|
||||
}
|
||||
int try_write_uart_char(int uart_id, char c){
|
||||
*((char*)0x10000000) = c;
|
||||
if(UART0_REG(UART_REG_TXFIFO) & 0x80000000) return 0;
|
||||
UART0_REG(UART_REG_TXFIFO) = c;
|
||||
return 1;
|
||||
}
|
||||
void write_uart_char(int uart_id, char c){
|
||||
*((char*)0x10000000) = c;
|
||||
UART0_REG(UART_REG_TXFIFO) = c;
|
||||
}
|
||||
|
13
env/TGCP/platform.h
vendored
13
env/TGCP/platform.h
vendored
@ -7,7 +7,18 @@
|
||||
#define MCAUSE_INT 0x80000000
|
||||
#define MCAUSE_CAUSE 0x7FFFFFFF
|
||||
|
||||
#include "bits.h"
|
||||
#define UART0_BASE_ADDR 0xffff0000ULL
|
||||
|
||||
#define UART_REG_TXFIFO 0x00
|
||||
#define UART_REG_RXFIFO 0x04
|
||||
#define UART_REG_TXCTRL 0x08
|
||||
#define UART_REG_RXCTRL 0x0c
|
||||
#define UART_REG_IE 0x10
|
||||
#define UART_REG_IP 0x14
|
||||
#define UART_REG_DIV 0x18
|
||||
#define UART_TXEN 0x1
|
||||
|
||||
#define UART0_REG(ADDR) *((volatile uint32_t*) (UART0_BASE_ADDR + ADDR))
|
||||
/****************************************************************************
|
||||
* Platform definitions
|
||||
*****************************************************************************/
|
||||
|
2
env/common-gcc.mk
vendored
2
env/common-gcc.mk
vendored
@ -2,6 +2,7 @@ ifndef _MK_COMMON
|
||||
_MK_COMMON := # defined
|
||||
|
||||
TL_TARGET?=all
|
||||
BOARD?=iss
|
||||
|
||||
.PHONY: $(TL_TARGET)
|
||||
$(TL_TARGET): $(TARGET)
|
||||
@ -12,7 +13,6 @@ PLATFORM_DIR = $(ENV_DIR)/$(BOARD)
|
||||
|
||||
include $(BSP_BASE)/libwrap/libwrap.mk
|
||||
|
||||
BOARD?=iss
|
||||
|
||||
ASM_SRCS += $(ENV_DIR)/start.S $(ENV_DIR)/entry.S
|
||||
C_SRCS += $(PLATFORM_DIR)/init.c
|
||||
|
4
env/entry.S
vendored
4
env/entry.S
vendored
@ -10,7 +10,7 @@
|
||||
.align 2
|
||||
.global trap_entry
|
||||
trap_entry:
|
||||
#ifndef __riscv_abi_rve
|
||||
#ifdef __riscv_abi_rve
|
||||
addi sp, sp, -8*REGBYTES
|
||||
STORE x1, 1*REGBYTES(sp) // ra
|
||||
STORE x5, 2*REGBYTES(sp) // t0
|
||||
@ -43,7 +43,7 @@ trap_entry:
|
||||
mv a2, sp
|
||||
call handle_trap
|
||||
csrw mepc, a0
|
||||
#ifndef __riscv_abi_rve
|
||||
#ifdef __riscv_abi_rve
|
||||
addi sp, sp, -8*REGBYTES
|
||||
LOAD x1, 1*REGBYTES(sp) // ra
|
||||
LOAD x5, 2*REGBYTES(sp) // t0
|
||||
|
@ -22,8 +22,6 @@ ssize_t __wrap_write(int fd, const void* ptr, size_t len)
|
||||
}
|
||||
#elif defined(BOARD_iss)
|
||||
*((uint32_t*) 0xFFFF0000) = current[jj];
|
||||
#elif defined(BOARD_TGCP)
|
||||
//TODO: implement
|
||||
#else
|
||||
while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ;
|
||||
UART0_REG(UART_REG_TXFIFO) = current[jj];
|
||||
|
Reference in New Issue
Block a user