option=config.opt+bootloader.opt
This commit is contained in:
6
Makefile
6
Makefile
@@ -21,8 +21,7 @@ SRC_INC_DIR = $(SRC_DIR)/inc
|
|||||||
# Source files
|
# Source files
|
||||||
SRCS := $(wildcard $(SRC_DIR)/*.c) $(wildcard $(BSP_DIR)/*.c)
|
SRCS := $(wildcard $(SRC_DIR)/*.c) $(wildcard $(BSP_DIR)/*.c)
|
||||||
ASRCS := $(wildcard $(SRC_DIR)/*.s) $(wildcard $(BSP_DIR)/*.s)
|
ASRCS := $(wildcard $(SRC_DIR)/*.s) $(wildcard $(BSP_DIR)/*.s)
|
||||||
OPT_SRCS := $(SCRIPTS_DIR)/bootloader.opt
|
OPT_SRCS := $(wildcard $(SCRIPTS_DIR)/*.opt)
|
||||||
#OPT_SRCS := $(SCRIPTS_DIR)/factory.opt
|
|
||||||
|
|
||||||
# Compiler tools
|
# Compiler tools
|
||||||
CC = $(TOOLCHAIN)/sdcc
|
CC = $(TOOLCHAIN)/sdcc
|
||||||
@@ -38,6 +37,7 @@ CFLAGS += --stack-auto --noinduction --use-non-free
|
|||||||
## Disable lospre (workaround for bug 2673)
|
## Disable lospre (workaround for bug 2673)
|
||||||
#CFLAGS += --nolospre
|
#CFLAGS += --nolospre
|
||||||
LDFLAGS = -m$(ARCH) -l$(ARCH) --out-fmt-ihx
|
LDFLAGS = -m$(ARCH) -l$(ARCH) --out-fmt-ihx
|
||||||
|
OPTFLAGS = -Wl-bOPTION=0x4800 -Wl-bOPTION_BOOT=0x481C
|
||||||
|
|
||||||
# Object files
|
# Object files
|
||||||
OBJS = $(patsubst %.c,$(BUILD_DIR)/%.rel,$(notdir $(SRCS))) \
|
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
|
# Link option bytes separately at address 0x4800
|
||||||
$(BUILD_DIR)/option.hex: $(OPT_OBJS)
|
$(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
|
$(BUILD_DIR)/option.bin: $(BUILD_DIR)/option.hex
|
||||||
$(OBJCOPY) -I ihex --output-target=binary $< $@
|
$(OBJCOPY) -I ihex --output-target=binary $< $@
|
||||||
|
|||||||
@@ -12,21 +12,7 @@ UART1_BRR1 = 0x5232 ; 波特率寄存器1
|
|||||||
UART1_CR2 = 0x5235 ; 控制寄存器2
|
UART1_CR2 = 0x5235 ; 控制寄存器2
|
||||||
|
|
||||||
;; 引导程序主体(位于OPT保留区域0x481C-0x483F)
|
;; 引导程序主体(位于OPT保留区域0x481C-0x483F)
|
||||||
.area OPTION
|
.area OPTION_BOOT
|
||||||
|
|
||||||
_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
|
|
||||||
|
|
||||||
_bootO_start_data:
|
_bootO_start_data:
|
||||||
;; 终止标志(复制过程遇到0停止)
|
;; 终止标志(复制过程遇到0停止)
|
||||||
|
|||||||
10
scripts/config.opt
Normal file
10
scripts/config.opt
Normal 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
|
||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user