From 903242b9ad2e6fb33393d165d454bbd566ec04c0 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Mon, 11 Apr 2011 08:57:54 +0900 Subject: [PATCH] fix dfuse.py --- ChangeLog | 4 ++++ tool/dfuse.py | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9280bb2..722c266 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-04-11 NIIBE Yutaka + + * tool/dfuse.py (DFU_STM32.verify): support data size of non-1-KiB. + 2011-02-24 NIIBE Yutaka * src/usb_prop.c (gnuk_device_SetInterface): Fix argument to diff --git a/tool/dfuse.py b/tool/dfuse.py index e826af4..bd85945 100755 --- a/tool/dfuse.py +++ b/tool/dfuse.py @@ -229,7 +229,7 @@ class DFU_STM32: data = ih.memory[start_addr] end_addr = start_addr + len(data) addr = start_addr & 0xfffffc00 - # XXX: data should be 1-KiB aligned and size should be just KiB. + # XXX: data should be 1-KiB aligned if addr != start_addr: raise ValueError, "padding is not supported yet" self.dfuse_set_address_pointer(addr) @@ -272,7 +272,7 @@ class DFU_STM32: data = ih.memory[start_addr] end_addr = start_addr + len(data) addr = start_addr & 0xfffffc00 - # XXX: data should be 1-KiB aligned and size should be just KiB. + # XXX: data should be 1-KiB aligned if addr != start_addr: raise ValueError, "padding is not supported yet" self.dfuse_set_address_pointer(addr) @@ -282,8 +282,8 @@ class DFU_STM32: while addr < end_addr: block = self.dfuse_read_memory() j = 0 - for d in block: - if d != (ord(data[i*1024+j])&0xff): + for c in data[i*1024:i*1024+1024] + if (ord(c)&0xff) != block[j]: raise ValueError, "verify failed at %08x" % (addr + i*1024+j) j += 1 if i & 0x03 == 0x03: