Aktionen
Interrupts » Historie » Revision 2
« Zurück |
Revision 2/3
(diff)
| Weiter »
Maximilian Seesslen, 24.08.2022 10:57
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 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.
Beispiel:
CUart *interruptUart1=nullptr;
CUart *interruptUart2=nullptr;
INTERRUPT_IMPL(UART2)
{
callInterrupt(uart2);
};
CUart::interrupt()
{
HAL_UART_INTERRUPT( m_pHandler );
}
SUartConfig configBlockUart2
{
.interrupt=interruptUart2,
};
Von Maximilian Seesslen vor mehr als 2 Jahren aktualisiert · 2 Revisionen