336 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			336 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*********************************************************************
 | |
| *                 (c) SEGGER Microcontroller GmbH                    *
 | |
| *                      The Embedded Experts                          *
 | |
| *                         www.segger.com                             *
 | |
| **********************************************************************
 | |
| 
 | |
| File          :
 | |
| Created       : 30 Jun 2021 13:37
 | |
| Ozone Version : V3.24a
 | |
| */
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       OnProjectLoad
 | |
| *
 | |
| * Function description
 | |
| *   Project load routine. Required.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| void OnProjectLoad (void) {
 | |
|   // Dialog-generated settings
 | |
|   Project.AddSvdFile ("$(InstallDir)/Config/CPU/Cortex-M33F.svd");
 | |
|   Project.AddSvdFile ("./nrf5340_application.svd");
 | |
|   Project.SetDevice ("nRF5340_xxAA_APP");
 | |
|   Project.SetHostIF ("USB", "");
 | |
|   Project.SetTargetIF ("SWD");
 | |
|   Project.SetTIFSpeed ("16 MHz");
 | |
| 
 | |
|   Project.SetTraceSource ("Trace Pins");
 | |
|   Project.SetTracePortWidth (4);
 | |
| 
 | |
|   // User settings
 | |
|   File.Open ("../../../../../../examples/device/cdc_msc/cmake-build-pca10095/cdc_msc.elf");
 | |
| }
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       OnStartupComplete
 | |
| *
 | |
| * Function description
 | |
| *   Called when program execution has reached/passed
 | |
| *   the startup completion point. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void OnStartupComplete (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *      TargetReset
 | |
| *
 | |
| * Function description
 | |
| *   Replaces the default target device reset routine. Optional.
 | |
| *
 | |
| * Notes
 | |
| *   This example demonstrates the usage when
 | |
| *   debugging an application in RAM on a Cortex-M target device.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void TargetReset (void) {
 | |
| //
 | |
| //  unsigned int SP;
 | |
| //  unsigned int PC;
 | |
| //  unsigned int VectorTableAddr;
 | |
| //
 | |
| //  VectorTableAddr = Elf.GetBaseAddr();
 | |
| //  //
 | |
| //  // Set up initial stack pointer
 | |
| //  //
 | |
| //  if (VectorTableAddr != 0xFFFFFFFF) {
 | |
| //    SP = Target.ReadU32(VectorTableAddr);
 | |
| //    Target.SetReg("SP", SP);
 | |
| //  }
 | |
| //  //
 | |
| //  // Set up entry point PC
 | |
| //  //
 | |
| //  PC = Elf.GetEntryPointPC();
 | |
| //
 | |
| //  if (PC != 0xFFFFFFFF) {
 | |
| //    Target.SetReg("PC", PC);
 | |
| //  } else if (VectorTableAddr != 0xFFFFFFFF) {
 | |
| //    PC = Target.ReadU32(VectorTableAddr + 4);
 | |
| //    Target.SetReg("PC", PC);
 | |
| //  } else {
 | |
| //    Util.Error("Project file error: failed to set entry point PC", 1);
 | |
| //  }
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       BeforeTargetReset
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void BeforeTargetReset (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       AfterTargetReset
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *   The default implementation initializes SP and PC to reset values.
 | |
| **
 | |
| **********************************************************************
 | |
| */
 | |
| void AfterTargetReset (void) {
 | |
|   _SetupTarget();
 | |
| }
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       DebugStart
 | |
| *
 | |
| * Function description
 | |
| *   Replaces the default debug session startup routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void DebugStart (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       TargetConnect
 | |
| *
 | |
| * Function description
 | |
| *   Replaces the default target IF connection routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void TargetConnect (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       BeforeTargetConnect
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| void BeforeTargetConnect (void) {
 | |
| }
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       AfterTargetConnect
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void AfterTargetConnect (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       TargetDownload
 | |
| *
 | |
| * Function description
 | |
| *   Replaces the default program download routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void TargetDownload (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       BeforeTargetDownload
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void BeforeTargetDownload (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *      AfterTargetDownload
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *   The default implementation initializes SP and PC to reset values.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| void AfterTargetDownload (void) {
 | |
|   _SetupTarget();
 | |
| }
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       BeforeTargetDisconnect
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void BeforeTargetDisconnect (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       AfterTargetDisconnect
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void AfterTargetDisconnect (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       AfterTargetHalt
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void AfterTargetHalt (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       BeforeTargetResume
 | |
| *
 | |
| * Function description
 | |
| *   Event handler routine. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void BeforeTargetResume (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       OnSnapshotLoad
 | |
| *
 | |
| * Function description
 | |
| *   Called upon loading a snapshot. Optional.
 | |
| *
 | |
| * Additional information
 | |
| *   This function is used to restore the target state in cases
 | |
| *   where values cannot simply be written to the target.
 | |
| *   Typical use: GPIO clock needs to be enabled, before
 | |
| *   GPIO is configured.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void OnSnapshotLoad (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       OnSnapshotSave
 | |
| *
 | |
| * Function description
 | |
| *   Called upon saving a snapshot. Optional.
 | |
| *
 | |
| * Additional information
 | |
| *   This function is usually used to save values of the target
 | |
| *   state which can either not be trivially read,
 | |
| *   or need to be restored in a specific way or order.
 | |
| *   Typically use: Memory Mapped Registers,
 | |
| *   such as PLL and GPIO configuration.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void OnSnapshotSave (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       OnError
 | |
| *
 | |
| * Function description
 | |
| *   Called when an error occurred. Optional.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| //void OnError (void) {
 | |
| //}
 | |
| 
 | |
| /*********************************************************************
 | |
| *
 | |
| *       _SetupTarget
 | |
| *
 | |
| * Function description
 | |
| *   Setup the target.
 | |
| *   Called by AfterTargetReset() and AfterTargetDownload().
 | |
| *
 | |
| *   Auto-generated function. May be overridden by Ozone.
 | |
| *
 | |
| **********************************************************************
 | |
| */
 | |
| void _SetupTarget(void) {
 | |
|   unsigned int SP;
 | |
|   unsigned int PC;
 | |
|   unsigned int VectorTableAddr;
 | |
| 
 | |
|   VectorTableAddr = Elf.GetBaseAddr();
 | |
|   //
 | |
|   // Set up initial stack pointer
 | |
|   //
 | |
|   SP = Target.ReadU32(VectorTableAddr);
 | |
|   if (SP != 0xFFFFFFFF) {
 | |
|     Target.SetReg("SP", SP);
 | |
|   }
 | |
|   //
 | |
|   // Set up entry point PC
 | |
|   //
 | |
|   PC = Elf.GetEntryPointPC();
 | |
|   if (PC != 0xFFFFFFFF) {
 | |
|     Target.SetReg("PC", PC);
 | |
|   } else {
 | |
|     Util.Error("Project script error: failed to set up entry point PC", 1);
 | |
|   }
 | |
| }
 | 
