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