diff options
-rwxr-xr-x | downloader/downloader.py | 7 | ||||
-rw-r--r-- | downloader/proto.txt | 10 |
2 files changed, 13 insertions, 4 deletions
diff --git a/downloader/downloader.py b/downloader/downloader.py index b85326f..f0407e9 100755 --- a/downloader/downloader.py +++ b/downloader/downloader.py @@ -158,9 +158,9 @@ def exec_command(dev, cmd, param, answer): ### Commands def identify(dev): - data = exec_command(dev, 1, '', '<BB10sHBBH') + data = exec_command(dev, 1, '', '<BB10sHHBHBH') id = { 'ver_min': data[0], 'ver_maj': data[1], 'name': data[2], 'devid': data[3], - 'fss': data[4], 'mess': data[5], 'supported': data[6] } + 'fs': data[4], 'fss': data[5], 'es': data[6], 'mess': data[7], 'supported': data[8] } if id['ver_maj'] != VERSION_MAJ: print "incompatible protocol version, expected: %d, got: %d" % (VERSION_MAJ, id['ver_maj']) @@ -169,7 +169,8 @@ def identify(dev): print "FSS value is 0 " sys.exit(4) - 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']) + print "connected with Bootloader '%s' Version %d.%d, (ID=%04X, %d bytes Flash, FSS=%d, %d bytes EEPROM, MESS=%d)" % \ + (id['name'], id['ver_maj'], id['ver_min'], id['devid'], id['fs'], id['fss'], id['es'], id['mess']) return id def boot(dev): diff --git a/downloader/proto.txt b/downloader/proto.txt index 98beebe..a53acc9 100644 --- a/downloader/proto.txt +++ b/downloader/proto.txt @@ -43,7 +43,7 @@ identify: 1 | len=3 | <csum> answer: - 1 | len=22 | <ret> | version | name | devid | fss | mess | supported | <csum> + 1 | len=22 | <ret> | version | name | devid | fs | fss | es | mess | supported | <csum> version: 2bytes, protocol version @@ -59,12 +59,20 @@ identify: 2bytes, device id of the PIC The downlaoder may use this id to check if it talks to the right bootloader + fs: + 2bytes, flash size + The size of the flash in code words. + fss: 1byte, flash segment size The number of words of one flash segment which has to be written at once. If less than <fss> should be updated the downloader has to perform a read operation first. + es: + 2bytes, eeprom size + The size of the eeprom in bytes. + mess: 1byte, maximum eeprom segment size This represents the maximum number of eeprom bytes which may be written or |