Adaptation/GUID-8552E66E-73D6-51DA-8F53-DDF437186CD6.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-8552E66E-73D6-51DA-8F53-DDF437186CD6" xml:lang="en"><title>Validation</title><shortdesc>Describes the DMA test code to validate the port of DMA framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    13 <p>The same set of source code is used to build two different DMA test harnesses: </p>
       
    14 <ol id="GUID-57C2BE90-6771-5C69-804F-CC08AEB43E88">
       
    15 <li id="GUID-778D3856-4605-5156-826F-9B4FCEC296CE"><p>It builds: <filepath>T_DMASIM.EXE</filepath>, <filepath>D_DMASIM.LDD</filepath>,
       
    16 and <filepath>DMASIM.DLL</filepath>. This is a software-simulated implementation
       
    17 of DMA. This harness is used mainly for debugging and validating the PIL (platform-independent
       
    18 layer) as it simulates every kind of DMA controller. The DMA simulator and
       
    19 associated PSL (platform-specific layer) is in <filepath>...\e32test\dma\dmasim.cpp</filepath>. </p> </li>
       
    20 <li id="GUID-69027EF2-66D9-56C3-B63C-269D729382D5"><p>It builds: <filepath>T_DMA.EXE</filepath>, <filepath>D_DMA.LDD</filepath>.
       
    21 The source code for building these executables is in <filepath>...\e32test\dma\t_dma.cpp</filepath> and <filepath>...\e32test\dma\d_dma.cpp</filepath> respectively </p> </li>
       
    22 </ol>
       
    23 <p> <filepath>T_DMA.EXE</filepath> is a user-side harness, and is an automatic
       
    24 test included in the E32TEST suite. It assumes that the underlying DMA controller
       
    25 supports memory to memory transfers. This executable delegates most of the
       
    26 work to D_DMA.LDD (built from base\e32test\dma\d_dma.cpp), a logical device
       
    27 driver that acts as a client for the DMA Framework. D_DMA.LDD links statically
       
    28 against DMA.DLL, the DMA Framework kernel extension and as such must be built
       
    29 from the variant. </p>
       
    30 <p> <filepath>T_DMA.EXE</filepath> delegates most of the work to <filepath>D_DMA.LDD</filepath>,
       
    31 which is a logical device driver that acts as a client for the DMA Framework. <filepath>D_DMA.LDD</filepath> links
       
    32 statically against <filepath>DMA.DLL</filepath>, the DMA Framework kernel
       
    33 extension, and as such must be built from the variant. In practice, this means
       
    34 that <filepath>D_DMA.LDD</filepath> must be specified in the test <filepath>bld.inf</filepath> for
       
    35 the variant being ported. See <filepath>...\template_variant\test\bld.inf</filepath> for
       
    36 an example. </p>
       
    37 <p> <filepath>D_DMA.LDD</filepath> calls the <codeph>DmaTestInfo()</codeph> function
       
    38 in the PSL to discover the capacities of the PSL: number of channels, maximum
       
    39 transfer size, etc. This is the template implementation: </p>
       
    40 <codeblock id="GUID-AB52EDB6-B76A-5362-B8F6-64DBF7E39460" xml:space="preserve">TDmaTestInfo TestInfo =
       
    41     {
       
    42     0,
       
    43     0,
       
    44     0,
       
    45     0,
       
    46     NULL,
       
    47     0,
       
    48     NULL,
       
    49     0,
       
    50     NULL
       
    51     };
       
    52 
       
    53 </codeblock>
       
    54 <codeblock id="GUID-8A365AA3-9D88-5A62-9DE8-F5D7DFDEBAC4" xml:space="preserve">EXPORT_C const TDmaTestInfo&amp; DmaTestInfo()
       
    55 //
       
    56 //
       
    57 //
       
    58     {
       
    59     return TestInfo;
       
    60     }
       
    61 
       
    62 </codeblock>
       
    63 </conbody></concept>