Initial commit - sync AliceRC to Gitea
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
###############################################################################
|
||||
# 萝莉3代 接收机固件 - Makefile (SDCC)
|
||||
# 工具链: sdcc (apt 包,版本 4.2.0)
|
||||
# MCU: STC8H1K08-36I-QFN20 (1T 8051 内核,8KB Flash,1.25KB RAM)
|
||||
###############################################################################
|
||||
|
||||
PROJECT := LoliRX
|
||||
TARGET := $(PROJECT).ihx
|
||||
HEX := $(PROJECT).hex
|
||||
BIN := $(PROJECT).bin
|
||||
|
||||
# 工具
|
||||
CC := sdcc
|
||||
PACKIHX := packihx
|
||||
MAKEBIN := makebin
|
||||
|
||||
# 目录
|
||||
BUILD := build
|
||||
INC_DIRS := inc
|
||||
SRC_DIRS := src
|
||||
|
||||
# 源
|
||||
C_SRCS := $(wildcard $(SRC_DIRS)/*.c)
|
||||
|
||||
# 头
|
||||
INCLUDES := $(addprefix -I,$(INC_DIRS))
|
||||
|
||||
# SDCC 模型: stc8h1k08 是标准 8051,data 区 128 字节,xdata 可扩展
|
||||
# 用 --model-small 让 data/xdata 自动分配
|
||||
CFLAGS := -mmcs51 \
|
||||
--model-small \
|
||||
--std-sdcc11 \
|
||||
--opt-code-size \
|
||||
$(INCLUDES)
|
||||
|
||||
LDFLAGS := -mmcs51 \
|
||||
--model-small \
|
||||
--iram-size 256 \
|
||||
--xram-size 512 \
|
||||
--code-size 8192 \
|
||||
--out-fmt-ihx
|
||||
|
||||
# 输出位置
|
||||
OBJECTS := $(C_SRCS:$(SRC_DIRS)/%.c=$(BUILD)/%.rel)
|
||||
|
||||
.PHONY: all clean flash size
|
||||
|
||||
all: $(HEX) $(BIN) size
|
||||
|
||||
$(HEX): $(TARGET)
|
||||
@$(PACKIHX) $(TARGET) > $(HEX)
|
||||
@echo "HEX <-" $(HEX)
|
||||
|
||||
$(BIN): $(TARGET)
|
||||
@$(MAKEBIN) -s 8192 $(TARGET) $(BIN)
|
||||
@echo "BIN <-" $(BIN)
|
||||
|
||||
$(TARGET): $(OBJECTS)
|
||||
@echo "LD <-" $@
|
||||
@$(CC) $(LDFLAGS) -o $@ $(OBJECTS)
|
||||
|
||||
$(BUILD)/%.rel: $(SRC_DIRS)/%.c | $(BUILD)
|
||||
@echo "CC <-" $<
|
||||
@$(CC) -c $(CFLAGS) -o $@ $<
|
||||
|
||||
$(BUILD):
|
||||
@mkdir -p $@
|
||||
|
||||
size: $(TARGET)
|
||||
@echo
|
||||
@echo "=== Memory map ==="
|
||||
@grep -E "^\s*(ABS,CON)" $(BUILD)/$(PROJECT).map 2>/dev/null | head -20 || \
|
||||
echo " 无 .map 文件"
|
||||
|
||||
flash: $(BIN)
|
||||
stcgal -p stc8h1k08 -b 115200 $(BIN)
|
||||
|
||||
clean:
|
||||
@rm -rf $(BUILD) $(HEX) $(BIN) $(TARGET)
|
||||
@echo "清理完成"
|
||||
Reference in New Issue
Block a user