From cee9d5c560eb38664f20b9424a6d5b930b18f803 Mon Sep 17 00:00:00 2001 From: e14002270 <65062813+e14002270@users.noreply.github.com> Date: Wed, 10 Aug 2022 17:34:36 +0800 Subject: [PATCH] Fix qemu riscv build error and miss debug info in assembly code (#838) 1. add INCLUDE_xTaskGetCurrentTaskHandle for stream_buffer use 2. LDFLAGS add arch and abi info for linker for riscv64-unknown-elf multilib, if there is no arch and abi info, will link to default lib and have below error target emulation `elf32-littleriscv' does not match `elf64-littleriscv' 3. use CFLAGS to replace ASFLAGS when compile assembly code because DEBUG flag is added in CFLAGS, if we use ASFLAGS to compile assembly code, there is no debug info in assembly code objfile Signed-off-by: Eric Chan --- FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/FreeRTOSConfig.h | 1 + FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/Makefile | 4 ++-- FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/FreeRTOSConfig.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/FreeRTOSConfig.h index a0b1ed433e..a2f0a4aaff 100644 --- a/FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/FreeRTOSConfig.h @@ -102,6 +102,7 @@ to exclude the API function. */ #define INCLUDE_eTaskGetState 1 #define INCLUDE_xTimerPendFunctionCall 1 #define INCLUDE_xTaskAbortDelay 1 +#define INCLUDE_xTaskGetCurrentTaskHandle 1 #define INCLUDE_xTaskGetHandle 1 #define INCLUDE_xSemaphoreGetMutexHolder 1 diff --git a/FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/Makefile b/FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/Makefile index 4d806bf498..0f748baba0 100644 --- a/FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/Makefile +++ b/FreeRTOS/Demo/RISC-V-Qemu-virt_GCC/Makefile @@ -20,8 +20,8 @@ CFLAGS = -march=rv32ima -mabi=ilp32 -mcmodel=medany \ -ffunction-sections \ -fdata-sections \ -fno-builtin-printf -ASFLAGS = -march=rv32ima -mabi=ilp32 -mcmodel=medany LDFLAGS = -nostartfiles -Tfake_rom.lds \ + -march=rv32ima -mabi=ilp32 -mcmodel=medany \ -Xlinker --gc-sections \ -Xlinker --defsym=__stack_size=300 @@ -62,7 +62,7 @@ $(BUILD_DIR)/%.o: %.c Makefile $(BUILD_DIR)/%.o: %.S Makefile @mkdir -p $(@D) - $(CC) $(CPPFLAGS) $(ASFLAGS) -MMD -MP -c $< -o $@ + $(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c $< -o $@ clean: rm -rf $(BUILD_DIR) diff --git a/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/FreeRTOSConfig.h index fa61c90afd..8f43c64d95 100644 --- a/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/FreeRTOSConfig.h @@ -98,6 +98,7 @@ to exclude the API function. */ #define INCLUDE_eTaskGetState 1 #define INCLUDE_xTimerPendFunctionCall 1 #define INCLUDE_xTaskAbortDelay 1 +#define INCLUDE_xTaskGetCurrentTaskHandle 1 #define INCLUDE_xTaskGetHandle 1 /* This demo makes use of one or more example stats formatting functions. These