/
README
48 lines (31 loc) · 1.66 KB
/
README
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
LEDblink.
===========================================================================
This is a minimal standalone program to blink the LED's on the BeagleBoard.
This program is loaded above UBoot in RAM at address 0x82000000.
Linker script and startup code are absolutly minimal, only SVC stack is setup.
make LEDblink for ARM version
make LEDblinkT for Thumb version
===========================================================================
Telnet OpenOCD session
load_image LEDblink
resume 0x8200000
============================================================================
GDB
From a cold start:
Run openocd in one terminal window.
Run arm-nene-eabi-gdb i another terminal window
The supplied .gdbinit initializes opmap3 debugging, loads the program into RAM
and starts it.
Use gdb commands as usual.
==============================================================================
Things to fix:
One major problem (090904) is that OpenOCD does not control invalidation
of the I-cache when uploading updated program code to RAM. So the processor does not
execute the same code fron I-Cache as the debugger can read from memory thrugh the AHB-MEMAP.
If we are executing in UBoot, halt the processor, upload and runs a program then
everything works because ththe code region is not cached. If we change our code, rebuilds
and uploads without somehow clearing the caches, the the MPU will run the old code but gdb will
see the new code. And confusion starts.
When something goes wring, we and up in Abort Mode, pushing reset button disables JTAG and we
must call omap3_dbginit throug the telnet interface or from gdb with monitor omap3_dbginit.
Not userfriendly at the moment.