finally its working with JLinkGDBServer
This commit is contained in:
parent
b47ce37955
commit
1c16e903fd
5
.vscode/launch.json
vendored
5
.vscode/launch.json
vendored
@ -9,9 +9,8 @@
|
||||
"request": "launch",
|
||||
"name": "Debug LED Blinky",
|
||||
// The user should start the J-Link server themselves for now. This is because the
|
||||
// ROM protection and the watchdog should be disabled after a reset, which requires
|
||||
// the execution of a dedicated script. I have not found a way to make this work
|
||||
// with the jlinkscriptfile in the jlink folder
|
||||
// Cortex-Debug will issue a reset command, which is problematic even with
|
||||
// a valid JLinkScript file
|
||||
"servertype": "external",
|
||||
"gdbTarget": "localhost:2331",
|
||||
"gdbPath": "/usr/bin/gdb-multiarch",
|
||||
|
@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
# Start the JLinkGDBServer while also specifying the JLinkScript file. The JLinkScript is necessary
|
||||
# to disable ROM protection to allow flashing
|
||||
JLinkGDBServer -select USB -device Cortex-M4 -endian little -if SWD -speed 2000 \
|
||||
-LocalhostOnly -vd
|
||||
-LocalhostOnly -vd -jlinkscriptfile ./jlink/JLinkSettings.JLinkScript
|
||||
|
@ -14,6 +14,21 @@ Purpose : J-Link target setup file for VORAGO VA416xx
|
||||
---------------------------END-OF-HEADER------------------------------
|
||||
*/
|
||||
|
||||
int DisableRomProt(void) {
|
||||
JLINK_SYS_Report("VA416XX: Disabling ROM protection");
|
||||
return JLINK_MEM_WriteU32(0x40010010, 0x1); // ROM_PROT = 0x1
|
||||
}
|
||||
|
||||
int DisableWatchdog(void) {
|
||||
JLINK_MEM_WriteU32(0x400210C0, 0x1ACCE551); // WDOGLOCK = 0x1ACCE551
|
||||
JLINK_MEM_WriteU32(0x40021008, 0x0); // WDOGCONTROL = 0x0 (diable)
|
||||
}
|
||||
|
||||
int SetupTarget (void) {
|
||||
JLINK_SYS_Report("SetupTarget()");
|
||||
return DisableRomProt(); // ROM_PROT = 0x1
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* AfterResetTarget
|
||||
@ -21,9 +36,8 @@ Purpose : J-Link target setup file for VORAGO VA416xx
|
||||
int AfterResetTarget (void) {
|
||||
JLINK_SYS_Report("AfterResetTarget()");
|
||||
// disable watchdog and unlock code RAM for write
|
||||
JLINK_MEM_WriteU32(0x400210C0, 0x1ACCE551); // WDOGLOCK = 0x1ACCE551
|
||||
JLINK_MEM_WriteU32(0x40021008, 0x0); // WDOGCONTROL = 0x0 (diable)
|
||||
return JLINK_MEM_WriteU32(0x40010010, 0x1); // ROM_PROT = 0x1
|
||||
DisableWatchdog();
|
||||
return DisableRomProt(); // ROM_PROT = 0x1
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
@ -32,7 +46,7 @@ int AfterResetTarget (void) {
|
||||
*/
|
||||
int BeforeTargetDownload (void) {
|
||||
JLINK_SYS_Report("BeforeTargetDownload()");
|
||||
return JLINK_MEM_WriteU32(0x40010010, 0x1); // ROM_PROT = 0x1
|
||||
return DisableRomProt(); // ROM_PROT = 0x1
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
@ -41,7 +55,7 @@ int BeforeTargetDownload (void) {
|
||||
*/
|
||||
int AfterTargetDownload (void) {
|
||||
JLINK_SYS_Report("AfterTargetDownload()");
|
||||
return JLINK_MEM_WriteU32(0x40010010, 0x0); // ROM_PROT = 0x0
|
||||
return DisableRomProt(); // ROM_PROT = 0x0
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
@ -50,7 +64,7 @@ int AfterTargetDownload (void) {
|
||||
*/
|
||||
int HandleBeforeFlashProg(void) {
|
||||
JLINK_SYS_Report("HandleBeforeFlashProg()");
|
||||
return JLINK_MEM_WriteU32(0x40010010, 0x1); // ROM_PROT = 0x1
|
||||
return DisableRomProt(); // ROM_PROT = 0x1
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
@ -59,5 +73,5 @@ int HandleBeforeFlashProg(void) {
|
||||
*/
|
||||
int HandleAfterFlashProg(void) {
|
||||
JLINK_SYS_Report("HandleAfterFlashProg()");
|
||||
return JLINK_MEM_WriteU32(0x40010010, 0x0); // ROM_PROT = 0x0
|
||||
return DisableRomProt(); // ROM_PROT = 0x0
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
gdb-multiarch -q --batch -ex 'source prep-flash.gdb'
|
3
scripts/prep-flash.sh
Executable file
3
scripts/prep-flash.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
# Alternative way to unlock the ROM protection of the VA416XX to allow flashing
|
||||
gdb-multiarch -q --batch -ex 'source prep-flash.gdb'
|
Loading…
Reference in New Issue
Block a user