Files
STM8_Mesh_Control/Makefile
T
十七 42a4650a78 feat: 完善Mesh继电器OTA与地址协议
- 增加STM8 Bootloader工程及出厂固件恢复流程\n- 增加W25Q64外部Flash驱动和OTA分包接收、CRC16校验、断点续传状态管理\n- 增加固件版本查询、升级结果上报与主机确认机制\n- 将业务帧从55 AA帧头调整为发送方Mesh短地址+CMD+LEN+DATA+CRC16\n- 修正JDY-28M外层地址与业务发送方地址的职责划分,支持广播请求定向应答\n- 同步更新硬件引脚、存储分区、OTA流程和主机通信协议文档\n- 已使用SDCC重新编译,应用代码大小为5512字节,链接地址为0x8800
2026-11-03 11:29:55 +08:00

51 lines
1.4 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# STM8S003F3P6TR 固件第一阶段构建文件。
# 本阶段只验证工程结构和模块接口,硬件寄存器驱动将在后续阶段逐步接入。
PROJECT := mesh_relay
BUILD_DIR := build
SRC_DIR := src
INC_DIR := include
CC := sdcc
OBJCOPY := packihx
MAKEBIN := makebin
CFLAGS := -mstm8 --std-c99 --opt-code-size -I$(INC_DIR)
# Bootloader占用0x8000~0x87FF,主程序必须从0x8800开始链接。
LDFLAGS := -mstm8 --out-fmt-ihx --code-loc 0x8800
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
BIN := $(BUILD_DIR)/$(PROJECT).bin
.PHONY: all clean size
all: $(HEX) $(BIN)
$(HEX): $(IHX)
@mkdir -p $(dir $@)
$(OBJCOPY) $< > $@
# 生成OTA使用的裸二进制:跳过0x0000~0x87FF,只保留0x8800之后的应用程序数据。
# -s 0x10000确保按STM8完整地址空间解析IHX;-o 0x8800去除Bootloader区域;
# -p再截断到应用程序最后一个实际占用地址,避免生成无意义的尾部空洞。
$(BIN): $(IHX)
@mkdir -p $(dir $@)
$(MAKEBIN) -p -s 0x10000 -o 0x8800 $< $@
$(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) $(BIN)
clean:
rm -rf $(BUILD_DIR)