Changes between Version 1 and Version 2 of kernel_interrupts


Ignore:
Timestamp:
Oct 7, 2014, 11:59:23 AM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • kernel_interrupts

    v1 v2  
    99||isr_id         ||bits[15:0]    || defines the type of ISR to be executed ||
    1010||channel_id ||bits[30:16]  || defines the channel for multi-channels peripherals ||
    11 ||valid          || bit 31         || valid interrupt vector entry ||
     11||valid          || bit [31]       || valid interrupt vector entry ||
    1212
    1313If the peripheral is replicated in clusters, the channel_id is a global index :
     
    1515
    1616
    17  === void _irq_demux() ===
     17 === void '''_irq_demux'''() ===
    1818This function access the ICU or XCU component (Interrupt Controler Unit) to get the interrupt vector entry. There is one ICU or XICU component per cluster, and these components support several output IRQs (one output IRQ per processor in a given cluster).
    1919It uses the [source:soft/giet_vm/giet_drivers/xcu_driver _xcu_get_index()] or  [source:soft/giet_vm/giet_drivers/icu_driver_icu_get_index()] functions to get the IRQ type (HWI / PTI / WTI), and the index in the corresponding interrupt vector.
     
    3030
    3131
    32  === void _isr_wakup( unsigned int irq_type,  unsigned int irq_id,  unsigned int channel ) ===
     32 === void '''_isr_wakup'''( unsigned int irq_type,  unsigned int irq_id,  unsigned int channel ) ===
    3333This ISR can only be executed after a WTI (IPI) awake an idle processor, or to force a context switch
    3434on a remote processor. The context switch is only executed if the current task is the IDLE_TASK, or if the value written in the mailbox is non zero.
    3535
    36  === '''void _isr_tick'''( unsigned int irq_type,  unsigned int irq_id,  unsigned int channel ) ===
     36 === void '''_isr_tick'''( unsigned int irq_type,  unsigned int irq_id,  unsigned int channel ) ===
    3737This ISR is in charge of context switch, and handles the IRQs generated by
    3838// the "system" timers. It can be PTI in case of XCU, or it can be HWI generated
     
    4040// The ISR acknowledges the IRQ, and calls the _ctx_switch() function.
    4141
    42  === void _isr_default() ===
     42 === void '''_isr_default'''() ===
    4343This default ISR is called  when the interrupt handler is called, and there is no active IRQ. It simply displays a warning message on the kernel TTY[0].