sendByte()-sleep is only needed in bootloader-mode
[pyfrprog.git] / frprog.py
index a92b0fb9f2a5af2a776485151c5bebb997ee806e..4959ea201a145074df46bf20f67b0c6de35d3e62 100755 (executable)
--- a/frprog.py
+++ b/frprog.py
@@ -13,9 +13,12 @@ KERNEL_BAUDRATE=115200
 
 # contains the last received checksum from a READ, WRITE or CHECKSUM command
 last_checksum = 0
+# is set to True if we are already communicating with the pkernel
+pkernelmode = False
 
 def sendByte(byte):
-       time.sleep(0.001) # just to get sure, wait 1ms
+       if pkernelmode == False:
+               time.sleep(0.001) # just to get sure, wait 1ms
        tty.write(chr(byte))
 
 def sendWord(word):
@@ -234,6 +237,7 @@ print
 cmdCALL(0x30000)
 time.sleep(0.5) # just to get sure that the pkernel is really running!
 del tty
+pkernelmode = True
 tty = SerialPort(DEVICE, None, KERNEL_BAUDRATE)
 
 print "Performing ChipErase..."
@@ -256,107 +260,3 @@ print "Flashing done."
 
 sendByte(0x97) # exit and restart
 print "Program was started. Have fun!"
-
-# some tests here.......
-"""
-# execute (existing) program in ram
-cmdCALL(0x00033ffc)
-sys.exit(0)
-"""
-
-# read something from the IRAM
-#print cmdREAD(0x00030000, 32)
-
-#data = []
-#for i in range(0, 32):
-#      data.append(i)
-#cmdWRITE(0x00030000, 32, data)
-
-
-"""
-# write something to the begin of the IRAM
-data_wr = []
-checksum = 0
-for i in range(0, 0x400):
-       value = i%256
-       data_wr.append(value)
-       checksum = (checksum + value) % (2**16)
-
-print "Calculated checksum:", checksum
-print "Writing", data_wr, "to the IRAM..."
-cmdWRITE(0x00030000, len(data_wr), data_wr)
-print "Received Checksum:", last_checksum
-print
-
-print "Reading from the IRAM again..."
-data_re = cmdREAD(0x00030000, len(data_wr))
-print "Received data:", data_re, "Checksum:", last_checksum
-"""
-
-"""
-# see whats in the iram at the moment
-data_wr = []
-print "Reading from the IRAM..."
-data_re = cmdREAD(0x00030000, 0x10000-4)
-print "Received data:", data_re, "Checksum:", last_checksum
-"""
-
-"""
-# see whats in the dram at the moment
-data_wr = []
-print "Reading from the DRAM..."
-data_re = cmdREAD(0x0002C000, 0x10000-0xC000-4)
-print "Received data:", data_re, "Checksum:", last_checksum
-"""
-
-"""
-# blank the iram
-data_wr = []
-for i in range(0, 0x10000-4):
-       value = 0
-       data_wr.append(value)
-
-print "Writing", data_wr, "to the IRAM..."
-cmdWRITE(0x00030000, len(data_wr), data_wr)
-print "Received Checksum:", last_checksum
-print
-"""
-
-"""
-# blank the dram
-data_wr = []
-for i in range(0, 0x10000-0xC000-4):
-       value = 0
-       data_wr.append(value)
-
-print "Writing", data_wr, "to the DRAM..."
-cmdWRITE(0x0002C000, len(data_wr), data_wr)
-print "Received Checksum:", last_checksum
-print
-"""
-
-"""
-# write some data in the iram and try to execute it
-data_wr =[
-               0x9B,0x00,
-               0x0D,0x4e,
-               0xcf,0xf1,
-               0x16,0x01,
-               0x9b,0x05,
-               0x04,0xc7,
-               0xc1,0x06,
-               0x16,0x56,
-               0xe0,0xfb, #branch
-               0x9f,0xa0,0x9f,0xa0,0x9f,0xa0, #nop
-               0x9f,0xa0,0x9f,0xa0,0x9f,0xa0,
-               0x9f,0xa0,0x9f,0xa0,0x9f,0xa0,
-               0x9f,0xa0,0x9f,0xa0,0x9f,0xa0,
-               0x9f,0xa0,0x9f,0xa0,0x9f,0xa0,
-               0x9f,0xa0,0x9f,0xa0,0x9f,0xa0,
-               0x9f,0xa0,0x9f,0xa0,0x9f,0xa0]
-print "Writing", data_wr, "to the IRAM..."
-cmdWRITE(0x00030000, len(data_wr), data_wr)
-print "Received Checksum:", last_checksum
-print
-cmdCALL(0x00030000)
-"""