Projekt

Allgemein

Profil

Interrupts » Historie » Version 2

Maximilian Seesslen, 24.08.2022 10:57

1 1 Maximilian Seesslen
h1. Interrupts
2
3
Der Overhead soll moeglichst gering gehalten werden.
4
Daher werden nur Informationen fuer Peripheri-Interrupts gehalten, die auch verwendet werden.
5 2 Maximilian Seesslen
Dynamische Arrays fuer Interrupt-Objekte gibt es nicht mehr sondern nur einzelne Pointer auf verwendete 
6 1 Maximilian Seesslen
Interrupt-Objekte. Durch das explizite Aktivieren von ISRs werden nicht benutzte Pointer durch den Linker eliminiert.
7 2 Maximilian Seesslen
Der fuer eine Peripherie verwendete Interrupt-Objekt-Pointer kann in der Config-Struktur angegeben sein.
8
Eine Interrupt-Klasse ist nicht notwendig.
9 1 Maximilian Seesslen
10
Beispiel:
11
12
<pre><code class="cpp">
13
CUart *interruptUart1=nullptr;
14
CUart *interruptUart2=nullptr;
15
16
INTERRUPT_IMPL(UART2)
17
{
18
   callInterrupt(uart2);
19
};
20 2 Maximilian Seesslen
21
CUart::interrupt()
22
{
23
   HAL_UART_INTERRUPT( m_pHandler );
24
}
25 1 Maximilian Seesslen
26
SUartConfig configBlockUart2
27
{
28
   .interrupt=interruptUart2,
29
};
30
</code></pre>