From: daid303 Date: Tue, 6 Nov 2012 07:50:53 +0000 (+0100) Subject: Send firmware update per page size. The bootloader expects this. X-Git-Tag: 13.03~210 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=f357ee18a30b73e86a537f4ab063b01a0e4e1cbb;p=cura.git Send firmware update per page size. The bootloader expects this. --- diff --git a/Cura/avr_isp/stk500v2.py b/Cura/avr_isp/stk500v2.py index 245db8e4..8e246b91 100644 --- a/Cura/avr_isp/stk500v2.py +++ b/Cura/avr_isp/stk500v2.py @@ -58,15 +58,16 @@ class Stk500v2(ispBase.IspBase): def writeFlash(self, flashData): #Set load addr to 0, in case we have more then 64k flash we need to enable the address extension - flashSize = self.chip['pageSize'] * 2 * self.chip['pageCount'] + pageSize = self.chip['pageSize'] * 2 + flashSize = pageSize * self.chip['pageCount'] if flashSize > 0xFFFF: self.sendMessage([0x06, 0x80, 0x00, 0x00, 0x00]) else: self.sendMessage([0x06, 0x00, 0x00, 0x00, 0x00]) - loadCount = (len(flashData) + 0xFF) / 0x100 + loadCount = (len(flashData) + pageSize - 1) / pageSize for i in xrange(0, loadCount): - recv = self.sendMessage([0x13, 0x01, 0x00, 0xc1, 0x0a, 0x40, 0x4c, 0x20, 0x00, 0x00] + flashData[(i * 0x100):(i * 0x100 + 0x100)]) + recv = self.sendMessage([0x13, pageSize >> 8, pageSize & 0xFF, 0xc1, 0x0a, 0x40, 0x4c, 0x20, 0x00, 0x00] + flashData[(i * pageSize):(i * pageSize + pageSize)]) if self.progressCallback != None: self.progressCallback(i + 1, loadCount*2)