Projekt

Allgemein

Profil

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