77 lines
2.2 KiB
Makefile
77 lines
2.2 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 -mlong-calls -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
|