diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 595164f..f43b35e 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,7 +4,7 @@ { "label": "flash firmware", "type": "shell", - "command": "openocd -f interface/cmsis-dap.cfg -f ./openocd_scripts/dp32g030.cfg -c 'halt' -c 'write_image ./build/src/par_runner/par_runner.bin 0' -c 'shutdown'", + "command": "openocd -f interface/cmsis-dap.cfg -f ./openocd_scripts/dp32g030.cfg -c 'reset halt' -c 'write_image ./build/src/par_runner/par_runner.bin 0' -c 'shutdown'", "presentation": { "reveal": "always", "panel": "shared" diff --git a/src/par_runner/main.cpp b/src/par_runner/main.cpp index 0080d3e..0b3080d 100644 --- a/src/par_runner/main.cpp +++ b/src/par_runner/main.cpp @@ -1,12 +1,14 @@ #include "system/system.hpp" #include "hardware/hardware.hpp" +#include "registers.hpp" Hardware::THardware Hw; int main() { Hw.Power.EnableDbg(); - // System::JumpToOrginalFw(); + __BKPT(); + System::JumpToOrginalFw(); while(1); return 0; } diff --git a/src/par_runner/memory.ld b/src/par_runner/memory.ld index e2b74a3..eb5bce6 100644 --- a/src/par_runner/memory.ld +++ b/src/par_runner/memory.ld @@ -28,7 +28,7 @@ SECTIONS { . = ALIGN(4); __org_vectors_start = .; - *(.org_vectors) + KEEP(*(.org_vectors)) } > FLASH .text : diff --git a/src/par_runner/registers.hpp b/src/par_runner/registers.hpp index 5c5bd5c..1e08e1e 100644 --- a/src/par_runner/registers.hpp +++ b/src/par_runner/registers.hpp @@ -31,4 +31,5 @@ struct TGpio }; #define GPIO_BASE 0x400B0000 -#define GPIO ((TGpio*)GPIO_BASE) \ No newline at end of file +#define GPIO ((TGpio*)GPIO_BASE) +#define __BKPT(value) __asm volatile ("bkpt "#value) \ No newline at end of file