OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / tools / misc / firebee.gdb
1 #
2 # GDB Init script for the ColdFire (5475) FireBee board.
3 #
4
5 #
6 #  Setup RAMBAR for the internal SRAM.
7 #
8
9 define setup-sram
10 set $rambar  = 0x20000001
11 end
12
13
14 #
15 #       Some FLASH programming code...
16 #
17
18 define flash-erase
19 printf "ERASE: addr=%x", (0x00000000 + $arg0)
20 set *((unsigned char *) (0x00000aaa + $arg0)) = 0xaa
21 set *((unsigned char *) (0x00000555 + $arg0)) = 0x55
22 set *((unsigned char *) (0x00000aaa + $arg0)) = 0x80
23 set *((unsigned char *) (0x00000aaa + $arg0)) = 0xaa
24 set *((unsigned char *) (0x00000555 + $arg0)) = 0x55
25 set *((unsigned char *) (0x00000000 + $arg0)) = 0x30
26 shell sleep 1
27 printf "\n"
28 end
29
30 define flash-erase-256k
31 set $num = 0x0
32 while ($num < 0x10000)
33         flash-erase $num
34         set $num = $num + 0x02000
35 end
36
37 flash-erase 0x10000
38 flash-erase 0x20000
39 flash-erase 0x30000
40 end
41
42 define flash-erase-all
43 set $num = 0x0
44 while ($num < 0x10000)
45         flash-erase $num
46         set $num = $num + 0x02000
47 end
48 while ($num < 0x800000)
49         flash-erase $num
50         set $num = $num + 0x10000
51 end
52 end
53
54 define flash-program-word
55 set *((unsigned char *) 0x00000aaa) = 0xaa
56 set *((unsigned char *) 0x00000555) = 0x55
57 set *((unsigned char *) 0x00000aaa) = 0xa0
58 set *((unsigned short *) $arg0) = $arg1
59 set $delay = 0
60 while ($delay < 10)
61         set $val = *((char *) $delay)
62         set $delay = $delay + 1
63 end
64 end
65
66 define flash-program
67 set $num = $arg0
68 set $dst = 0xffe00000
69 set $src = 0x00000000
70 while ($num > 0)
71         set $word = *((unsigned short *) $src)
72         flash-program-word $dst $word
73         set $src = $src + 2
74         set $dst = $dst + 2
75         set $num = $num - 2
76 end
77 end
78
79
80 define flash-compare
81 set $num = $arg0
82 set $dst = 0xffe00000
83 set $src = 0x00000000
84 while ($num > 0)
85         set $v1 = *((unsigned short *) $src)
86         set $v2 = *((unsigned short *) $dst)
87         if ($v1 != $v2)
88                 printf "diff at  SRC: %x[%x]  DST: %x[%x]\n", $src, $v1, $dst, $v2
89         end
90         set $src = $src + 2
91         set $dst = $dst + 2
92         set $num = $num - 2
93 end
94 end
95
96
97 #
98 #       Target is ColdFire based Firebee board...
99 #
100 target remote | m68k-bdm-gdbserver pipe /dev/bdmcf0
101
102 set print pretty
103 set print asm-demangle
104 display/i $pc
105 select-frame 0
106