You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
241 lines
15 KiB
241 lines
15 KiB
3 years ago
|
|
||
|
/*********************************************************************
|
||
|
*
|
||
|
* OnProjectLoad
|
||
|
*
|
||
|
* Function description
|
||
|
* Project load routine. Required.
|
||
|
*
|
||
|
**********************************************************************
|
||
|
*/
|
||
|
void OnProjectLoad (void) {
|
||
|
//
|
||
|
// Dialog-generated settings
|
||
|
//
|
||
|
Project.SetDevice ("STM32F103VE");
|
||
|
Project.SetHostIF ("USB", "");
|
||
|
Project.SetTargetIF ("SWD");
|
||
|
Project.SetTIFSpeed ("4 MHz");
|
||
|
Project.AddPathSubstitute ("/home/sergey/Projects/3D_Printer/FirmWare/Marlin/Marlin2.0", "$(ProjectDir)");
|
||
|
Project.AddSvdFile ("$(InstallDir)/Config/CPU/Cortex-M3.svd");
|
||
|
Project.AddSvdFile ("$(ProjectDir)/STM32F103.svd");
|
||
|
//
|
||
|
// User settings
|
||
|
//
|
||
|
|
||
|
File.Open ("$(ProjectDir)/.pio/build/mks_robin_nano35/firmware.elf");
|
||
|
}
|
||
|
|
||
|
/*********************************************************************
|
||
|
*
|
||
|
* TargetReset
|
||
|
*
|
||
|
* Function description
|
||
|
* Replaces the default target device reset routine. Optional.
|
||
|
*
|
||
|
* Notes
|
||
|
* This example demonstrates the usage when
|
||
|
* debugging a RAM program on a Cortex-M target device
|
||
|
*
|
||
|
**********************************************************************
|
||
|
*/
|
||
|
//void TargetReset (void) {
|
||
|
//
|
||
|
// unsigned int SP;
|
||
|
// unsigned int PC;
|
||
|
// unsigned int VectorTableAddr;
|
||
|
//
|
||
|
// Exec.Reset();
|
||
|
//
|
||
|
// VectorTableAddr = Elf.GetBaseAddr();
|
||
|
//
|
||
|
// if (VectorTableAddr != 0xFFFFFFFF) {
|
||
|
//
|
||
|
// Util.Log("Resetting Program.");
|
||
|
//
|
||
|
// SP = Target.ReadU32(VectorTableAddr);
|
||
|
// Target.SetReg("SP", SP);
|
||
|
//
|
||
|
// PC = Target.ReadU32(VectorTableAddr + 4);
|
||
|
// Target.SetReg("PC", PC);
|
||
|
// }
|
||
|
//}
|
||
|
|
||
|
/*********************************************************************
|
||
|
*
|
||
|
* BeforeTargetReset
|
||
|
*
|
||
|
* Function description
|
||
|
* Event handler routine. Optional.
|
||
|
*
|
||
|
**********************************************************************
|
||
|
*/
|
||
|
//void BeforeTargetReset (void) {
|
||
|
//}
|
||
|
|
||
|
/*********************************************************************
|
||
|
*
|
||
|
* AfterTargetReset
|
||
|
*
|
||
|
* Function description
|
||
|
* Event handler routine.
|
||
|
* - Sets the PC register to program reset value.
|
||
|
* - Sets the SP register to program reset value on Cortex-M.
|
||
|
*
|
||
|
**********************************************************************
|
||
|
*/
|
||
|
void AfterTargetReset (void) {
|
||
|
unsigned int SP;
|
||
|
unsigned int PC;
|
||
|
unsigned int VectorTableAddr;
|
||
|
|
||
|
VectorTableAddr = Elf.GetBaseAddr();
|
||
|
|
||
|
if (VectorTableAddr == 0xFFFFFFFF) {
|
||
|
Util.Log("Project file error: failed to get program base");
|
||
|
} else {
|
||
|
SP = Target.ReadU32(VectorTableAddr);
|
||
|
Target.SetReg("SP", SP);
|
||
|
|
||
|
PC = Target.ReadU32(VectorTableAddr + 4);
|
||
|
Target.SetReg("PC", PC);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*********************************************************************
|
||
|
*
|
||
|
* 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.
|
||
|
* - Sets the PC register to program reset value.
|
||
|
* - Sets the SP register to program reset value on Cortex-M.
|
||
|
*
|
||
|
**********************************************************************
|
||
|
*/
|
||
|
void AfterTargetDownload (void) {
|
||
|
unsigned int SP;
|
||
|
unsigned int PC;
|
||
|
unsigned int VectorTableAddr;
|
||
|
|
||
|
VectorTableAddr = Elf.GetBaseAddr();
|
||
|
|
||
|
if (VectorTableAddr == 0xFFFFFFFF) {
|
||
|
Util.Log("Project file error: failed to get program base");
|
||
|
} else {
|
||
|
SP = Target.ReadU32(VectorTableAddr);
|
||
|
Target.SetReg("SP", SP);
|
||
|
|
||
|
PC = Target.ReadU32(VectorTableAddr + 4);
|
||
|
Target.SetReg("PC", PC);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*********************************************************************
|
||
|
*
|
||
|
* 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) {
|
||
|
//}
|