-
Notifications
You must be signed in to change notification settings - Fork 4
/
Spec.txt
90 lines (60 loc) · 2.05 KB
/
Spec.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
LPCGDB
Introduction
This project was created as a means to enable fast, cheap and robust debugging of
embedded targets such as ARM, BlackFin and others.
By using a LPC214x chip alot of necessary functionality is already there, such as
USB, UART and a bunch of I/O pins.
The idea is that someone should be able to just buy 2 LPC prototype boards and use
one of them to debug the other via USB and gdb. (Also using MXDB)
Features
JTAG
ARM7 (r4 atleast)
ARM920T
BF533
FLASH Programming:
LPC21x using ISP/IAP?
GDB remote protocol.
Extended remote protocol. (A binary protocol for faster data rates, used by MXDB)
LPC2138 board pins:
J3:
19: RTCK
20: TDO
21: TDI
22: TCK
23: TMS
24: TRST
27: GND
10pin 20pin
1 VCC 1 VCC
2 nTRST 3 nTRST
3 TDI 5 TDI
4 TMS 7 TMS
5 TCK 9 TCK
6 TDO 13 TDO
7 nRST 15 nRST
8 GND Even pins GND
9 GND Even pins GND
10 GND Even pins GND
Example how to load and run something on the gp2x:
(gdb) file <myelf.elf>
(gdb) set debug remote 1
(gdb) target remote /dev/ttyACM0
CTRL-C
(gdb) monitor mmuoff
(gdb) monitor ll@0x100
(gdb) load
(gdb) c
Exmplanation of the "monitor" command.
It sends a command to the GDB stub as a string.
Commands implemented are: "ll", "mmuoff", "mmuon", "id", "targets", "flash", "lpcfreq"
"ll" Loads a small binary into the target RAM at the specified address, and then starts the core at that address.
The small program can read/write target memory communicate through a special debug register that can be read/written from JTAG while the processor is running.
Makes reading/writing memory alot faster.
It's important that the mmu is either off, or that you really know what you're doing regarding virtual addresses and cache.
Also that you don't overwrite the "ll" program with your binary.
"mmuoff" makes sure the MMU is turned off.
"mmuon" Does nothing useful atm.
"id" returns the idcode to GDB
"targets" returns the supported targets.
"flash" instantiates a flash driver, only lpc supported atm.
"lpcfreq" is used by the lpc flash driver internally, it's the lpc's crystal frequency in kHz (iirc)