К сожалению, для RealView не ваял. Делал для яра и gcc. NAME=bootloader
SHELL=cmd
ARCH=arm-none-eabi
CC=$(ARCH)-gcc
OBJCOPY=$(ARCH)-objcopy
SIZE=$(ARCH)-size
BIN=$(NAME).bin
HEX=$(NAME).hex
ELF=$(NAME).elf
MAP=$(NAME).map
SRC=$(wildcard app/*.c net/*.c)
OBJ=$(addsuffix .o, $(basename $(SRC)))
DEP=$(addsuffix .d, $(basename $(SRC)))
INC=-I. -Iapp
CFLAGS=-mthumb -mcpu=cortex-m3 -g -Wall -fno-strict-aliasing -std=c99
LDFLAGS=-T stm32.ld -Wl,-Map=$(MAP),--gc-sections,--defsym=fw_start=0x08002800 -fwhole-program -static --specs=nano.specs -lc -lnosys
ifeq ($(DEBUG), 1)
CFLAGS += -O0
else
CFLAGS += -DNDEBUG -Os -flto
endif
.PHONY: all clean
all: $(BIN) $(HEX)
$(BIN): $(ELF)
@echo BIN $@
@$(OBJCOPY) -O binary $< $(BIN)
$(HEX): $(ELF)
@echo HEX $@
@$(OBJCOPY) -O ihex $< $(HEX)
%.o: %.c
@echo CC $<
@$(CC) $< -c -MMD $(CFLAGS) $(INC) -o $@
$(ELF): $(OBJ)
@echo LINK $@
@$(CC) $^ $(CFLAGS) $(LDFLAGS) -o $@
@echo SIZE $@
@$(SIZE) $@
clean:
@echo CLEAN
@rm -f $(ELF) $(BIN) $(HEX) $(MAP) $(OBJ) $(DEP)
-include $(DEP)