Adaptation/GUID-654A788A-526A-4C3F-838C-05B09F0D5445.dita
changeset 15 307f4279f433
equal deleted inserted replaced
14:578be2adaf3e 15:307f4279f433
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-654A788A-526A-4C3F-838C-05B09F0D5445" xml:lang="en"><title>Interrupt Technology Guide</title><shortdesc>Describes the concepts of the Interrupts platform service.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    13 <p>The Interrupt platform service provides an interface to the kernel
       
    14 and device drivers to associate interrupt with an Interrupt Service
       
    15 Routine (ISR). There are three levels of interrupt management: <ol>
       
    16 <li id="GUID-74C645F7-29BE-452F-97DB-1D32134FB553"><p>CPU level: Control
       
    17 of interrupts available only to the kernel.</p></li>
       
    18 <li id="GUID-999F3089-0CF3-4C28-8547-0DCFD634F8B8"><p>Controller level:
       
    19 Control provided by functions of the <codeph>Interrupt</codeph> class.</p></li>
       
    20 <li id="GUID-47E985FB-1990-4FD8-A1B2-752A58A799A3"><p>Device level:
       
    21 Control of hardware sources that are managed by a device specific
       
    22 control scheme.</p></li>
       
    23 </ol></p>
       
    24 <section id="GUID-F80CF14A-3CB2-41B1-A3BD-DBD116FDBA8C-GENID-1-2-1-10-1-5-1-7-1-1-6-1-3-2">         
       
    25    <title>Key concepts</title><dl>
       
    26 <dlentry>
       
    27 <dt>Interrupt</dt>
       
    28 <dd><p>An interrupt is a hardware or a software event that may need
       
    29 to be serviced. An example of a hardware interrupt is a key press
       
    30 .</p></dd>
       
    31 </dlentry>
       
    32 <dlentry>
       
    33 <dt>Interrupt ID</dt>
       
    34 <dd><p>The unique ID of an interrupt source. The interrupt ID are
       
    35 defined by the developers creating ASSP and variant.</p></dd>
       
    36 </dlentry>
       
    37 <dlentry>
       
    38 <dt>Spurious interrupts</dt>
       
    39 <dd><p>Interrupts not associated with an Interrupt Service Routine
       
    40 are called the spurious interrupts. The spurious interrupts are handled
       
    41 by a spurious interrupt handler which is only used for debugging.</p></dd>
       
    42 </dlentry>
       
    43 <dlentry>
       
    44 <dt>ISR</dt>
       
    45 <dd><p>An Interrupt Service Routine (ISR ) is the function to handle
       
    46 an interrupt. ISR is not a class member. ISR provides the minimum
       
    47 processing such as storing data that may not be available later and
       
    48 requests a DFC for further processing.</p></dd>
       
    49 </dlentry>
       
    50 <dlentry>
       
    51 <dt>Interrupt priority</dt>
       
    52 <dd><p>The Interrupt platform service allows developers to set a priority
       
    53 for each interrupt source. The meaning of the priority value depends
       
    54 on the hardware and the baseport implementation.</p></dd>
       
    55 </dlentry>
       
    56 <dlentry>
       
    57 <dt>Interrupt dispatch</dt>
       
    58 <dd><p>When an interrupt is received by the system, it calls the associated
       
    59 ISR. This is called interrupt dispatch. The interrupt dispatch is
       
    60 provided by the implementation of the <codeph>interrupt</codeph> class
       
    61 in the ASSP layer.</p></dd>
       
    62 </dlentry>
       
    63 <dlentry>
       
    64 <dt>ISR table</dt>
       
    65 <dd><p>The table that maps the interrupt ID and the associated ISR.
       
    66 The ISR table is implemented by the developers creating the baseport
       
    67 variant.</p></dd>
       
    68 </dlentry>
       
    69 <dlentry>
       
    70 <dt>Binding</dt>
       
    71 <dd><p>The process of associating an interrupt ID with an ISR. Unbinding
       
    72 removes the association.</p></dd>
       
    73 </dlentry>
       
    74 <dlentry>
       
    75 <dt>Chained interrupts</dt>
       
    76 <dd><p>The output of a low priority interrupt controller is provided
       
    77 as an input to a higher priority interrupt controller.</p></dd>
       
    78 </dlentry>
       
    79 </dl><dl>
       
    80 <dlentry>
       
    81 <dt>Pseudo-interrupts</dt>
       
    82 <dd><p>Pseudo-interrupts correspond to multiple interrupt sources
       
    83 sharing a single input to an interrupt controller but requiring separate
       
    84 ISRs to service them. The ISRs cannot all be bound to the single real
       
    85 interrupt and are therefore bound to the pseudo-interrupt instead.</p></dd>
       
    86 </dlentry>
       
    87 </dl><dl>
       
    88 <dlentry>
       
    89 <dt>IRQs and FIQs</dt>
       
    90 <dd><p>An IRQ (interrupt request) is the signal generated by an item
       
    91 of hardware or software to request an interrupt from the processor.
       
    92 An FIQ (fast IRQ) is an IRQ with high priority on systems
       
    93 which support prioritization of requests.</p></dd>
       
    94 </dlentry>
       
    95 </dl>                     </section>
       
    96 <section id="GUID-02A23FEF-2E96-4DC7-9AFB-D836B019C37B"><title>Typical
       
    97 uses</title><p>The Interrupt platform service allows the kernel and
       
    98 device drivers to :</p><ul>
       
    99 <li><p>associate an ISR with an interrupt ID</p></li>
       
   100 <li><p>enable/disable a specific interrupt</p></li>
       
   101 <li><p>clear pending actions on a specific interrupt</p></li>
       
   102 <li><p>change the priority of a specific interrupt.</p></li>
       
   103 </ul></section>
       
   104 </conbody><related-links>
       
   105 <link href="GUID-2E54DA7D-1094-41C6-AFB0-9999471991F8.dita"><linktext>Interrupt
       
   106 Implementation Guide</linktext></link>
       
   107 <link href="GUID-68446E8E-129C-444A-836A-EF8F56BFE0BC.dita"><linktext>Handling
       
   108 Interrupts</linktext></link>
       
   109 </related-links></concept>