xref: /btstack/port/stm32-f4discovery-cc256x/ozone.jdebug (revision 225f4ba4fe806afeda1ee8519bb5f4a8ce540af2)
1*225f4ba4SMatthias Ringwald
2*225f4ba4SMatthias Ringwald/*********************************************************************
3*225f4ba4SMatthias Ringwald*
4*225f4ba4SMatthias Ringwald*       OnProjectLoad
5*225f4ba4SMatthias Ringwald*
6*225f4ba4SMatthias Ringwald* Function description
7*225f4ba4SMatthias Ringwald*   Project load routine. Required.
8*225f4ba4SMatthias Ringwald*
9*225f4ba4SMatthias Ringwald**********************************************************************
10*225f4ba4SMatthias Ringwald*/
11*225f4ba4SMatthias Ringwaldvoid OnProjectLoad (void) {
12*225f4ba4SMatthias Ringwald  //
13*225f4ba4SMatthias Ringwald  // Dialog-generated settings
14*225f4ba4SMatthias Ringwald  //
15*225f4ba4SMatthias Ringwald  Project.SetDevice ("STM32F407VG");
16*225f4ba4SMatthias Ringwald  Project.SetHostIF ("USB", "");
17*225f4ba4SMatthias Ringwald  Project.SetTargetIF ("SWD");
18*225f4ba4SMatthias Ringwald  Project.SetTIFSpeed ("50 MHz");
19*225f4ba4SMatthias Ringwald  Project.AddSvdFile ("$(InstallDir)/Config/CPU/Cortex-M4F.svd");
20*225f4ba4SMatthias Ringwald  Project.AddPathSubstitute ("/Projects/btstack/port/stm32-f4discovery-cc256x/cubemx-f4discovery-cc256x", "$(ProjectDir)");
21*225f4ba4SMatthias Ringwald  Project.AddPathSubstitute ("/projects/btstack/port/stm32-f4discovery-cc256x/cubemx-f4discovery-cc256x", "$(ProjectDir)");
22*225f4ba4SMatthias Ringwald  //
23*225f4ba4SMatthias Ringwald  // User settings
24*225f4ba4SMatthias Ringwald  //
25*225f4ba4SMatthias Ringwald  File.Open ("$(ProjectDir)/EXAMPLE.elf");
26*225f4ba4SMatthias Ringwald}
27*225f4ba4SMatthias Ringwald
28*225f4ba4SMatthias Ringwald/*********************************************************************
29*225f4ba4SMatthias Ringwald*
30*225f4ba4SMatthias Ringwald*      TargetReset
31*225f4ba4SMatthias Ringwald*
32*225f4ba4SMatthias Ringwald* Function description
33*225f4ba4SMatthias Ringwald*   Replaces the default target device reset routine. Optional.
34*225f4ba4SMatthias Ringwald*
35*225f4ba4SMatthias Ringwald* Notes
36*225f4ba4SMatthias Ringwald*   This example demonstrates the usage when
37*225f4ba4SMatthias Ringwald*   debugging a RAM program on a Cortex-M target device
38*225f4ba4SMatthias Ringwald*
39*225f4ba4SMatthias Ringwald**********************************************************************
40*225f4ba4SMatthias Ringwald*/
41*225f4ba4SMatthias Ringwald//void TargetReset (void) {
42*225f4ba4SMatthias Ringwald//
43*225f4ba4SMatthias Ringwald//  unsigned int SP;
44*225f4ba4SMatthias Ringwald//  unsigned int PC;
45*225f4ba4SMatthias Ringwald//  unsigned int VectorTableAddr;
46*225f4ba4SMatthias Ringwald//
47*225f4ba4SMatthias Ringwald//  Exec.Reset();
48*225f4ba4SMatthias Ringwald//
49*225f4ba4SMatthias Ringwald//  VectorTableAddr = Elf.GetBaseAddr();
50*225f4ba4SMatthias Ringwald//
51*225f4ba4SMatthias Ringwald//  if (VectorTableAddr != 0xFFFFFFFF) {
52*225f4ba4SMatthias Ringwald//
53*225f4ba4SMatthias Ringwald//    Util.Log("Resetting Program.");
54*225f4ba4SMatthias Ringwald//
55*225f4ba4SMatthias Ringwald//    SP = Target.ReadU32(VectorTableAddr);
56*225f4ba4SMatthias Ringwald//    Target.SetReg("SP", SP);
57*225f4ba4SMatthias Ringwald//
58*225f4ba4SMatthias Ringwald//    PC = Target.ReadU32(VectorTableAddr + 4);
59*225f4ba4SMatthias Ringwald//    Target.SetReg("PC", PC);
60*225f4ba4SMatthias Ringwald//  }
61*225f4ba4SMatthias Ringwald//}
62*225f4ba4SMatthias Ringwald
63*225f4ba4SMatthias Ringwald/*********************************************************************
64*225f4ba4SMatthias Ringwald*
65*225f4ba4SMatthias Ringwald*       BeforeTargetReset
66*225f4ba4SMatthias Ringwald*
67*225f4ba4SMatthias Ringwald* Function description
68*225f4ba4SMatthias Ringwald*   Event handler routine. Optional.
69*225f4ba4SMatthias Ringwald*
70*225f4ba4SMatthias Ringwald**********************************************************************
71*225f4ba4SMatthias Ringwald*/
72*225f4ba4SMatthias Ringwald//void BeforeTargetReset (void) {
73*225f4ba4SMatthias Ringwald//}
74*225f4ba4SMatthias Ringwald
75*225f4ba4SMatthias Ringwald/*********************************************************************
76*225f4ba4SMatthias Ringwald*
77*225f4ba4SMatthias Ringwald*       AfterTargetReset
78*225f4ba4SMatthias Ringwald*
79*225f4ba4SMatthias Ringwald* Function description
80*225f4ba4SMatthias Ringwald*   Event handler routine.
81*225f4ba4SMatthias Ringwald*    - Sets the PC register to program reset value.
82*225f4ba4SMatthias Ringwald*    - Sets the SP register to program reset value on Cortex-M.
83*225f4ba4SMatthias Ringwald*
84*225f4ba4SMatthias Ringwald**********************************************************************
85*225f4ba4SMatthias Ringwald*/
86*225f4ba4SMatthias Ringwaldvoid AfterTargetReset (void) {
87*225f4ba4SMatthias Ringwald  unsigned int SP;
88*225f4ba4SMatthias Ringwald  unsigned int PC;
89*225f4ba4SMatthias Ringwald  unsigned int VectorTableAddr;
90*225f4ba4SMatthias Ringwald
91*225f4ba4SMatthias Ringwald  VectorTableAddr = Elf.GetBaseAddr();
92*225f4ba4SMatthias Ringwald
93*225f4ba4SMatthias Ringwald  if (VectorTableAddr == 0xFFFFFFFF) {
94*225f4ba4SMatthias Ringwald    Util.Log("Project file error: failed to get program base");
95*225f4ba4SMatthias Ringwald  } else {
96*225f4ba4SMatthias Ringwald    SP = Target.ReadU32(VectorTableAddr);
97*225f4ba4SMatthias Ringwald    Target.SetReg("SP", SP);
98*225f4ba4SMatthias Ringwald
99*225f4ba4SMatthias Ringwald    PC = Target.ReadU32(VectorTableAddr + 4);
100*225f4ba4SMatthias Ringwald    Target.SetReg("PC", PC);
101*225f4ba4SMatthias Ringwald  }
102*225f4ba4SMatthias Ringwald}
103*225f4ba4SMatthias Ringwald
104*225f4ba4SMatthias Ringwald/*********************************************************************
105*225f4ba4SMatthias Ringwald*
106*225f4ba4SMatthias Ringwald*       DebugStart
107*225f4ba4SMatthias Ringwald*
108*225f4ba4SMatthias Ringwald* Function description
109*225f4ba4SMatthias Ringwald*   Replaces the default debug session startup routine. Optional.
110*225f4ba4SMatthias Ringwald*
111*225f4ba4SMatthias Ringwald**********************************************************************
112*225f4ba4SMatthias Ringwald*/
113*225f4ba4SMatthias Ringwald//void DebugStart (void) {
114*225f4ba4SMatthias Ringwald//}
115*225f4ba4SMatthias Ringwald
116*225f4ba4SMatthias Ringwald/*********************************************************************
117*225f4ba4SMatthias Ringwald*
118*225f4ba4SMatthias Ringwald*       TargetConnect
119*225f4ba4SMatthias Ringwald*
120*225f4ba4SMatthias Ringwald* Function description
121*225f4ba4SMatthias Ringwald*   Replaces the default target IF connection routine. Optional.
122*225f4ba4SMatthias Ringwald*
123*225f4ba4SMatthias Ringwald**********************************************************************
124*225f4ba4SMatthias Ringwald*/
125*225f4ba4SMatthias Ringwald//void TargetConnect (void) {
126*225f4ba4SMatthias Ringwald//}
127*225f4ba4SMatthias Ringwald
128*225f4ba4SMatthias Ringwald/*********************************************************************
129*225f4ba4SMatthias Ringwald*
130*225f4ba4SMatthias Ringwald*       BeforeTargetConnect
131*225f4ba4SMatthias Ringwald*
132*225f4ba4SMatthias Ringwald* Function description
133*225f4ba4SMatthias Ringwald*   Event handler routine. Optional.
134*225f4ba4SMatthias Ringwald*
135*225f4ba4SMatthias Ringwald**********************************************************************
136*225f4ba4SMatthias Ringwald*/
137*225f4ba4SMatthias Ringwald//void BeforeTargetConnect (void) {
138*225f4ba4SMatthias Ringwald//}
139*225f4ba4SMatthias Ringwald
140*225f4ba4SMatthias Ringwald/*********************************************************************
141*225f4ba4SMatthias Ringwald*
142*225f4ba4SMatthias Ringwald*       AfterTargetConnect
143*225f4ba4SMatthias Ringwald*
144*225f4ba4SMatthias Ringwald* Function description
145*225f4ba4SMatthias Ringwald*   Event handler routine. Optional.
146*225f4ba4SMatthias Ringwald*
147*225f4ba4SMatthias Ringwald**********************************************************************
148*225f4ba4SMatthias Ringwald*/
149*225f4ba4SMatthias Ringwald//void AfterTargetConnect (void) {
150*225f4ba4SMatthias Ringwald//}
151*225f4ba4SMatthias Ringwald
152*225f4ba4SMatthias Ringwald/*********************************************************************
153*225f4ba4SMatthias Ringwald*
154*225f4ba4SMatthias Ringwald*       TargetDownload
155*225f4ba4SMatthias Ringwald*
156*225f4ba4SMatthias Ringwald* Function description
157*225f4ba4SMatthias Ringwald*   Replaces the default program download routine. Optional.
158*225f4ba4SMatthias Ringwald*
159*225f4ba4SMatthias Ringwald**********************************************************************
160*225f4ba4SMatthias Ringwald*/
161*225f4ba4SMatthias Ringwald//void TargetDownload (void) {
162*225f4ba4SMatthias Ringwald//}
163*225f4ba4SMatthias Ringwald
164*225f4ba4SMatthias Ringwald/*********************************************************************
165*225f4ba4SMatthias Ringwald*
166*225f4ba4SMatthias Ringwald*       BeforeTargetDownload
167*225f4ba4SMatthias Ringwald*
168*225f4ba4SMatthias Ringwald* Function description
169*225f4ba4SMatthias Ringwald*   Event handler routine. Optional.
170*225f4ba4SMatthias Ringwald*
171*225f4ba4SMatthias Ringwald**********************************************************************
172*225f4ba4SMatthias Ringwald*/
173*225f4ba4SMatthias Ringwald//void BeforeTargetDownload (void) {
174*225f4ba4SMatthias Ringwald//}
175*225f4ba4SMatthias Ringwald
176*225f4ba4SMatthias Ringwald/*********************************************************************
177*225f4ba4SMatthias Ringwald*
178*225f4ba4SMatthias Ringwald*      AfterTargetDownload
179*225f4ba4SMatthias Ringwald*
180*225f4ba4SMatthias Ringwald* Function description
181*225f4ba4SMatthias Ringwald*   Event handler routine.
182*225f4ba4SMatthias Ringwald*    - Sets the PC register to program reset value.
183*225f4ba4SMatthias Ringwald*    - Sets the SP register to program reset value on Cortex-M.
184*225f4ba4SMatthias Ringwald*
185*225f4ba4SMatthias Ringwald**********************************************************************
186*225f4ba4SMatthias Ringwald*/
187*225f4ba4SMatthias Ringwaldvoid AfterTargetDownload (void) {
188*225f4ba4SMatthias Ringwald  unsigned int SP;
189*225f4ba4SMatthias Ringwald  unsigned int PC;
190*225f4ba4SMatthias Ringwald  unsigned int VectorTableAddr;
191*225f4ba4SMatthias Ringwald
192*225f4ba4SMatthias Ringwald  VectorTableAddr = Elf.GetBaseAddr();
193*225f4ba4SMatthias Ringwald
194*225f4ba4SMatthias Ringwald  if (VectorTableAddr == 0xFFFFFFFF) {
195*225f4ba4SMatthias Ringwald    Util.Log("Project file error: failed to get program base");
196*225f4ba4SMatthias Ringwald  } else {
197*225f4ba4SMatthias Ringwald    SP = Target.ReadU32(VectorTableAddr);
198*225f4ba4SMatthias Ringwald    Target.SetReg("SP", SP);
199*225f4ba4SMatthias Ringwald
200*225f4ba4SMatthias Ringwald    PC = Target.ReadU32(VectorTableAddr + 4);
201*225f4ba4SMatthias Ringwald    Target.SetReg("PC", PC);
202*225f4ba4SMatthias Ringwald  }
203*225f4ba4SMatthias Ringwald}
204*225f4ba4SMatthias Ringwald
205*225f4ba4SMatthias Ringwald/*********************************************************************
206*225f4ba4SMatthias Ringwald*
207*225f4ba4SMatthias Ringwald*       BeforeTargetDisconnect
208*225f4ba4SMatthias Ringwald*
209*225f4ba4SMatthias Ringwald* Function description
210*225f4ba4SMatthias Ringwald*   Event handler routine. Optional.
211*225f4ba4SMatthias Ringwald*
212*225f4ba4SMatthias Ringwald**********************************************************************
213*225f4ba4SMatthias Ringwald*/
214*225f4ba4SMatthias Ringwald//void BeforeTargetDisconnect (void) {
215*225f4ba4SMatthias Ringwald//}
216*225f4ba4SMatthias Ringwald
217*225f4ba4SMatthias Ringwald/*********************************************************************
218*225f4ba4SMatthias Ringwald*
219*225f4ba4SMatthias Ringwald*       AfterTargetDisconnect
220*225f4ba4SMatthias Ringwald*
221*225f4ba4SMatthias Ringwald* Function description
222*225f4ba4SMatthias Ringwald*   Event handler routine. Optional.
223*225f4ba4SMatthias Ringwald*
224*225f4ba4SMatthias Ringwald**********************************************************************
225*225f4ba4SMatthias Ringwald*/
226*225f4ba4SMatthias Ringwald//void AfterTargetDisconnect (void) {
227*225f4ba4SMatthias Ringwald//}
228*225f4ba4SMatthias Ringwald
229*225f4ba4SMatthias Ringwald/*********************************************************************
230*225f4ba4SMatthias Ringwald*
231*225f4ba4SMatthias Ringwald*       AfterTargetHalt
232*225f4ba4SMatthias Ringwald*
233*225f4ba4SMatthias Ringwald* Function description
234*225f4ba4SMatthias Ringwald*   Event handler routine. Optional.
235*225f4ba4SMatthias Ringwald*
236*225f4ba4SMatthias Ringwald**********************************************************************
237*225f4ba4SMatthias Ringwald*/
238*225f4ba4SMatthias Ringwald//void AfterTargetHalt (void) {
239*225f4ba4SMatthias Ringwald//}
240