blob: ad6e33f0eeebab3437232708238f54b7d4e397e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include <stdint.h>
#include <gpio.h>
#include <clock.h>
#include <lcd.h>
void SVC_Handler(void) {
uint32_t *stack;
uint8_t index;
asm("\
mrs r0, psp; \
mov %0, r0; \
ldr r0, [r0, #24]; \
ldr %1, [r0, #-2]; \
" : "=r" (stack), "=r" (index));
gpio_mode(GPIOA, 6, OUTPUT);
switch (index) {
case 1:
gpio_dout(GPIOA, 6, 1);
for (int i = 0; i < 100000; i++)
asm("");
gpio_dout(GPIOA, 6, 0);
break;
case 2:
// lcd_put((char *)stack[0]);
break;
default:
break;
}
}
|