PROJECT := stm8_bootloader BUILD_DIR := build SRC_DIR := src INC_DIR := include CC := sdcc OBJCOPY := packihx # Bootloader 固定放在 STM8S003F3P6 的 Flash 起始地址 0x8000。 CFLAGS := -mstm8 --std-c99 --opt-code-size -I$(INC_DIR) LDFLAGS := -mstm8 --out-fmt-ihx --code-loc 0x8000 --data-loc 0x0000 SOURCES := $(shell find $(SRC_DIR) -name '*.c' -print) OBJECTS := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.rel,$(SOURCES)) IHX := $(BUILD_DIR)/$(PROJECT).ihx HEX := $(BUILD_DIR)/$(PROJECT).hex .PHONY: all clean size all: $(HEX) $(HEX): $(IHX) @mkdir -p $(dir $@) $(OBJCOPY) $< > $@ $(IHX): $(OBJECTS) @mkdir -p $(dir $@) $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(BUILD_DIR)/%.rel: $(SRC_DIR)/%.c @mkdir -p $(dir $@) $(CC) $(CFLAGS) -c $< -o $@ size: $(IHX) @ls -lh $(IHX) $(HEX) clean: rm -rf $(BUILD_DIR)