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>
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>