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_library(bsp INTERFACE)
target_link_libraries(bsp INTERFACE startup wrap)
target_include_directories(bsp INTERFACE env/${BOARD_BASE})
add_library(bsp STATIC env/${BOARD_BASE}/init.c)
target_link_libraries(bsp PUBLIC startup wrap)
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)
if(SEMIHOSTING)
target_include_directories(bsp INTERFACE /include)
target_include_directories(bsp INTERFACE include)
target_sources(bsp INTERFACE env/semihosting.c env/trap.c)
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)
set(CMAKE_SYSTEM_NAME Generic )
set(CMAKE_EXECUTABLE_SUFFIX_C ".elf")
set(RISCV_ARCH rv32imc_zicsr )
set(RISCV_ARCH rv32imc_zicsr_zifencei )
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
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}" 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
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

View File

@ -25,11 +25,11 @@ set(LIB_SOURCES
stdlib/malloc.c
# Miscellaneous
misc/write_hex.c
)
)
set(WRAP_ARGS "")
foreach(FILE ${LIB_SOURCES})
get_filename_component(DIR ${FILE} DIRECTORY)
if(DIR STREQUAL "sys")
if(NOT DIR STREQUAL "misc")
get_filename_component(BASE_NAME ${FILE} NAME_WE)
list(APPEND WRAP_ARGS "LINKER:--wrap=${BASE_NAME}")
endif()

View File

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

View File

@ -2,18 +2,16 @@
#include <stdint.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 jj;
char towrite;
write(fd , "0x", 2);
for (ii = 8 ; ii > 0; ii--) {
write(fd, "0x", 2);
for (ii = 8; ii > 0; ii--) {
jj = ii - 1;
uint8_t digit = ((hex & (0xF << (jj*4))) >> (jj*4));
towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA));
uint8_t digit = ((hex & (0xF << (jj * 4))) >> (jj * 4));
towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA));
write(fd, &towrite, 1);
}
}

View File

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