summaryrefslogtreecommitdiff
path: root/downloader
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-07-07 13:54:16 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-07-07 13:54:16 +0000
commit51bc06787707feabd34fb909f009df50691023c9 (patch)
tree61acfa2b46609ce0b1cdcf2f68d35106bfb04df0 /downloader
parentbootloader now checks csum (diff)
added flash and eeprom sizes to identify
git-svn-id: https://svn.spreadspace.org/pic/trunk@48 a09c6847-51d9-44de-8ef2-e725cf50f3c7
Diffstat (limited to 'downloader')
-rwxr-xr-xdownloader/downloader.py7
-rw-r--r--downloader/proto.txt10
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