aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/armdebug/Host/libnxt-0.3/make_flash_header.py
diff options
context:
space:
mode:
Diffstat (limited to 'AT91SAM7S256/armdebug/Host/libnxt-0.3/make_flash_header.py')
-rwxr-xr-xAT91SAM7S256/armdebug/Host/libnxt-0.3/make_flash_header.py109
1 files changed, 0 insertions, 109 deletions
diff --git a/AT91SAM7S256/armdebug/Host/libnxt-0.3/make_flash_header.py b/AT91SAM7S256/armdebug/Host/libnxt-0.3/make_flash_header.py
deleted file mode 100755
index 9734c86..0000000
--- a/AT91SAM7S256/armdebug/Host/libnxt-0.3/make_flash_header.py
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env python
-#
-# Take the flash_routine.bin file, and embed it as an array of bytes
-# in a flash_routine.h, ready for packaging with the C firmware
-# flasher.
-#
-# If a file name is provided on the commandline, load that file as the
-# firmware flashing routine instead.
-#
-
-import sys
-import os
-import os.path
-import urllib2
-import sha
-
-FLASH_DIR = 'flash_write'
-FLASH_BIN = 'flash.bin'
-FLASH_PATH = os.path.join(FLASH_DIR, FLASH_BIN)
-
-DOWNLOAD_FLASH_CHECKSUM = '589501072d76be483f873a787080adcab20841f4'
-DOWNLOAD_FLASH_URL = 'http://libnxt.googlecode.com/files/flash.bin'
-
-def check_flash_size():
- statinfo = os.stat(FLASH_PATH)
- if statinfo.st_size > 1024:
- print "The flash driver looks too big, refusing to embed."
- return False
- return True
-
-def ensure_flash_bin():
- # If the flash binary does exist, just check its size and return.
- if os.path.isfile(FLASH_PATH):
- return check_flash_size()
-
- # If the binary doesn't exist, offer to download a binary build
- # from Google Code.
- print """
-Embedded flash driver not found. This is required to build LibNXT.
-
-If you have an ARM7 cross-compiler toolchain available, you can build
-the flash driver by interrupting (ctrl-C) this build and running
-'make' in the 'flash_write' subdirectory. Then rerun this build again,
-and everything should work great.
-
-If you do not have a cross-compiler, do not despair! I can also
-download a copy of the compiled driver (built by the libnxt developer)
-from the project website and use that.
-"""
- reply = raw_input("Is that okay? (y/n) ")
- if reply not in ('y', 'Y', 'yes'):
- print ("Okay, you're the boss. But that does mean I can't build "
- "LibNXT. Sorry.")
- return False
- f = urllib2.urlopen(DOWNLOAD_FLASH_URL)
- data = f.read()
- f.close()
-
- # Verify the SHA-1 checksum
- checksum = sha.new(data).hexdigest()
- if checksum != DOWNLOAD_FLASH_CHECKSUM:
- print "Oops, the flash binary I downloaded has the wrong checksum!"
- print "Aborting :("
- return False
-
- f = open(FLASH_PATH, 'w')
- f.write(data)
- f.close()
-
- if os.path.isfile(FLASH_PATH):
- return check_flash_size()
-
- # Dude, you're really not lucky, are you.
- return False
-
-
-def main():
- if not ensure_flash_bin():
- sys.exit(1)
-
- f = file(FLASH_PATH)
- fwbin = f.read()
- f.close()
-
- data = ['0x%s' % c.encode('hex') for c in fwbin]
-
- for i in range(0, len(data), 12):
- data[i] = "\n " + data[i]
-
- data_str = ', '.join(data)
- len_data = "%d" % len(data)
-
- # Read in the template
- tplfile = file('flash_routine.h.base')
- template = tplfile.read()
- tplfile.close()
-
- # Replace the values in the template
- template = template.replace('___FLASH_BIN___', data_str + '\n')
- template = template.replace('___FLASH_LEN___', len_data)
-
- # Output the done header
- out = file('flash_routine.h', 'w')
- out.write(template)
- out.close()
-
-if __name__ == '__main__':
- main()
-