Update by reGNUal works now
[gnuk/gnuk.git] / tool / dump_mem.py
1 #! /usr/bin/python
2
3 """
4 dump_mem.py - dump memory with DfuSe for STM32 Processor.
5
6 Copyright (C) 2010 Free Software Initiative of Japan
7 Author: NIIBE Yutaka <gniibe@fsij.org>
8
9 This file is a part of Gnuk, a GnuPG USB Token implementation.
10
11 Gnuk is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation, either version 3 of the License, or
14 (at your option) any later version.
15
16 Gnuk is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
19 License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program.  If not, see <http://www.gnu.org/licenses/>.
23 """
24
25 import sys
26 from dfuse import *
27
28 dev, config, intf = get_device()
29 dfu = DFU_STM32(dev, config, intf)
30 print dfu.ll_get_string(intf.iInterface)
31 s = dfu.ll_get_status()
32 dfu.ll_clear_status()
33 s = dfu.ll_get_status()
34 print s
35 dfu.dfuse_set_address_pointer(int(sys.argv[1], 16))
36 s = dfu.ll_get_status()
37 dfu.ll_clear_status()
38 s = dfu.ll_get_status()
39 dfu.ll_clear_status()
40 s = dfu.ll_get_status()
41 print s
42 block = dfu.dfuse_read_memory()
43 count = 0
44 for d in block:
45     print "%02x" % d,
46     if count & 0x0f == 0x0f:
47         print
48     count += 1
49 dfu.ll_clear_status()
50 s = dfu.ll_get_status()