xref: /btstack/port/renesas-ek-ra6m4a-da14531/ozone.jdebug.in (revision c30869498fb8e98c1408c9db0e7624f02f483b73)
1*c3086949SMatthias Ringwald/*********************************************************************
2*c3086949SMatthias Ringwald*                 (c) SEGGER Microcontroller GmbH                    *
3*c3086949SMatthias Ringwald*                      The Embedded Experts                          *
4*c3086949SMatthias Ringwald*                         www.segger.com                             *
5*c3086949SMatthias Ringwald**********************************************************************
6*c3086949SMatthias Ringwald
7*c3086949SMatthias RingwaldFile          : /Users/mringwal/Projects/Renesas/RA6/renesas-ek-ra6m4a-da14531/ozone.jdebug
8*c3086949SMatthias RingwaldCreated       : 10 Aug 2022 23:12
9*c3086949SMatthias RingwaldOzone Version : V3.26c
10*c3086949SMatthias Ringwald*/
11*c3086949SMatthias Ringwald
12*c3086949SMatthias Ringwald/*********************************************************************
13*c3086949SMatthias Ringwald*
14*c3086949SMatthias Ringwald*       OnProjectLoad
15*c3086949SMatthias Ringwald*
16*c3086949SMatthias Ringwald* Function description
17*c3086949SMatthias Ringwald*   Project load routine. Required.
18*c3086949SMatthias Ringwald*
19*c3086949SMatthias Ringwald**********************************************************************
20*c3086949SMatthias Ringwald*/
21*c3086949SMatthias Ringwaldvoid OnProjectLoad (void) {
22*c3086949SMatthias Ringwald  //
23*c3086949SMatthias Ringwald  // Dialog-generated settings
24*c3086949SMatthias Ringwald  //
25*c3086949SMatthias Ringwald  Project.SetDevice ("R7FA6M4AF");
26*c3086949SMatthias Ringwald  Project.SetHostIF ("USB", "");
27*c3086949SMatthias Ringwald  Project.SetTargetIF ("SWD");
28*c3086949SMatthias Ringwald  Project.SetTIFSpeed ("4 MHz");
29*c3086949SMatthias Ringwald  Project.AddPathSubstitute ("@CMAKE_SOURCE_DIR@", "$(ProjectDir)");
30*c3086949SMatthias Ringwald  Project.AddSvdFile ("$(InstallDir)/Config/CPU/Cortex-M33F.svd");
31*c3086949SMatthias Ringwald  //
32*c3086949SMatthias Ringwald  // User settings
33*c3086949SMatthias Ringwald  //
34*c3086949SMatthias Ringwald  Edit.SysVar (VAR_RTT_ENABLED, 1);
35*c3086949SMatthias Ringwald  File.Open ("@CMAKE_CURRENT_BINARY_DIR@/@[email protected]");
36*c3086949SMatthias Ringwald}
37*c3086949SMatthias Ringwald
38*c3086949SMatthias Ringwald/*********************************************************************
39*c3086949SMatthias Ringwald*
40*c3086949SMatthias Ringwald*       OnStartupComplete
41*c3086949SMatthias Ringwald*
42*c3086949SMatthias Ringwald* Function description
43*c3086949SMatthias Ringwald*   Called when program execution has reached/passed
44*c3086949SMatthias Ringwald*   the startup completion point. Optional.
45*c3086949SMatthias Ringwald*
46*c3086949SMatthias Ringwald**********************************************************************
47*c3086949SMatthias Ringwald*/
48*c3086949SMatthias Ringwald//void OnStartupComplete (void) {
49*c3086949SMatthias Ringwald//}
50*c3086949SMatthias Ringwald
51*c3086949SMatthias Ringwald/*********************************************************************
52*c3086949SMatthias Ringwald*
53*c3086949SMatthias Ringwald*      TargetReset
54*c3086949SMatthias Ringwald*
55*c3086949SMatthias Ringwald* Function description
56*c3086949SMatthias Ringwald*   Replaces the default target device reset routine. Optional.
57*c3086949SMatthias Ringwald*
58*c3086949SMatthias Ringwald* Notes
59*c3086949SMatthias Ringwald*   This example demonstrates the usage when
60*c3086949SMatthias Ringwald*   debugging an application in RAM on a Cortex-M target device.
61*c3086949SMatthias Ringwald*
62*c3086949SMatthias Ringwald**********************************************************************
63*c3086949SMatthias Ringwald*/
64*c3086949SMatthias Ringwald//void TargetReset (void) {
65*c3086949SMatthias Ringwald//
66*c3086949SMatthias Ringwald//  unsigned int SP;
67*c3086949SMatthias Ringwald//  unsigned int PC;
68*c3086949SMatthias Ringwald//  unsigned int VectorTableAddr;
69*c3086949SMatthias Ringwald//
70*c3086949SMatthias Ringwald//  VectorTableAddr = Elf.GetBaseAddr();
71*c3086949SMatthias Ringwald//  //
72*c3086949SMatthias Ringwald//  // Set up initial stack pointer
73*c3086949SMatthias Ringwald//  //
74*c3086949SMatthias Ringwald//  if (VectorTableAddr != 0xFFFFFFFF) {
75*c3086949SMatthias Ringwald//    SP = Target.ReadU32(VectorTableAddr);
76*c3086949SMatthias Ringwald//    Target.SetReg("SP", SP);
77*c3086949SMatthias Ringwald//  }
78*c3086949SMatthias Ringwald//  //
79*c3086949SMatthias Ringwald//  // Set up entry point PC
80*c3086949SMatthias Ringwald//  //
81*c3086949SMatthias Ringwald//  PC = Elf.GetEntryPointPC();
82*c3086949SMatthias Ringwald//
83*c3086949SMatthias Ringwald//  if (PC != 0xFFFFFFFF) {
84*c3086949SMatthias Ringwald//    Target.SetReg("PC", PC);
85*c3086949SMatthias Ringwald//  } else if (VectorTableAddr != 0xFFFFFFFF) {
86*c3086949SMatthias Ringwald//    PC = Target.ReadU32(VectorTableAddr + 4);
87*c3086949SMatthias Ringwald//    Target.SetReg("PC", PC);
88*c3086949SMatthias Ringwald//  } else {
89*c3086949SMatthias Ringwald//    Util.Error("Project file error: failed to set entry point PC", 1);
90*c3086949SMatthias Ringwald//  }
91*c3086949SMatthias Ringwald//}
92*c3086949SMatthias Ringwald
93*c3086949SMatthias Ringwald/*********************************************************************
94*c3086949SMatthias Ringwald*
95*c3086949SMatthias Ringwald*       BeforeTargetReset
96*c3086949SMatthias Ringwald*
97*c3086949SMatthias Ringwald* Function description
98*c3086949SMatthias Ringwald*   Event handler routine. Optional.
99*c3086949SMatthias Ringwald*
100*c3086949SMatthias Ringwald**********************************************************************
101*c3086949SMatthias Ringwald*/
102*c3086949SMatthias Ringwald//void BeforeTargetReset (void) {
103*c3086949SMatthias Ringwald//}
104*c3086949SMatthias Ringwald
105*c3086949SMatthias Ringwald/*********************************************************************
106*c3086949SMatthias Ringwald*
107*c3086949SMatthias Ringwald*       AfterTargetReset
108*c3086949SMatthias Ringwald*
109*c3086949SMatthias Ringwald* Function description
110*c3086949SMatthias Ringwald*   Event handler routine. Optional.
111*c3086949SMatthias Ringwald*   The default implementation initializes SP and PC to reset values.
112*c3086949SMatthias Ringwald**
113*c3086949SMatthias Ringwald**********************************************************************
114*c3086949SMatthias Ringwald*/
115*c3086949SMatthias Ringwaldvoid AfterTargetReset (void) {
116*c3086949SMatthias Ringwald  _SetupTarget();
117*c3086949SMatthias Ringwald}
118*c3086949SMatthias Ringwald
119*c3086949SMatthias Ringwald/*********************************************************************
120*c3086949SMatthias Ringwald*
121*c3086949SMatthias Ringwald*       DebugStart
122*c3086949SMatthias Ringwald*
123*c3086949SMatthias Ringwald* Function description
124*c3086949SMatthias Ringwald*   Replaces the default debug session startup routine. Optional.
125*c3086949SMatthias Ringwald*
126*c3086949SMatthias Ringwald**********************************************************************
127*c3086949SMatthias Ringwald*/
128*c3086949SMatthias Ringwald//void DebugStart (void) {
129*c3086949SMatthias Ringwald//}
130*c3086949SMatthias Ringwald
131*c3086949SMatthias Ringwald/*********************************************************************
132*c3086949SMatthias Ringwald*
133*c3086949SMatthias Ringwald*       TargetConnect
134*c3086949SMatthias Ringwald*
135*c3086949SMatthias Ringwald* Function description
136*c3086949SMatthias Ringwald*   Replaces the default target IF connection routine. Optional.
137*c3086949SMatthias Ringwald*
138*c3086949SMatthias Ringwald**********************************************************************
139*c3086949SMatthias Ringwald*/
140*c3086949SMatthias Ringwald//void TargetConnect (void) {
141*c3086949SMatthias Ringwald//}
142*c3086949SMatthias Ringwald
143*c3086949SMatthias Ringwald/*********************************************************************
144*c3086949SMatthias Ringwald*
145*c3086949SMatthias Ringwald*       BeforeTargetConnect
146*c3086949SMatthias Ringwald*
147*c3086949SMatthias Ringwald* Function description
148*c3086949SMatthias Ringwald*   Event handler routine. Optional.
149*c3086949SMatthias Ringwald*
150*c3086949SMatthias Ringwald**********************************************************************
151*c3086949SMatthias Ringwald*/
152*c3086949SMatthias Ringwald//void BeforeTargetConnect (void) {
153*c3086949SMatthias Ringwald//}
154*c3086949SMatthias Ringwald
155*c3086949SMatthias Ringwald/*********************************************************************
156*c3086949SMatthias Ringwald*
157*c3086949SMatthias Ringwald*       AfterTargetConnect
158*c3086949SMatthias Ringwald*
159*c3086949SMatthias Ringwald* Function description
160*c3086949SMatthias Ringwald*   Event handler routine. Optional.
161*c3086949SMatthias Ringwald*
162*c3086949SMatthias Ringwald**********************************************************************
163*c3086949SMatthias Ringwald*/
164*c3086949SMatthias Ringwald//void AfterTargetConnect (void) {
165*c3086949SMatthias Ringwald//}
166*c3086949SMatthias Ringwald
167*c3086949SMatthias Ringwald/*********************************************************************
168*c3086949SMatthias Ringwald*
169*c3086949SMatthias Ringwald*       TargetDownload
170*c3086949SMatthias Ringwald*
171*c3086949SMatthias Ringwald* Function description
172*c3086949SMatthias Ringwald*   Replaces the default program download routine. Optional.
173*c3086949SMatthias Ringwald*
174*c3086949SMatthias Ringwald**********************************************************************
175*c3086949SMatthias Ringwald*/
176*c3086949SMatthias Ringwald//void TargetDownload (void) {
177*c3086949SMatthias Ringwald//}
178*c3086949SMatthias Ringwald
179*c3086949SMatthias Ringwald/*********************************************************************
180*c3086949SMatthias Ringwald*
181*c3086949SMatthias Ringwald*       BeforeTargetDownload
182*c3086949SMatthias Ringwald*
183*c3086949SMatthias Ringwald* Function description
184*c3086949SMatthias Ringwald*   Event handler routine. Optional.
185*c3086949SMatthias Ringwald*
186*c3086949SMatthias Ringwald**********************************************************************
187*c3086949SMatthias Ringwald*/
188*c3086949SMatthias Ringwald//void BeforeTargetDownload (void) {
189*c3086949SMatthias Ringwald//}
190*c3086949SMatthias Ringwald
191*c3086949SMatthias Ringwald/*********************************************************************
192*c3086949SMatthias Ringwald*
193*c3086949SMatthias Ringwald*      AfterTargetDownload
194*c3086949SMatthias Ringwald*
195*c3086949SMatthias Ringwald* Function description
196*c3086949SMatthias Ringwald*   Event handler routine. Optional.
197*c3086949SMatthias Ringwald*   The default implementation initializes SP and PC to reset values.
198*c3086949SMatthias Ringwald*
199*c3086949SMatthias Ringwald**********************************************************************
200*c3086949SMatthias Ringwald*/
201*c3086949SMatthias Ringwaldvoid AfterTargetDownload (void) {
202*c3086949SMatthias Ringwald  _SetupTarget();
203*c3086949SMatthias Ringwald}
204*c3086949SMatthias Ringwald
205*c3086949SMatthias Ringwald/*********************************************************************
206*c3086949SMatthias Ringwald*
207*c3086949SMatthias Ringwald*       BeforeTargetDisconnect
208*c3086949SMatthias Ringwald*
209*c3086949SMatthias Ringwald* Function description
210*c3086949SMatthias Ringwald*   Event handler routine. Optional.
211*c3086949SMatthias Ringwald*
212*c3086949SMatthias Ringwald**********************************************************************
213*c3086949SMatthias Ringwald*/
214*c3086949SMatthias Ringwald//void BeforeTargetDisconnect (void) {
215*c3086949SMatthias Ringwald//}
216*c3086949SMatthias Ringwald
217*c3086949SMatthias Ringwald/*********************************************************************
218*c3086949SMatthias Ringwald*
219*c3086949SMatthias Ringwald*       AfterTargetDisconnect
220*c3086949SMatthias Ringwald*
221*c3086949SMatthias Ringwald* Function description
222*c3086949SMatthias Ringwald*   Event handler routine. Optional.
223*c3086949SMatthias Ringwald*
224*c3086949SMatthias Ringwald**********************************************************************
225*c3086949SMatthias Ringwald*/
226*c3086949SMatthias Ringwald//void AfterTargetDisconnect (void) {
227*c3086949SMatthias Ringwald//}
228*c3086949SMatthias Ringwald
229*c3086949SMatthias Ringwald/*********************************************************************
230*c3086949SMatthias Ringwald*
231*c3086949SMatthias Ringwald*       AfterTargetHalt
232*c3086949SMatthias Ringwald*
233*c3086949SMatthias Ringwald* Function description
234*c3086949SMatthias Ringwald*   Event handler routine. Optional.
235*c3086949SMatthias Ringwald*
236*c3086949SMatthias Ringwald**********************************************************************
237*c3086949SMatthias Ringwald*/
238*c3086949SMatthias Ringwald//void AfterTargetHalt (void) {
239*c3086949SMatthias Ringwald//}
240*c3086949SMatthias Ringwald
241*c3086949SMatthias Ringwald/*********************************************************************
242*c3086949SMatthias Ringwald*
243*c3086949SMatthias Ringwald*       BeforeTargetResume
244*c3086949SMatthias Ringwald*
245*c3086949SMatthias Ringwald* Function description
246*c3086949SMatthias Ringwald*   Event handler routine. Optional.
247*c3086949SMatthias Ringwald*
248*c3086949SMatthias Ringwald**********************************************************************
249*c3086949SMatthias Ringwald*/
250*c3086949SMatthias Ringwald//void BeforeTargetResume (void) {
251*c3086949SMatthias Ringwald//}
252*c3086949SMatthias Ringwald
253*c3086949SMatthias Ringwald/*********************************************************************
254*c3086949SMatthias Ringwald*
255*c3086949SMatthias Ringwald*       OnSnapshotLoad
256*c3086949SMatthias Ringwald*
257*c3086949SMatthias Ringwald* Function description
258*c3086949SMatthias Ringwald*   Called upon loading a snapshot. Optional.
259*c3086949SMatthias Ringwald*
260*c3086949SMatthias Ringwald* Additional information
261*c3086949SMatthias Ringwald*   This function is used to restore the target state in cases
262*c3086949SMatthias Ringwald*   where values cannot simply be written to the target.
263*c3086949SMatthias Ringwald*   Typical use: GPIO clock needs to be enabled, before
264*c3086949SMatthias Ringwald*   GPIO is configured.
265*c3086949SMatthias Ringwald*
266*c3086949SMatthias Ringwald**********************************************************************
267*c3086949SMatthias Ringwald*/
268*c3086949SMatthias Ringwald//void OnSnapshotLoad (void) {
269*c3086949SMatthias Ringwald//}
270*c3086949SMatthias Ringwald
271*c3086949SMatthias Ringwald/*********************************************************************
272*c3086949SMatthias Ringwald*
273*c3086949SMatthias Ringwald*       OnSnapshotSave
274*c3086949SMatthias Ringwald*
275*c3086949SMatthias Ringwald* Function description
276*c3086949SMatthias Ringwald*   Called upon saving a snapshot. Optional.
277*c3086949SMatthias Ringwald*
278*c3086949SMatthias Ringwald* Additional information
279*c3086949SMatthias Ringwald*   This function is usually used to save values of the target
280*c3086949SMatthias Ringwald*   state which can either not be trivially read,
281*c3086949SMatthias Ringwald*   or need to be restored in a specific way or order.
282*c3086949SMatthias Ringwald*   Typically use: Memory Mapped Registers,
283*c3086949SMatthias Ringwald*   such as PLL and GPIO configuration.
284*c3086949SMatthias Ringwald*
285*c3086949SMatthias Ringwald**********************************************************************
286*c3086949SMatthias Ringwald*/
287*c3086949SMatthias Ringwald//void OnSnapshotSave (void) {
288*c3086949SMatthias Ringwald//}
289*c3086949SMatthias Ringwald
290*c3086949SMatthias Ringwald/*********************************************************************
291*c3086949SMatthias Ringwald*
292*c3086949SMatthias Ringwald*       OnError
293*c3086949SMatthias Ringwald*
294*c3086949SMatthias Ringwald* Function description
295*c3086949SMatthias Ringwald*   Called when an error ocurred. Optional.
296*c3086949SMatthias Ringwald*
297*c3086949SMatthias Ringwald**********************************************************************
298*c3086949SMatthias Ringwald*/
299*c3086949SMatthias Ringwald//void OnError (void) {
300*c3086949SMatthias Ringwald//}
301*c3086949SMatthias Ringwald
302*c3086949SMatthias Ringwald/*********************************************************************
303*c3086949SMatthias Ringwald*
304*c3086949SMatthias Ringwald*       AfterProjectLoad
305*c3086949SMatthias Ringwald*
306*c3086949SMatthias Ringwald* Function description
307*c3086949SMatthias Ringwald*   After Project load routine. Optional.
308*c3086949SMatthias Ringwald*
309*c3086949SMatthias Ringwald**********************************************************************
310*c3086949SMatthias Ringwald*/
311*c3086949SMatthias Ringwald//void AfterProjectLoad (void) {
312*c3086949SMatthias Ringwald//}
313*c3086949SMatthias Ringwald
314*c3086949SMatthias Ringwald/*********************************************************************
315*c3086949SMatthias Ringwald*
316*c3086949SMatthias Ringwald*       _SetupTarget
317*c3086949SMatthias Ringwald*
318*c3086949SMatthias Ringwald* Function description
319*c3086949SMatthias Ringwald*   Setup the target.
320*c3086949SMatthias Ringwald*   Called by AfterTargetReset() and AfterTargetDownload().
321*c3086949SMatthias Ringwald*
322*c3086949SMatthias Ringwald*   Auto-generated function. May be overridden by Ozone.
323*c3086949SMatthias Ringwald*
324*c3086949SMatthias Ringwald**********************************************************************
325*c3086949SMatthias Ringwald*/
326*c3086949SMatthias Ringwaldvoid _SetupTarget(void) {
327*c3086949SMatthias Ringwald  unsigned int SP;
328*c3086949SMatthias Ringwald  unsigned int PC;
329*c3086949SMatthias Ringwald  unsigned int VectorTableAddr;
330*c3086949SMatthias Ringwald
331*c3086949SMatthias Ringwald  VectorTableAddr = Elf.GetBaseAddr();
332*c3086949SMatthias Ringwald  //
333*c3086949SMatthias Ringwald  // Set up initial stack pointer
334*c3086949SMatthias Ringwald  //
335*c3086949SMatthias Ringwald  SP = Target.ReadU32(VectorTableAddr);
336*c3086949SMatthias Ringwald  if (SP != 0xFFFFFFFF) {
337*c3086949SMatthias Ringwald    Target.SetReg("SP", SP);
338*c3086949SMatthias Ringwald  }
339*c3086949SMatthias Ringwald  //
340*c3086949SMatthias Ringwald  // Set up entry point PC
341*c3086949SMatthias Ringwald  //
342*c3086949SMatthias Ringwald  PC = Elf.GetEntryPointPC();
343*c3086949SMatthias Ringwald  if (PC != 0xFFFFFFFF) {
344*c3086949SMatthias Ringwald    Target.SetReg("PC", PC);
345*c3086949SMatthias Ringwald  } else {
346*c3086949SMatthias Ringwald    Util.Error("Project script error: failed to set up entry point PC", 1);
347*c3086949SMatthias Ringwald  }
348*c3086949SMatthias Ringwald}