# STM8S003F3P6 汇编主程序实验工程。
# 主程序固定从0x8500开始链接，与汇编Bootloader的新地址布局匹配。

PROJECT := stm8_app_asm
BUILD_DIR := build
AS := sdasstm8
LD := sdldstm8
PACKIHX := packihx
MAKEBIN := makebin

ASMFLAGS := -plosgff
LINKFLAGS := -mjwxu -b HOME=0x8500 -b CODE=0x8568
OBJECT := $(BUILD_DIR)/app_vectors.rel
IHX := $(BUILD_DIR)/$(PROJECT).ihx
HEX := $(BUILD_DIR)/$(PROJECT).hex
BIN := $(BUILD_DIR)/$(PROJECT).bin

.PHONY: all clean

all: $(HEX) $(BIN)

$(BUILD_DIR):
	mkdir -p $(BUILD_DIR)

$(OBJECT): src/app_vectors.asm | $(BUILD_DIR)
	$(AS) $(ASMFLAGS) -o $@ $<

$(IHX): $(OBJECT)
	$(LD) $(LINKFLAGS) -i $@ $^

$(HEX): $(IHX)
	$(PACKIHX) $< > $@

# 生成用于写入W25Q80BV出厂区的主程序裸BIN。
# -s提供完整STM8地址空间，-o跳过0x0000~0x84FF，仅保留0x8500之后的应用数据。
$(BIN): $(IHX)
	$(MAKEBIN) -p -s 0x10000 -o 0x8500 $< $@

clean:
	rm -rf $(BUILD_DIR)
