summaryrefslogtreecommitdiff
path: root/downloader/downloader.py
diff options
context:
space:
mode:
Diffstat (limited to 'downloader/downloader.py')
-rwxr-xr-xdownloader/downloader.py15
1 files changed, 6 insertions, 9 deletions
diff --git a/downloader/downloader.py b/downloader/downloader.py
index c0ce34f..653bd72 100755
--- a/downloader/downloader.py
+++ b/downloader/downloader.py
@@ -108,11 +108,9 @@ def exec_command(dev, cmd, param, answer):
5: "address invalid", 6: "address prohibited",
7: "value out of bounds" }
- dev.flushInput()
- dev.flushOutput()
-
- cstr = bytearray(struct.pack('<BB', cmd, len(param)+3) + param)
+ cstr = bytearray(struct.pack('<BB', cmd, 0) + param)
cstr.extend(struct.pack("<B", calc_csum(cstr)))
+ cstr[1] = len(cstr)
dev.write(cstr)
astr = bytearray()
@@ -158,9 +156,9 @@ def exec_command(dev, cmd, param, answer):
### Commands
def identify(dev):
- data = exec_command(dev, 1, '', '<BBHHHBHBH')
- id = { 'ver_min': data[0], 'ver_maj': data[1], 'userid': data[2], 'devid': data[3],
- 'fs': data[4], 'fss': data[5], 'es': data[6], 'mess': data[7], 'supported': data[8] }
+ data = exec_command(dev, 1, '', '<BB3sHBBH')
+ id = { 'ver_min': data[0], 'ver_maj': data[1], 'name': data[2], 'devid': data[3],
+ 'fss': data[4], 'mess': data[5], 'supported': data[6] }
if id['ver_maj'] != VERSION_MAJ:
print "incompatible protocol version, expected: %d, got: %d" % (VERSION_MAJ, id['ver_maj'])
@@ -169,8 +167,7 @@ def identify(dev):
print "FSS value is 0 "
sys.exit(4)
- print "connected with Bootloader '%04X' Version %d.%d, (ID=%04X, %d bytes Flash, FSS=%d, %d bytes EEPROM, MESS=%d)" % \
- (id['userid'], id['ver_maj'], id['ver_min'], id['devid'], id['fs'], id['fss'], id['es'], id['mess'])
+ print "connected with Bootloader '%s' Version %d.%d, (ID=%04X, FSS=%d, MESS=%d)" % (id['name'], id['ver_maj'], id['ver_min'], id['devid'], id['fss'], id['mess'])
return id
def boot(dev):