summaryrefslogtreecommitdiff
path: root/tools/trace32/attach_imx7d_m4.cmm
blob: a044c86896209544818b5a30c697ec5f9b6422de (plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
; Script to attach to a running system, halt the CPU,
; and display the ASM code
;

screen.on

; Debugger Reset

winpage.reset
area.reset
WINPOS 0. 26. 75. 8. 0. 0. W000
area

print "resetting ICD..."

System.Down
Break.Delete
MAP.RESet
TASK.RESet
sYmbol.RESet
Data.PROLOG.RESet
Data.EPILOG.RESet
sYmbol.AutoLoad.CHECK OFF      ; disable dynamic autoloader
sYmbol.AutoLoad.RESet          ; reset autoloader list
MMU.RESet

; setup of ICD JTAG

print "initializing JTAG..."
SYStem.CPU CORTEXA7MPCORE
SYStem.CONFIG.CHIPIRPOST 0x0
SYStem.CONFIG.CHIPIRPRE 0x0
SYStem.CONFIG.CHIPDRPOST 0x0
SYStem.CONFIG.CHIPDRPRE 0x0
SYStem.CONFIG.DAPIRPOST 0x0
SYStem.CONFIG.DAPIRPRE 0x0
SYStem.CONFIG.DAPDRPOST 0x0
SYStem.CONFIG.DAPDRPRE 0x0

;diag 3411

SYStem.CONFIG.MEMORYACCESSPORT 0
SYStem.CONFIG.DEBUGACCESSPORT 1
system.CONFIG.COREDEBUG.BASE DAP:0xb0070000
SYStem.Option DACR ON          ; give Debugger global write permissions
TrOnchip.Set DABORT OFF        ; used by Linux OS for page miss!
TrOnchip.Set PABORT OFF        ; used by Linux OS for page miss!
TrOnchip.Set UNDEF OFF         ; let UNDEF be handled by Linux OS
SYStem.Option MMU OFF          ; no space ids used (yet)
SYStem.JtagClock 1.0MHz
SETUP.IMASKASM ON              ; lock interrupts while single stepping

; Use on-chip breakpoints
Break.SELect PROGRAM ONCHIP
Break.SELect READ ONCHIP
Break.SELect WRITE ONCHIP
Break.SELect ALPHA ONCHIP
Break.SELect BETA ONCHIP
Break.SELect CHARLY ONCHIP
Break.SELect DELTA ONCHIP
Break.SELect ECHO ONCHIP

SYStem.Option EnReset OFF			;do not allow the jtag to reset the target
SYS.m attach
; wait until reset is complete
wait 1.s
if run()
    Break
 
; Open a Code Window -- we like to see something

WINPOS 0. 0. 75. 20.
Data.List

; wait until reset is complete
wait 1.s
if run()
    Break

; enable ocram epdc
per.set.field ZSD:0x30340004 %LE %LONG 0x40000000 1

; Make sure M4 is hung up
per.set.field ZSD:0x3039000c %LE %LONG 0x00000001 1
 
; Open M4 clocks

; Prepare M4 entry
; Stack at TCMU
D.S ZSD:0x00180000 %LE %LONG 0x20008000
; Code at BootRom
D.S ZSD:0x00180004 %LE %LONG 0x00000009
; Loop code 
D.S ZSD:0x00180008 %LE %LONG 0xe7fee7fe

; Enable M4
per.set.field ZSD:0x3039000c %LE %LONG 0x00000008 1
per.set.field ZSD:0x3039000c %LE %LONG 0x00000001 0

print "initializing M4 JTAG..."
SYStem.CPU CortexM4F

SYStem.CONFIG.MEMORYACCESSPORT 4
SYStem.CONFIG.DEBUGACCESSPORT 4
system.CONFIG.COREDEBUG.BASE DAP:0xE0000000

SYStem.Option EnReset OFF			;do not allow the jtag to reset the target
SYStem.m attach
; wait until reset is complete
wait 1.s

if run()
    Break

data.load.elf "E:\FSL_FreeRTOS_BSP_1.0.0_iMX7D\examples\imx7d_val_m4\demo_apps\hello_world\armgcc\debug\hello_world.elf" /verify

enddo