summaryrefslogtreecommitdiff
path: root/examples/build_system
diff options
context:
space:
mode:
authorHiFiPhile <[email protected]>2024-05-10 00:16:45 +0200
committerHiFiPhile <[email protected]>2024-05-10 00:16:45 +0200
commitf4d4f2da297bb043990d94b9189c7850da772b09 (patch)
treef2e464e6ee94a648579fc78a32f4ac45c38794a6 /examples/build_system
parentfc7647f9e4f06c8f56207f5ea7f34872887d099b (diff)
parent63e64f374bf2023261bcf6733fdf53a73ccca6e6 (diff)
Merge remote-tracking branch 'remotes/tinyusb/master' into rx_fb
Diffstat (limited to 'examples/build_system')
-rw-r--r--examples/build_system/cmake/cpu/rv32i-ilp32.cmake19
-rw-r--r--examples/build_system/cmake/cpu/rv32imac-ilp32.cmake18
-rw-r--r--examples/build_system/cmake/toolchain/riscv_gcc.cmake21
-rw-r--r--examples/build_system/make/cpu/rv32i-ilp32.mk13
-rw-r--r--examples/build_system/make/cpu/rv32imac-ilp32.mk13
-rw-r--r--examples/build_system/make/toolchain/riscv_gcc.mk20
6 files changed, 104 insertions, 0 deletions
diff --git a/examples/build_system/cmake/cpu/rv32i-ilp32.cmake b/examples/build_system/cmake/cpu/rv32i-ilp32.cmake
new file mode 100644
index 000000000..b4889e6ff
--- /dev/null
+++ b/examples/build_system/cmake/cpu/rv32i-ilp32.cmake
@@ -0,0 +1,19 @@
+if (TOOLCHAIN STREQUAL "gcc")
+ set(TOOLCHAIN_COMMON_FLAGS
+ -march=rv32i
+ -mabi=ilp32
+ )
+ set(FREERTOS_PORT GCC_RISC_V CACHE INTERNAL "")
+
+elseif (TOOLCHAIN STREQUAL "clang")
+ set(TOOLCHAIN_COMMON_FLAGS
+ -march=rv32i
+ -mabi=ilp32
+ )
+ set(FREERTOS_PORT GCC_RISC_V CACHE INTERNAL "")
+
+elseif (TOOLCHAIN STREQUAL "iar")
+ message(FATAL_ERROR "IAR not supported")
+ set(FREERTOS_PORT IAR_RISC_V CACHE INTERNAL "")
+
+endif ()
diff --git a/examples/build_system/cmake/cpu/rv32imac-ilp32.cmake b/examples/build_system/cmake/cpu/rv32imac-ilp32.cmake
new file mode 100644
index 000000000..dd1bc0af7
--- /dev/null
+++ b/examples/build_system/cmake/cpu/rv32imac-ilp32.cmake
@@ -0,0 +1,18 @@
+if (TOOLCHAIN STREQUAL "gcc")
+ set(TOOLCHAIN_COMMON_FLAGS
+ -march=rv32imac
+ -mabi=ilp32
+ )
+ set(FREERTOS_PORT GCC_RISC_V CACHE INTERNAL "")
+
+elseif (TOOLCHAIN STREQUAL "clang")
+ set(TOOLCHAIN_COMMON_FLAGS
+ -march=rv32imac
+ -mabi=ilp32
+ )
+ set(FREERTOS_PORT GCC_RISC_V CACHE INTERNAL "")
+
+elseif (TOOLCHAIN STREQUAL "iar")
+ message(FATAL_ERROR "IAR not supported")
+ set(FREERTOS_PORT IAR_RISC_V CACHE INTERNAL "")
+endif ()
diff --git a/examples/build_system/cmake/toolchain/riscv_gcc.cmake b/examples/build_system/cmake/toolchain/riscv_gcc.cmake
new file mode 100644
index 000000000..904b27294
--- /dev/null
+++ b/examples/build_system/cmake/toolchain/riscv_gcc.cmake
@@ -0,0 +1,21 @@
+if (NOT DEFINED CMAKE_C_COMPILER)
+ set(CMAKE_C_COMPILER "riscv-none-embed-gcc")
+endif ()
+
+if (NOT DEFINED CMAKE_CXX_COMPILER)
+ set(CMAKE_CXX_COMPILER "riscv-none-embed-g++")
+endif ()
+
+set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
+set(CMAKE_SIZE "riscv-none-embed-size" CACHE FILEPATH "")
+set(CMAKE_OBJCOPY "riscv-none-embed-objcopy" CACHE FILEPATH "")
+set(CMAKE_OBJDUMP "riscv-none-embed-objdump" CACHE FILEPATH "")
+
+include(${CMAKE_CURRENT_LIST_DIR}/common.cmake)
+
+get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
+if (IS_IN_TRY_COMPILE)
+ set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -nostdlib")
+ set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib")
+ cmake_print_variables(CMAKE_C_LINK_FLAGS)
+endif ()
diff --git a/examples/build_system/make/cpu/rv32i-ilp32.mk b/examples/build_system/make/cpu/rv32i-ilp32.mk
new file mode 100644
index 000000000..a465baf4c
--- /dev/null
+++ b/examples/build_system/make/cpu/rv32i-ilp32.mk
@@ -0,0 +1,13 @@
+ifeq ($(TOOLCHAIN),gcc)
+ CFLAGS += \
+ -march=rv32i \
+ -mabi=ilp32 \
+
+else ifeq ($(TOOLCHAIN),iar)
+ #CFLAGS += --cpu cortex-a53
+ #ASFLAGS += --cpu cortex-a53
+
+endif
+
+# For freeRTOS port source
+FREERTOS_PORTABLE_SRC = $(FREERTOS_PORTABLE_PATH)/RISC-V
diff --git a/examples/build_system/make/cpu/rv32imac-ilp32.mk b/examples/build_system/make/cpu/rv32imac-ilp32.mk
new file mode 100644
index 000000000..2b6493e48
--- /dev/null
+++ b/examples/build_system/make/cpu/rv32imac-ilp32.mk
@@ -0,0 +1,13 @@
+ifeq ($(TOOLCHAIN),gcc)
+ CFLAGS += \
+ -march=rv32imac \
+ -mabi=ilp32 \
+
+else ifeq ($(TOOLCHAIN),iar)
+ #CFLAGS += --cpu cortex-a53
+ #ASFLAGS += --cpu cortex-a53
+
+endif
+
+# For freeRTOS port source
+FREERTOS_PORTABLE_SRC = $(FREERTOS_PORTABLE_PATH)/RISC-V
diff --git a/examples/build_system/make/toolchain/riscv_gcc.mk b/examples/build_system/make/toolchain/riscv_gcc.mk
new file mode 100644
index 000000000..843aff38c
--- /dev/null
+++ b/examples/build_system/make/toolchain/riscv_gcc.mk
@@ -0,0 +1,20 @@
+# makefile for arm gcc toolchain
+
+# Can be set by family, default to ARM GCC
+CROSS_COMPILE ?= riscv-none-embed-
+
+CC = $(CROSS_COMPILE)gcc
+CXX = $(CROSS_COMPILE)g++
+AS = $(CC) -x assembler-with-cpp
+LD = $(CC)
+
+GDB = $(CROSS_COMPILE)gdb
+OBJCOPY = $(CROSS_COMPILE)objcopy
+SIZE = $(CROSS_COMPILE)size
+
+CFLAGS += \
+ -fsingle-precision-constant \
+
+LIBS += -lgcc -lm -lnosys
+
+include ${TOP}/examples/build_system/make/toolchain/gcc_common.mk