Example #1
0

# Get BLE info page
print "\nFlashing:"

# Check for PStore
pssize = dbg.getBLEPStoreSize()
if pssize > 0:
	print " - Backing-up PS Store (%i Bytes)..." % pssize
	pstoreData = dbg.readCODE( 0x18000, pssize )
	hexFile.set( 0x18000, pstoreData )

# Send chip erase
print " - Chip erase..."
try:
	dbg.chipErase()
except Exception as e:
 	print "ERROR: %s" % str(e)
 	sys.exit(3)

# Flash memory
dbg.pauseDMA(False)
print " - Flashing %i memory blocks..." % len(hexFile.memBlocks)
for mb in hexFile.memBlocks:

	# Flash memory block
	print " -> 0x%04x : %i bytes " % (mb.addr, mb.size),
	try:
		dbg.writeCODE( mb.addr, mb.bytes, verify=True, showProgress=True )
	except Exception as e:
		print "ERROR: %s" % str(e)
Example #2
0
print "> flash usage: %3.1f%% (%d bytes of %d)" % (
    (maxMem * 100.0 / dbg.flashSize), maxMem, dbg.flashSize)

# Check for oversize data
if maxMem > (dbg.flashSize):
    print "ERROR: Data too bit to fit in chip's memory!"
    sys.exit(4)

try:
    print "> enter debug:"
    dbg.enter()

    if (full_erase):
        print "> %3d%%: erasing chip..." % (100 * (1.0 / 17)),
        dbg.chipErase()
        time.sleep(1)
        print "done"

    maxPages = dbg.flashSize / dbg.flashPageSize
    emptyPage = bytearray([0xFF] * dbg.flashPageSize)

    for p in range(maxPages):
        print "> flashing page: %d" % p
        pageAddress = p * dbg.flashPageSize

        #data to write
        pageData = flash_data[pageAddress:(p + 1) * dbg.flashPageSize]

        #check if page to write is empty:
        if (emptyPage == pageData):