50 lines
971 B
Makefile
50 lines
971 B
Makefile
# ZhaTianRX - STC8H1K08 接收机固件 Makefile
|
|
# 编译器: SDCC
|
|
|
|
TARGET = ZhaTianRX
|
|
BUILD_DIR = build
|
|
|
|
# SDCC 路径
|
|
CC = sdcc
|
|
PACK = packihx
|
|
|
|
# 源文件
|
|
C_SOURCES = main.c
|
|
|
|
# 编译标志
|
|
CFLAGS = -mmcs51 --model-small --no-xinit-opt
|
|
|
|
# 输出文件
|
|
IHX = $(BUILD_DIR)/$(TARGET).ihx
|
|
HEX = $(BUILD_DIR)/$(TARGET).hex
|
|
BIN = $(BUILD_DIR)/$(TARGET).bin
|
|
|
|
# 目标
|
|
all: $(BUILD_DIR) $(HEX) $(BIN)
|
|
|
|
$(BUILD_DIR):
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
# 编译: SDCC 直接输出 .ihx
|
|
$(IHX): $(C_SOURCES) NRF24.h STC8_SDCC.H | $(BUILD_DIR)
|
|
$(CC) $(CFLAGS) -o $(IHX) $(C_SOURCES)
|
|
|
|
# 转换为 Intel HEX
|
|
$(HEX): $(IHX)
|
|
$(PACK) $(IHX) > $(HEX)
|
|
|
|
# 转换为二进制
|
|
$(BIN): $(HEX) hex2bin.py
|
|
python3 hex2bin.py $(HEX) $(BIN)
|
|
|
|
# 清理
|
|
clean:
|
|
rm -rf $(BUILD_DIR) *.asm *.lst *.rel *.rst *.sym *.map *.mem *.lk
|
|
|
|
# 烧录 (需要 stcgal)
|
|
flash: $(HEX)
|
|
@echo "烧录命令: stcgal -p /dev/ttyUSB0 -b 115200 $(HEX)"
|
|
@echo "或者使用 STC-ISP 工具手动烧录"
|
|
|
|
.PHONY: all clean flash
|