Compare commits

..

6 Commits

7 changed files with 16 additions and 17 deletions

View File

@@ -18,11 +18,12 @@ target_include_directories(startup PUBLIC env include)
add_subdirectory(libwrap) add_subdirectory(libwrap)
add_library(bsp INTERFACE) add_library(bsp STATIC env/${BOARD_BASE}/init.c)
target_link_libraries(bsp INTERFACE startup wrap) target_link_libraries(bsp PUBLIC startup wrap)
target_include_directories(bsp INTERFACE env/${BOARD_BASE}) target_include_directories(bsp PUBLIC env/${BOARD_BASE})
target_link_options(bsp INTERFACE LINKER:--no-warn-rwx-segments -nostartfiles -T ${CMAKE_CURRENT_SOURCE_DIR}/env/${BOARD_BASE}/link.lds) target_link_options(bsp INTERFACE LINKER:--no-warn-rwx-segments -nostartfiles -T ${CMAKE_CURRENT_SOURCE_DIR}/env/${BOARD_BASE}/link.lds)
if(SEMIHOSTING) if(SEMIHOSTING)
target_include_directories(bsp INTERFACE /include) target_include_directories(bsp INTERFACE include)
target_sources(bsp INTERFACE env/semihosting.c env/trap.c) target_sources(bsp INTERFACE env/semihosting.c env/trap.c)
endif() endif()

View File

@@ -36,7 +36,7 @@ STRING(REGEX REPLACE "\-gcc" "-" CROSS_COMPILE ${RISCV_TOOLCHAIN_BIN_GCC})
# The Generic system name is used for embedded targets (targets without OS) # The Generic system name is used for embedded targets (targets without OS)
set(CMAKE_SYSTEM_NAME Generic ) set(CMAKE_SYSTEM_NAME Generic )
set(CMAKE_EXECUTABLE_SUFFIX_C ".elf") set(CMAKE_EXECUTABLE_SUFFIX_C ".elf")
set(RISCV_ARCH rv32imc_zicsr ) set(RISCV_ARCH rv32imc_zicsr_zifencei )
set(RISCV_ABI ilp32) set(RISCV_ABI ilp32)
@@ -52,7 +52,6 @@ set( CMAKE_OBJCOPY ${RISCV_TOOLCHAIN_BIN_PATH}/${CROSS_COMPILE}objcopy
set( CMAKE_OBJDUMP ${RISCV_TOOLCHAIN_BIN_PATH}/${CROSS_COMPILE}objdump set( CMAKE_OBJDUMP ${RISCV_TOOLCHAIN_BIN_PATH}/${CROSS_COMPILE}objdump
CACHE FILEPATH "The toolchain objdump command " FORCE ) CACHE FILEPATH "The toolchain objdump command " FORCE )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=${RISCV_ARCH} -mabi=${RISCV_ABI}" ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=${RISCV_ARCH} -mabi=${RISCV_ABI}" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" )

3
env/common-gcc.mk vendored
View File

@@ -16,7 +16,8 @@ BOARD?=iss
ASM_SRCS += $(ENV_DIR)/start.S $(ENV_DIR)/entry.S ASM_SRCS += $(ENV_DIR)/start.S $(ENV_DIR)/entry.S
C_SRCS += $(PLATFORM_DIR)/init.c C_SRCS += $(PLATFORM_DIR)/init.c
C_SRCS += $(PLATFORM_DIR)/write.c C_SRCS += $(PLATFORM_DIR)/bsp_write.c $(PLATFORM_DIR)/bsp_read.c
LINKER_SCRIPT ?= $(PLATFORM_DIR)/$(LINK_TARGET).lds LINKER_SCRIPT ?= $(PLATFORM_DIR)/$(LINK_TARGET).lds

View File

@@ -29,7 +29,7 @@ set(LIB_SOURCES
set(WRAP_ARGS "") set(WRAP_ARGS "")
foreach(FILE ${LIB_SOURCES}) foreach(FILE ${LIB_SOURCES})
get_filename_component(DIR ${FILE} DIRECTORY) get_filename_component(DIR ${FILE} DIRECTORY)
if(DIR STREQUAL "sys") if(NOT DIR STREQUAL "misc")
get_filename_component(BASE_NAME ${FILE} NAME_WE) get_filename_component(BASE_NAME ${FILE} NAME_WE)
list(APPEND WRAP_ARGS "LINKER:--wrap=${BASE_NAME}") list(APPEND WRAP_ARGS "LINKER:--wrap=${BASE_NAME}")
endif() endif()

View File

@@ -9,6 +9,7 @@ LIBWRAP_SRCS := \
sys/open.c \ sys/open.c \
sys/lseek.c \ sys/lseek.c \
sys/read.c \ sys/read.c \
sys/write.c \
sys/fstat.c \ sys/fstat.c \
sys/stat.c \ sys/stat.c \
sys/close.c \ sys/close.c \

View File

@@ -2,18 +2,16 @@
#include <stdint.h> #include <stdint.h>
#include <unistd.h> #include <unistd.h>
#include "platform.h"
void write_hex(int fd, uint32_t hex) void write_hex(int fd, uint32_t hex) {
{
uint8_t ii; uint8_t ii;
uint8_t jj; uint8_t jj;
char towrite; char towrite;
write(fd , "0x", 2); write(fd, "0x", 2);
for (ii = 8 ; ii > 0; ii--) { for (ii = 8; ii > 0; ii--) {
jj = ii - 1; jj = ii - 1;
uint8_t digit = ((hex & (0xF << (jj*4))) >> (jj*4)); uint8_t digit = ((hex & (0xF << (jj * 4))) >> (jj * 4));
towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA)); towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA));
write(fd, &towrite, 1); write(fd, &towrite, 1);
} }
} }

View File

@@ -1,6 +1,5 @@
/* See LICENSE of license details. */ /* See LICENSE of license details. */
#include "platform.h"
#include "weak_under_alias.h" #include "weak_under_alias.h"
#include <unistd.h> #include <unistd.h>
#if defined(SEMIHOSTING) #if defined(SEMIHOSTING)