mmu_man

dump from CMS 50F 3.7 v0.2

Aug 17th, 2014
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # Contec CMS 50F firmware 3.7 dumper
  4. # (C) 2014, François Revol <revol@free.fr>
  5.  
  6. #cf. http://elinux.org/Serial_port_programming
  7.  
  8. import serial
  9. import sys
  10. import time
  11.  
  12.  
  13. def send_cmd(p, c):
  14. print "> %s" % c
  15. c = c.replace(' ', '')
  16. c = c.decode("hex")
  17. #print c.encode("hex")
  18. p.write(c)
  19. #p.flush()
  20.  
  21. def recv_data(p, l=None):
  22. data = ''
  23. while l is None or len(data) < l:
  24. time.sleep(0.5)
  25. if p.inWaiting() < 1:
  26. print "No more data..."
  27. # XXX: do something?
  28. if l is None:
  29. break
  30. want = max(p.inWaiting(), 1)
  31. if l is not None:
  32. want = min(want, l - len(data))
  33. # just for nicer hex dump, wrap at 8 bytes
  34. want = min(want, 8)
  35. #print len
  36. d = p.read(want)
  37. hx = d.encode("hex")
  38. print "< %s" % " ".join(hx[i:i+2] for i in range(0, len(hx), 2))
  39. data += d
  40. print
  41. return data
  42.  
  43. if len(sys.argv) < 2:
  44. print "Usage: %s serialdev" % sys.argv[0]
  45. exit(1)
  46.  
  47. #, parity=serial.PARITY_ODD
  48. with serial.Serial(port=sys.argv[1], baudrate=115200) as p:
  49. send_cmd(p, '7d 81 a7 80 80 80 80 80 80')
  50. recv_data(p, 2)
  51. send_cmd(p, '7d 81 a2 80 80 80 80 80 80')
  52. recv_data(p, 2)
  53. send_cmd(p, '7d 81 a0 80 80 80 80 80 80')
  54. recv_data(p, 4)
  55.  
  56. send_cmd(p, '7d 81 b0 80 80 80 80 80 80')
  57. recv_data(p)
  58.  
  59. send_cmd(p, '7d 81 ac 80 80 80 80 80 80')
  60. recv_data(p)
  61.  
  62. send_cmd(p, '7d 81 b3 80 80 80 80 80 80')
  63. recv_data(p)
  64.  
  65. send_cmd(p, '7d 81 ad 80 80 80 80 80 80')
  66. recv_data(p)
  67.  
  68. send_cmd(p, '7d 81 a3 80 80 80 80 80 80')
  69. recv_data(p)
  70.  
  71. send_cmd(p, '7d 81 ab 80 80 80 80 80 80')
  72. recv_data(p)
  73.  
  74. send_cmd(p, '7d 81 a4 80 80 80 80 80 80')
  75. recv_data(p)
  76.  
  77. send_cmd(p, '7d 81 a5 80 80 80 80 80 80')
  78. recv_data(p)
  79.  
  80. send_cmd(p, '7d 81 af 80 80 80 80 80 80')
  81. recv_data(p)
  82.  
  83. send_cmd(p, '7d 81 a7 80 80 80 80 80 80')
  84. recv_data(p)
  85.  
  86. send_cmd(p, '7d 81 a2 80 80 80 80 80 80')
  87. recv_data(p)
  88.  
  89.  
  90. send_cmd(p, '7d 81 a6 80 80 80 80 80 80')
  91. recv_data(p)
Add Comment
Please, Sign In to add comment