Skip to content

Commit 237cb3d

Browse files
committed
added initialization of vector table (temporary change used when debugging and you don't jump from bootloader)
1 parent 52c82be commit 237cb3d

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

cores/arduino/main.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
#include "Arduino.h"
22
#include "usb/USB.h"
33

4+
#define APPLICATION_VECTOR_TABLE_ADDRESS_RAM 0x20007F00
5+
46
void startAgt();
57

68
void _init() {
79
R_BSP_PinAccessEnable();
810
}
911

10-
static uint32_t vectors[BSP_CORTEX_VECTOR_TABLE_ENTRIES+BSP_ICU_VECTOR_MAX_ENTRIES] __attribute__((aligned (0x1000U)));
12+
volatile uint32_t *irq_vector_table;
1113

1214
void startAgt(void);
1315

@@ -18,6 +20,17 @@ extern const fsp_vector_t g_vector_table[];
1820
void arduino_main(void)
1921
{
2022
__disable_irq();
23+
irq_vector_table = (volatile uint32_t *)APPLICATION_VECTOR_TABLE_ADDRESS_RAM;
24+
int _i;
25+
for (_i=0; _i<BSP_CORTEX_VECTOR_TABLE_ENTRIES; _i++) {
26+
*(irq_vector_table + _i) = (uint32_t)__VECTOR_TABLE[_i];
27+
}
28+
for (_i=0; _i<BSP_ICU_VECTOR_MAX_ENTRIES; _i++) {
29+
*(irq_vector_table + _i +BSP_CORTEX_VECTOR_TABLE_ENTRIES) = (uint32_t)g_vector_table[_i];
30+
}
31+
32+
SCB->VTOR = (uint32_t)irq_vector_table;
33+
2134
__DSB();
2235
__enable_irq();
2336

0 commit comments

Comments
 (0)