I’m planning to write some Python script to do that; for now, I’ve been dissecting the dfu files for 2.5e and 3.1 BenF firmwares, in order to grasp the format better:
File: "./seeed/DS0201_LIB_V2.5.dfu"
DfuSe v1, image size: 20079, targets: 1
Target 0, alt setting: 0, name: "ST...", size: 19794, elements: 2
0, address: 0x08004000, size: 14634
1, address: 0x0800792c, size: 5144
usb: 0483:0000, device: 0x0000, dfu: 0x011a, UFD, 16, 0x42c9c2e9
File: "./seeed/DSO nano APP v2.5e.dfu"
DfuSe v1, image size: 26453, targets: 1
Target 0, alt setting: 0, name: "ST...", size: 26168, elements: 1
0, address: 0x0800c000, size: 26160
usb: 0483:0000, device: 0x0000, dfu: 0x011a, UFD, 16, 0x78f39025
File: "./BenF/DSO BenF LIB v3.01.dfu"
DfuSe v1, image size: 14009, targets: 1
Target 0, alt setting: 0, name: "ST...", size: 13724, elements: 1
0, address: 0x08004000, size: 13716
usb: 0483:0000, device: 0x0000, dfu: 0x011a, UFD, 16, 0x36d848a4
File: "./BenF/DSO BenF APP v3.10.dfu"
DfuSe v1, image size: 21172, targets: 1
Target 0, alt setting: 0, name: "ST...", size: 20887, elements: 1
0, address: 0x0800c000, size: 20879
usb: 0483:0000, device: 0x0000, dfu: 0x011a, UFD, 16, 0x02e4298d
The simplistic parser I wrote is attached.
Antonio
dfu.zip (880 Bytes)