|
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& DmaTestInfo() |
|
55 // |
|
56 // |
|
57 // |
|
58 { |
|
59 return TestInfo; |
|
60 } |
|
61 |
|
62 </codeblock> |
|
63 </conbody></concept> |