Files
rtl8710_openocd/Makefile
2024-12-04 07:12:39 +06:00

77 lines
2.1 KiB
Makefile

FIRMWARE_ADDRESS = 0x10001500
WORK_AREA_START = 0x10005000
BUFFER_ADDRESS = 0x10008000
BUFFER_SIZE = 204800
FLASH_SECTOR_SIZE = 4096
RAM_SIZE = 15104
CC = arm-none-eabi-gcc
OBJCOPY = arm-none-eabi-objcopy
LD_FILE = rtl8710.ld
CFLAGS = -Wall -g -Os \
-mcpu=cortex-m4 -mthumb -mfloat-abi=soft \
-ffunction-sections -fdata-sections -flto \
-mlittle-endian -mthumb-interwork \
-ffreestanding -fsingle-precision-constant \
-Wstrict-aliasing=0 -nostartfiles \
-Wl,-T,$(LD_FILE) -u main \
-Wl,--gc-sections \
-Wl,--defsym=_RAM_ORIGIN=$(FIRMWARE_ADDRESS) \
-Wl,--defsym=_RAM_SIZE=$(RAM_SIZE) \
-DBUFFER_ADDRESS=$(BUFFER_ADDRESS) \
-Wl,--defsym=_WORK_AREA_START=$(WORK_AREA_START)
SRC = rtl8710_flasher.c
TARGET = rtl8710_flasher
INTERFACE = stlink
OPENOCD_BASE=openocd -f interface/$(INTERFACE).cfg -f script/rtl8710.ocd -c "init" -c "reset" -c "halt"
# generate OpenOCD script with embedded flasher bin
script/rtl8710.ocd: $(TARGET).bin rtl8710_cpu.tcl rtl8710_flasher.tcl
cat rtl8710_cpu.tcl > $@
FIRMWARE_ADDRESS=$(FIRMWARE_ADDRESS) \
BUFFER_ADDRESS=$(BUFFER_ADDRESS) \
BUFFER_SIZE=$(BUFFER_SIZE) \
FLASH_SECTOR_SIZE=$(FLASH_SECTOR_SIZE) \
./generate_ocd.sh $< >> $@
cat rtl8710_flasher.tcl >> $@
$(TARGET).bin: $(TARGET).elf
$(OBJCOPY) -O binary $< $@
$(TARGET).elf: $(SRC)
$(CC) $(CFLAGS) $^ -o $@
clean:
rm -f $(TARGET).elf $(TARGET).bin script/rtl8710.ocd
test:
$(OPENOCD_BASE) -c "rtl8710_flash_read_id" -c "shutdown"
mac:
$(OPENOCD_BASE) -c "rtl8710_flash_read_mac" -c "shutdown"
dump:
$(OPENOCD_BASE) -c "rtl8710_flash_read_id" -c "rtl8710_flash_read dump.bin 0 1048576" -c "shutdown"
full_erase:
$(OPENOCD_BASE) -c "rtl8710_flash_mass_erase" -c shutdown
restore:
$(OPENOCD_BASE) -c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" -c "rtl8710_flash_write dump.bin 0" -c shutdown
restore_nae:
$(OPENOCD_BASE) -c "rtl8710_flash_auto_erase 0" -c "rtl8710_flash_auto_verify 1" -c "rtl8710_flash_write dump.bin 0" -c shutdown
verify:
$(OPENOCD_BASE) -c "rtl8710_flash_verify dump.bin 0" -c shutdown
reset:
$(OPENOCD_BASE) -c "rtl8710_reboot" -c shutdown
.PHONY: clean