author | fturovic <frank.turovich@nokia.com> |
Thu, 18 Feb 2010 15:11:20 -0600 | |
branch | RCL_2_4 |
changeset 990 | 5d016a880824 |
parent 0 | fb279309251b |
permissions | -rw-r--r-- |
990
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
2 |
"http://www.w3.org/TR/html4/loose.dtd"> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
3 |
<html><head> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
4 |
<title>Using the MAKSYM tool in Debugging information</title> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
5 |
<link href="../../book.css" type="text/css" rel="stylesheet" > |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
6 |
<link href="sysdoc-eclipse.css" type="text/css" rel="stylesheet" media="screen"> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
7 |
<link href="sysdoc-eclipse.css" type="text/css" rel="stylesheet" media="print"> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
8 |
<div class="Head1"> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
9 |
|
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
10 |
<h2>Using the MAKSYM Tool</h2> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
11 |
</div><div> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
12 |
<p>MAKSYM is a command line tool that processes the log file generated |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
13 |
when building a ROM image, and creates a text file that lists the address of |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
14 |
every global and exported function in the ROM.</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
15 |
<p>Reference: tools: MAKSYM outlines |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
16 |
the syntax of the command.</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
17 |
<p>If you know the address of the instruction which caused an exception, |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
18 |
you can compare this address with the MAKSYM log to see which function this is |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
19 |
in. You can narrow this down to the exact code within the function by using |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
20 |
ABLD LISTING to get the assembler output from the compiler.</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
21 |
<p>The following example MAKSYM log is taken from an EKA1 build; |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
22 |
however, the principle is the same for EKA2.</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
23 |
<p class="listing">From \Epoc32\Release\Misa\UREL\ekern.exe<br> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
24 |
<br>50003040 0094 _E32Startup<br>500030d4 002c ImpDma::Init1(void)<br>50003100 0004 ImpDma::Init3(void)<br>50003104 0008 ImpDma::MaxBlockSize(void)</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
25 |
<p>If, for example, the code address of the exception is at |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
26 |
0x500030dc, then you can see from the log that this is in the |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
27 |
ImpDma::Init1() function, at offset 8 from the start of the |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
28 |
function. This function is in the file |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
29 |
...\e32\ekern\epoc\arm\sa1100\ka_dma.cpp, so use ABLD LISTING to |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
30 |
obtain the assembler:</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
31 |
<p class="listing">> cd \e32</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
32 |
<p class="listing">> abld listing misa urel ekern ka_dma </p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
33 |
<p>Notice that you must specify the component that the file is part of, |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
34 |
in this case EKERN, and that you do not put the .cpp extension on |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
35 |
the source file name. If you do not specify a source file ABLD will create an |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
36 |
assembler listing for every file in component EKERN.</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
37 |
<p>The listing file will be placed in the same directory as |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
38 |
ka_dma.cpp, and will be called ka_dma.lis. If you |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
39 |
look at this file you will see something like this:</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
40 |
<p class="listing">7 Init1__6ImpDma:<br> 8 @ args = 0, pretend = 0, frame = 0<br> 9 @ frame_needed = 0, current_function_anonymous_args = 0<br> 10 @ I don't think this function clobbers lr<br> 11 0000 18209FE5 ldr r2, .L793<br> 12 0004 0630A0E3 mov r3, #6<br> 13 0008 003082E5 str r3, [r2, #0]<br> 14 000c 10309FE5 ldr r3, .L793+4<br> 15 0010 10009FE5 ldr r0, .L793+8<br> 16 0014 000083E5 str r0, [r3, #0]<br> 17 0018 1810A0E3 mov r1, #24<br> 18 001c FEFFFFEA b FillZ__3MemPvi</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
41 |
<p>Offset 8 is the first STR instruction. Comparing this with the C++ |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
42 |
source:</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
43 |
<p class="listing">void ImpDma::Init1()<br>//<br>// Phase 1 initialisation of the Dma channels<br>//<br> {<br> PP::DmaMaxChannels=KNumberOfDmaChannels;<br> PP::DmaChannelTable=(TDma **)(&DmaChannels[0]);<br> Mem::FillZ(PP::DmaChannelTable,sizeof(TDma *)*KNumberOfDmaChannels);<br> }</p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
44 |
<p>The first store is to PP::DmaMaxChannels, so clearly there is a |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
45 |
problem writing this memory. </p> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
46 |
|
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
47 |
</div> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
48 |
<div id="footer">Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. <br>License: <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></div> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
49 |
</body> |
5d016a880824
revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
50 |
</html> |
0
fb279309251b
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
51 |