diff --git a/.gitignore b/.gitignore index 8ba9d018a0..7cd7fa8015 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ *.elf *.hex *.qmk -*.dfu !util/bootloader.hex !quantum/tools/eeprom_reset.hex *.log diff --git a/keyboards/anne_pro/README.md b/keyboards/anne_pro/README.md index 66d42022be..42e84160e9 100644 --- a/keyboards/anne_pro/README.md +++ b/keyboards/anne_pro/README.md @@ -13,10 +13,7 @@ After this build the Anne Pro firmware from the main folder. ``` $ make anne_pro ``` -This produces a file `anne_pro_default.bin` in the main folder. To covert this to a DFU file use the script provided. -``` -./util/dfu-convert.py -b 0x08004000:anne_pro_default.bin anne_pro_default.dfu -``` +This produces a file `anne_pro_default.bin` in the main folder. ## Flashing the firmware First find the correct device to flash. @@ -28,7 +25,7 @@ Found DFU: [0483:df11] ver=0200, devnum=30, cfg=1, intf=0, path="20-1.1", alt=1, Found DFU: [0483:df11] ver=0200, devnum=30, cfg=1, intf=0, path="20-1.1", alt=0, name="@Internal Flash /0x08000000/64*256 a,192*256 g", serial="017D37663036" ... ``` -Then flash the firmware. +Use the device with `Internal Flash 0x08000000` and specify the interface and alt. To flash use the following command. ``` -$ dfu-util --alt 0 --intf 0 --download anne_pro_default.dfu +$ dfu-util --alt 0 --intf 0 --dfuse-address 0x08004000 --download anne_pro_default.bin ``` diff --git a/util/dfu-convert.py b/util/dfu-convert.py deleted file mode 100755 index 2022e41793..0000000000 --- a/util/dfu-convert.py +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env python2 - -# Written by Antonio Galea - 2010/11/18 -# Distributed under Gnu LGPL 3.0 -# see http://www.gnu.org/licenses/lgpl-3.0.txt -# -# Removed ihex functionality and dependency, Bitcraze - 2014-12-11 - -import sys,struct,zlib,os -from optparse import OptionParser - -DEFAULT_DEVICE="0x0483:0xdf11" - -def named(tuple,names): - return dict(zip(names.split(),tuple)) -def consume(fmt,data,names): - n = struct.calcsize(fmt) - return named(struct.unpack(fmt,data[:n]),names),data[n:] -def cstring(string): - return string.split('\0',1)[0] -def compute_crc(data): - return 0xFFFFFFFF & -zlib.crc32(data) -1 - -def parse(file,dump_images=False): - print 'File: "%s"' % file - data = open(file,'rb').read() - crc = compute_crc(data[:-4]) - prefix, data = consume('<5sBIB',data,'signature version size targets') - print '%(signature)s v%(version)d, image size: %(size)d, targets: %(targets)d' % prefix - for t in range(prefix['targets']): - tprefix, data = consume('<6sBI255s2I',data,'signature altsetting named name size elements') - tprefix['num'] = t - if tprefix['named']: - tprefix['name'] = cstring(tprefix['name']) - else: - tprefix['name'] = '' - print '%(signature)s %(num)d, alt setting: %(altsetting)s, name: "%(name)s", size: %(size)d, elements: %(elements)d' % tprefix - tsize = tprefix['size'] - target, data = data[:tsize], data[tsize:] - for e in range(tprefix['elements']): - eprefix, target = consume('<2I',target,'address size') - eprefix['num'] = e - print ' %(num)d, address: 0x%(address)08x, size: %(size)d' % eprefix - esize = eprefix['size'] - image, target = target[:esize], target[esize:] - if dump_images: - out = '%s.target%d.image%d.bin' % (file,t,e) - open(out,'wb').write(image) - print ' DUMPED IMAGE TO "%s"' % out - if len(target): - print "target %d: PARSE ERROR" % t - suffix = named(struct.unpack('<4H3sBI',data[:16]),'device product vendor dfu ufd len crc') - print 'usb: %(vendor)04x:%(product)04x, device: 0x%(device)04x, dfu: 0x%(dfu)04x, %(ufd)s, %(len)d, 0x%(crc)08x' % suffix - if crc != suffix['crc']: - print "CRC ERROR: computed crc32 is 0x%08x" % crc - data = data[16:] - if data: - print "PARSE ERROR" - -def build(file,targets,device=DEFAULT_DEVICE): - data = '' - for t,target in enumerate(targets): - tdata = '' - for image in target: - tdata += struct.pack('<2I',image['address'],len(image['data']))+image['data'] - tdata = struct.pack('<6sBI255s2I','Target',0,1,'ST...',len(tdata),len(target)) + tdata - data += tdata - data = struct.pack('<5sBIB','DfuSe',1,len(data)+11,len(targets)) + data - v,d=map(lambda x: int(x,0) & 0xFFFF, device.split(':',1)) - data += struct.pack('<4H3sB',0,d,v,0x011a,'UFD',16) - crc = compute_crc(data) - data += struct.pack('