mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-09 05:05:17 -05:00
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 <e14002270@gmail.com>
70 lines
1.9 KiB
Makefile
70 lines
1.9 KiB
Makefile
CROSS = riscv64-unknown-elf-
|
|
CC = $(CROSS)gcc
|
|
OBJCOPY = $(CROSS)objcopy
|
|
ARCH = $(CROSS)ar
|
|
|
|
BUILD_DIR = build
|
|
RTOS_SOURCE_DIR = $(abspath ../../Source)
|
|
DEMO_SOURCE_DIR = $(abspath ../Common/Minimal)
|
|
|
|
CPPFLAGS = \
|
|
-D__riscv_float_abi_soft \
|
|
-DportasmHANDLE_INTERRUPT=handle_trap \
|
|
-I . -I ../Common/include \
|
|
-I $(RTOS_SOURCE_DIR)/include \
|
|
-I $(RTOS_SOURCE_DIR)/portable/GCC/RISC-V \
|
|
-I $(RTOS_SOURCE_DIR)/portable/GCC/RISC-V/chip_specific_extensions/RV32I_CLINT_no_extensions
|
|
CFLAGS = -march=rv32ima -mabi=ilp32 -mcmodel=medany \
|
|
-Wall \
|
|
-fmessage-length=0 \
|
|
-ffunction-sections \
|
|
-fdata-sections \
|
|
-fno-builtin-printf
|
|
LDFLAGS = -nostartfiles -Tfake_rom.lds \
|
|
-march=rv32ima -mabi=ilp32 -mcmodel=medany \
|
|
-Xlinker --gc-sections \
|
|
-Xlinker --defsym=__stack_size=300
|
|
|
|
ifeq ($(DEBUG), 1)
|
|
CFLAGS += -Og -ggdb3
|
|
else
|
|
CFLAGS += -O2
|
|
endif
|
|
|
|
SRCS = main.c main_blinky.c riscv-virt.c ns16550.c \
|
|
$(DEMO_SOURCE_DIR)/EventGroupsDemo.c \
|
|
$(DEMO_SOURCE_DIR)/TaskNotify.c \
|
|
$(DEMO_SOURCE_DIR)/TimerDemo.c \
|
|
$(DEMO_SOURCE_DIR)/blocktim.c \
|
|
$(DEMO_SOURCE_DIR)/dynamic.c \
|
|
$(DEMO_SOURCE_DIR)/recmutex.c \
|
|
$(RTOS_SOURCE_DIR)/event_groups.c \
|
|
$(RTOS_SOURCE_DIR)/list.c \
|
|
$(RTOS_SOURCE_DIR)/queue.c \
|
|
$(RTOS_SOURCE_DIR)/stream_buffer.c \
|
|
$(RTOS_SOURCE_DIR)/tasks.c \
|
|
$(RTOS_SOURCE_DIR)/timers.c \
|
|
$(RTOS_SOURCE_DIR)/portable/MemMang/heap_4.c \
|
|
$(RTOS_SOURCE_DIR)/portable/GCC/RISC-V/port.c
|
|
|
|
ASMS = start.S \
|
|
$(RTOS_SOURCE_DIR)/portable/GCC/RISC-V/portASM.S
|
|
|
|
OBJS = $(SRCS:%.c=$(BUILD_DIR)/%.o) $(ASMS:%.S=$(BUILD_DIR)/%.o)
|
|
DEPS = $(SRCS:%.c=$(BUILD_DIR)/%.d) $(ASMS:%.S=$(BUILD_DIR)/%.d)
|
|
|
|
$(BUILD_DIR)/RTOSDemo.axf: $(OBJS) fake_rom.lds Makefile
|
|
$(CC) $(LDFLAGS) $(OBJS) -o $@
|
|
|
|
$(BUILD_DIR)/%.o: %.c Makefile
|
|
@mkdir -p $(@D)
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(BUILD_DIR)/%.o: %.S Makefile
|
|
@mkdir -p $(@D)
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|
|
-include $(DEPS)
|