Projekt

Allgemein

Profil

Interrupts » Historie » Revision 2

Revision 1 (Maximilian Seesslen, 24.08.2022 10:54) → Revision 2/3 (Maximilian Seesslen, 24.08.2022 10:57)

h1. Interrupts

Der Overhead soll moeglichst gering gehalten werden.
Daher werden nur Informationen fuer Peripheri-Interrupts gehalten, die auch verwendet werden.
Dynamische Arrays fuer Interrupt-Objekte gibt es nicht mehr sondern sndern nur einzelne Pointer auf verwendete
Interrupt-Objekte. Durch das explizite Aktivieren von ISRs werden nicht benutzte Pointer durch den Linker eliminiert.
Der fuer eine Peripherie verwendete Interrupt-Objekt-Pointer kann in der Config-Struktur angegeben sein.
Eine Interrupt-Klasse ist nicht notwendig.
sein

Beispiel:

<pre><code class="cpp">
CUart *interruptUart1=nullptr;
CUart *interruptUart2=nullptr;

INTERRUPT_IMPL(UART2)
{
callInterrupt(uart2);
};

CUart::interrupt()
{
HAL_UART_INTERRUPT( m_pHandler );
}


SUartConfig configBlockUart2
{
.interrupt=interruptUart2,
};
</code></pre>