import os
def erase1():
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08008000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08008400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08008800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08008C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08009000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08009400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08009800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08009C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800A000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800A400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800A800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800AC00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800B000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800B400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800B800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800BC00 -D erase.bin")
def erase2():
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08008000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08008400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08008800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08008C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08009000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08009400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08009800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08009C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800A000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800A400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800A800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800AC00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800B000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800B400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800B800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800BC00 -D erase.bin")
    
    
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800C000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800C400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800C800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800CC00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800D000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800D400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800D800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800DC00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800E000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800E400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800E800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800EC00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800F000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800F400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800F800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x0800FC00 -D erase.bin")
    
    
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08010000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08010400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08010800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08010C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08011000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08011400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08011800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08011C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08012000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08012400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08012800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08012C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08013000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08013400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08013800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08013C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08014000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08014400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08014800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08014C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08015000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08015400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08015800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08015C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08016000 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08016400 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08016800 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08016C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08017000 -D erase.bin")
    #os.system("dfu-util -d 0483:df11 -a 0 -s 0x08017400 -D erase.bin")
    #os.system("dfu-util -d 0483:df11 -a 0 -s 0x08017800 -D erase.bin")
    #os.system("dfu-util -d 0483:df11 -a 0 -s 0x08017C00 -D erase.bin")
    os.system("dfu-util -d 0483:df11 -a 0 -s 0x08007000 -D erase.bin")
gd32v = 1
p1=os.popen("dfu-util -l")
if p1.read().find('M29W128F') > 0:
  erase1()
  os.system("dfu-util.exe -d 0483:df11 -a 0 -D TOUCH0524.dfu")
  gd32v = 0
  input()

p2=os.popen("dfu-util -l")
if p2.read().find('M29W129') > 0:
  gd32v = 0
  print("esp32s2")
  os.system("dfu-util.exe -d 0483:df11 -a 0 -D DFR0524_ESP32S2.dfu")
  input()


if gd32v == 1:
  print("gd32v")
  erase2()
  os.system("dfu-util.exe -d 0483:df11 -a 0 -D DFR0524_GD32V.dfu")
  input()