summaryrefslogtreecommitdiff
path: root/interrupt/vectors_nvic.cpp.j2
blob: e4293f35c5468f51721d8905b92e3841b3c4b5d0 (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
#include "interrupt.h"

void entry();
extern uint32_t _ram_end;

typedef void (*vector_t)();

[[gnu::section(".vectors")]]
vector_t vectors[] = {
	(vector_t)&_ram_end,
	entry,

    {% for i in range(2, 16) %}
        {% if i in exceptions %}
    interrupt<Exception::{{ exceptions[i] }}>,
        {% else %}
    0,
        {% endif %}
    {% endfor %}

    {% for i in range(irqs | max + 1 if irqs else 0) %}
        {% if i in irqs %}
    interrupt<IRQ::{{ irqs[i] }}>,
        {% else %}
    0,
        {% endif %}
    {% endfor %}
};