| # Settings for RISCV 32-bit toolchain. |
| TARGET_ARCH := riscv32 |
| TARGET_TOOLCHAIN_PREFIX := riscv64-unknown-elf- |
| |
| RISCV_ARCH := rv32imc |
| RISCV_ABI := ilp32 |
| RISCV_CODE_MODEL := medany |
| |
| # Allow additional flags on the command line for debugging. |
| RISCV_EXTRA_CFLAGS := |
| |
| TARGET_DEFAULT_TOOLCHAIN_ROOT := $(DOWNLOADS_DIR)/riscv_toolchain/bin/ |
| TARGET_TOOLCHAIN_ROOT := $(TARGET_DEFAULT_TOOLCHAIN_ROOT) |
| ifeq ($(TARGET_TOOLCHAIN_ROOT), $(TARGET_DEFAULT_TOOLCHAIN_ROOT)) |
| $(eval $(call add_third_party_download,$(RISCV_TOOLCHAIN_URL),$(RISCV_TOOLCHAIN_MD5),riscv_toolchain,)) |
| endif |
| |
| export PATH := $(TARGET_TOOLCHAIN_ROOT):$(PATH) |
| |
| PLATFORM_FLAGS = \ |
| -march=$(RISCV_ARCH) \ |
| -mabi=$(RISCV_ABI) \ |
| -mcmodel=$(RISCV_CODE_MODEL) \ |
| -mexplicit-relocs \ |
| -fno-builtin-printf \ |
| -DTF_LITE_MCU_DEBUG_LOG \ |
| -DTF_LITE_USE_GLOBAL_CMATH_FUNCTIONS \ |
| -funsigned-char \ |
| -fno-delete-null-pointer-checks \ |
| -fomit-frame-pointer |
| |
| CXXFLAGS += $(PLATFORM_FLAGS) \ |
| -fpermissive \ |
| -fno-use-cxa-atexit \ |
| -DTF_LITE_USE_GLOBAL_MIN \ |
| -DTF_LITE_USE_GLOBAL_MAX |
| |
| CCFLAGS += $(PLATFORM_FLAGS) |
| |
| BUILD_TYPE := micro |
| |
| LDFLAGS += --specs=nano.specs |
| |
| # See http://b/158651472 for why memory arena threshold test is disabled. |
| EXCLUDED_TESTS := \ |
| $(TENSORFLOW_ROOT)tensorflow/lite/micro/memory_arena_threshold_test.cc |
| |
| MICROLITE_TEST_SRCS := $(filter-out $(EXCLUDED_TESTS), $(MICROLITE_TEST_SRCS)) |
| |
| CCFLAGS += $(RISCV_EXTRA_CFLAGS) |
| CXXFLAGS += $(RISCV_EXTRA_CFLAGS) |
| |
| # This disables the "linker relaxation" optimization, which produced incorrect code. |
| # TODO(b/279805615): Check whether this is fixed in newer versions of the toolchain. |
| LDFLAGS += -mno-relax |
| TEST_SCRIPT := $(TENSORFLOW_ROOT)tensorflow/lite/micro/testing/test_with_qemu.sh riscv32 rv32 |
| SIZE_SCRIPT := ${TENSORFLOW_ROOT}tensorflow/lite/micro/testing/size_riscv32_binary.sh |
| |
| include $(MAKEFILE_DIR)/ext_libs/eyalroz_printf.inc |