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