nicer led output
[pyfrprog.git] / frprog.py
index f87dbc01c6f90ecb161faf6d132b76e628aed585..8693ad0365b5a688a5dea5ffcf4f33948d1b2c2e 100755 (executable)
--- a/frprog.py
+++ b/frprog.py
@@ -235,11 +235,17 @@ def main(argv=None):
 
        print "OK, trying to set baudrate..."
        # set baudrate
-       bootromBAUDRATE(BOOTLOADER_BAUDRATE)
+       try:
+               bootromBAUDRATE(BOOTLOADER_BAUDRATE)
+       except SerialPortException:
+               print "timeout exception: try again ->"
+               bootromBAUDRATE(BOOTLOADER_BAUDRATE)
        time.sleep(0.1) # just to get sure that the bootloader is really running in new baudrate mode!
        del tty
        tty = SerialPort(DEVICE, 100, BOOTLOADER_BAUDRATE)
 
+       SPLIT = 30
+       s = SPLIT
        print "Transfering pkernel program to IRAM",
        # let the fun begin!
        for seq in bootloaderseqs:
@@ -250,8 +256,12 @@ def main(argv=None):
                #print "RAMing", len(seq.data), "bytes at address", hex(addr)
                bootromWRITE(addr, len(seq.data), seq.data)
                tty.flush()
-               sys.stdout.write(".")
-               sys.stdout.flush()
+
+               s = s - 1
+               if s == 0:
+                       sys.stdout.write(".")
+                       sys.stdout.flush()
+                       s = SPLIT
        print
 
        # execute our pkernel finally and set pkernel conform baudrate
@@ -263,6 +273,7 @@ def main(argv=None):
        print "Performing ChipErase..."
        pkernCHIPERASE()
 
+       s = SPLIT
        print "Flashing",
        for seq in pkernelseqs:
                # skip seqs only consisting of 0xffs
@@ -272,8 +283,12 @@ def main(argv=None):
                #print "Flashing", len(seq.data), "bytes at address", hex(seq.address)
                pkernWRITE(seq.address, len(seq.data), seq.data)
                tty.flush()
-               sys.stdout.write(".")
-               sys.stdout.flush()
+
+               s = s - 1
+               if s == 0:
+                       sys.stdout.write(".")
+                       sys.stdout.flush()
+                       s = SPLIT
        print
 
        duration = time.time() - starttime