option=config.opt+bootloader.opt

This commit is contained in:
2025-12-17 10:01:16 +08:00
parent 1fb18e2461
commit 90b7839112
4 changed files with 14 additions and 40 deletions

View File

@@ -21,8 +21,7 @@ SRC_INC_DIR = $(SRC_DIR)/inc
# Source files
SRCS := $(wildcard $(SRC_DIR)/*.c) $(wildcard $(BSP_DIR)/*.c)
ASRCS := $(wildcard $(SRC_DIR)/*.s) $(wildcard $(BSP_DIR)/*.s)
OPT_SRCS := $(SCRIPTS_DIR)/bootloader.opt
#OPT_SRCS := $(SCRIPTS_DIR)/factory.opt
OPT_SRCS := $(wildcard $(SCRIPTS_DIR)/*.opt)
# Compiler tools
CC = $(TOOLCHAIN)/sdcc
@@ -38,6 +37,7 @@ CFLAGS += --stack-auto --noinduction --use-non-free
## Disable lospre (workaround for bug 2673)
#CFLAGS += --nolospre
LDFLAGS = -m$(ARCH) -l$(ARCH) --out-fmt-ihx
OPTFLAGS = -Wl-bOPTION=0x4800 -Wl-bOPTION_BOOT=0x481C
# Object files
OBJS = $(patsubst %.c,$(BUILD_DIR)/%.rel,$(notdir $(SRCS))) \
@@ -79,7 +79,7 @@ $(BUILD_DIR)/$(TARGET).bin: $(BUILD_DIR)/$(TARGET).hex
# Link option bytes separately at address 0x4800
$(BUILD_DIR)/option.hex: $(OPT_OBJS)
$(CC) $(LDFLAGS) -Wl-bOPTION=0x4800 $(OPT_OBJS) -o $@ || true
$(CC) $(LDFLAGS) $(OPTFLAGS) $(OPT_OBJS) -o $@ || true
$(BUILD_DIR)/option.bin: $(BUILD_DIR)/option.hex
$(OBJCOPY) -I ihex --output-target=binary $< $@

View File

@@ -12,21 +12,7 @@ UART1_BRR1 = 0x5232 ; 波特率寄存器1
UART1_CR2 = 0x5235 ; 控制寄存器2
;; 引导程序主体位于OPT保留区域0x481C-0x483F
.area OPTION
_bootO_start_opt:
.db 0x00 ; ROP
.db 0x00,0xFF ; UCB
.db 0x00,0xFF ; AFR
.db 0x00,0xFF ; Misc
.db 0x00,0xFF ; Clock
.db 0x00,0xFF ; HSECNT
_bootO_resv_data:
.db 0x00,0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00
.area OPTION_BOOT
_bootO_start_data:
;; 终止标志复制过程遇到0停止

10
scripts/config.opt Normal file
View File

@@ -0,0 +1,10 @@
;; option bytes(0x4800~0x480A)
.area OPTION
_bootO_start_opt:
.db 0x00 ; ROP
.db 0x00,0xFF ; UCB
.db 0x00,0xFF ; AFR
.db 0x00,0xFF ; Misc
.db 0x00,0xFF ; Clock
.db 0x00,0xFF ; HSECNT

View File

@@ -1,22 +0,0 @@
;; option O0 O1 N1 O2 N2 O3 N3 O4 N4 O5 N5
;; 4800 00 00 FF 00 FF 00 FF 00 FF 00 FF
;; 引导程序主体位于OPT保留区域0x481C-0x483F
.area OPTION
_bootO_start_opt:
.db 0x00 ; ROP
.db 0x00,0xFF ; UCB
.db 0x00,0xFF ; AFR
.db 0x00,0xFF ; Misc
.db 0x00,0xFF ; Clock
.db 0x00,0xFF ; HSECNT
_bootO_resv_data:
.db 0x00,0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00