Class ArchXT_IntCtrl
Defined in File arch_xt_misc.h
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public InterruptController(Class InterruptController)
Class Documentation
-
class ArchXT_IntCtrl : public InterruptController
Implementation of a Interrupt Controller for XT core series.
Public Functions
-
explicit ArchXT_IntCtrl(const ArchXT_IntCtrlConfig &config)
-
virtual bool init(Device &device) override
Virtual method called when the device is initialised. This is where the peripheral can allocate its I/O registers, interrupts or connect signals.
- Returns:
boolean indicates the success of all allocations.
-
virtual void ioreg_write_handler(reg_addr_t addr, const ioreg_write_t &data) override
Virtual method called when the CPU is writing a I/O register allocated by this peripheral. The value has already been written.
- Parameters:
addr – the register address in I/O space
value – the new register content
-
virtual void cpu_reti() override
Called by the CPU when returning from an ISR (executing a RETI instruction).
The base implementation calls update_irq to determine the next vector to be given to the CPU.
Protected Functions
-
virtual void cpu_ack_irq(int_vect_t vector) override
Called by the CPU when it acknowledges a vector, i.e. it is about to execute the vector address in the flash.
The base implementation calls the ACK handler of the vector and raise the signal with the “Acknowledged” state.
-
virtual IRQ_t get_next_irq() const override
Abstract method indicating which vector should be executed next. Architecture specific behaviors can be implemented here to take into account priority arbitration between vectors.
Note
implementations should assume the GIE flag is set.
- Returns:
IRQ to be executed next or NO_INTERRUPT
-
struct vect_info_t
-
explicit ArchXT_IntCtrl(const ArchXT_IntCtrlConfig &config)