mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-31 03:57:45 +08:00
[dfu] Improved progress bar during programming
This commit is contained in:
@@ -76,6 +76,21 @@ def print_copyright():
|
|||||||
print("License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>")
|
print("License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>")
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
|
def init_progress_bar():
|
||||||
|
max_symbols = 50
|
||||||
|
print("[0%" + "="*int(max_symbols/2 - 4) + "50%" + "="*int(max_symbols/2 - 4) + "100%]")
|
||||||
|
print(" ", end="")
|
||||||
|
update_progress_bar.count = 0
|
||||||
|
update_progress_bar.symbol_limit = max_symbols
|
||||||
|
|
||||||
|
def update_progress_bar(completed, total):
|
||||||
|
if completed and total:
|
||||||
|
percent = 100 * (float(completed)/float(total))
|
||||||
|
if (percent >= (update_progress_bar.count + (100.0 / update_progress_bar.symbol_limit))):
|
||||||
|
update_progress_bar.count += (100.0 / update_progress_bar.symbol_limit)
|
||||||
|
print("#", end="")
|
||||||
|
stdout.flush()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
usage = "Usage: %prog [options] firmware.bin" + "\n" + "Run %prog --help to list the options."
|
usage = "Usage: %prog [options] firmware.bin" + "\n" + "Run %prog --help to list the options."
|
||||||
parser = OptionParser(usage, version='%prog version 1.3')
|
parser = OptionParser(usage, version='%prog version 1.3')
|
||||||
@@ -193,20 +208,26 @@ if __name__ == "__main__":
|
|||||||
print("Could not open binary file.")
|
print("Could not open binary file.")
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
# Get the file length for progress bar
|
||||||
|
bin_length = len(bin)
|
||||||
|
|
||||||
#addr = APP_ADDRESS
|
#addr = APP_ADDRESS
|
||||||
addr = options.addr
|
addr = options.addr
|
||||||
print ("Programming memory from 0x%08X...\r" % addr)
|
print ("Programming memory from 0x%08X...\r" % addr)
|
||||||
|
|
||||||
|
init_progress_bar()
|
||||||
|
|
||||||
while bin:
|
while bin:
|
||||||
# print("Programming memory at 0x%08X\r" % addr),
|
update_progress_bar((addr - options.addr),bin_length)
|
||||||
print('#', end="")
|
|
||||||
stdout.flush()
|
|
||||||
stm32_erase(target, addr)
|
stm32_erase(target, addr)
|
||||||
stm32_write(target, bin[:SECTOR_SIZE])
|
stm32_write(target, bin[:SECTOR_SIZE])
|
||||||
|
|
||||||
bin = bin[SECTOR_SIZE:]
|
bin = bin[SECTOR_SIZE:]
|
||||||
addr += SECTOR_SIZE
|
addr += SECTOR_SIZE
|
||||||
|
|
||||||
|
# Need to check all the way to 100% complete
|
||||||
|
update_progress_bar((addr - options.addr),bin_length)
|
||||||
|
|
||||||
stm32_manifest(target)
|
stm32_manifest(target)
|
||||||
|
|
||||||
print("\nAll operations complete!\n")
|
print("\nAll operations complete!\n")
|
||||||
|
|||||||
Reference in New Issue
Block a user