%PDF-1.6
%
1 0 obj
<<
/PageMode /UseOutlines
/Names 2 0 R
/Outlines 3 0 R
/Metadata 4 0 R
/Pages 5 0 R
/OpenAction 6 0 R
/Type /Catalog
/PageLabels 7 0 R
>>
endobj
8 0 obj
<<
/CreationDate (D:20020605135706Z)
/Subject <5468697320646F63756D656E742064657363726962657320686F7720746F2074756E65206578697374696E67204320636F646520666F72206265737420706572666F726D616E6365206F6E20467265657363616C652053746172436F7265922D626173656420445350732028696E636C7564696E672053433134302C205343313430652C205343313430302C20616E642053433334303020636F72652D62617365642070726F636573736F7273292E2054686520646F63756D656E742070726573656E7473207469707320746F2068656C70207468652070726F6772616D6D657220717569636B6C79206F7074696D697A6520636F646520666F72207468652053746172436F72652074617267657420706C6174666F726D732E2054686520676F616C20697320746F206173736973742070726F6772616D6D657273206D6F76696E67204320636F64652066726F6D20616E6F7468657220706C6174666F726D20746F2053746172436F7265206F722074756E696E67206578697374696E672053746172436F726520636F646520746F206F627461696E20746865206265737420706572666F726D616E63652E>
/Author (Freescale Semiconductor, Inc.)
/Creator (FrameMaker 7.2)
/Keywords (StarCore, DSP, SC140, SC140e, SC1400, SC3400)
/Producer (Acrobat Distiller 7.0.5 \(Windows\))
/ModDate (D:20080702111215-05'00')
/Title (Tuning C Code for StarCore-Based Digital Signal Processors)
>>
endobj
2 0 obj
<<
/Dests 9 0 R
>>
endobj
3 0 obj
<<
/First 10 0 R
/Count 8
/Last 11 0 R
>>
endobj
4 0 obj
<<
/Subtype /XML
/Length 4314
/Type /Metadata
>>
stream
Acrobat Distiller 7.0.5 (Windows)
StarCore, DSP, SC140, SC140e, SC1400, SC3400
2002-06-05T13:57:06Z
FrameMaker 7.2
2008-07-02T11:12:15-05:00
2008-07-02T11:12:15-05:00
application/pdf
Freescale Semiconductor, Inc.
This document describes how to tune existing C code for best performance on Freescale StarCore™-based DSPs (including SC140, SC140e, SC1400, and SC3400 core-based processors). The document presents tips to help the programmer quickly optimize code for the StarCore target platforms. The goal is to assist programmers moving C code from another platform to StarCore or tuning existing StarCore code to obtain the best performance.
Tuning C Code for StarCore-Based Digital Signal Processors
uuid:a900575b-00a2-4fba-95a9-91d7e2b4ea70
uuid:fe979681-1df5-4039-ad66-3b1e2a7a409d
endstream
endobj
5 0 obj
<<
/Count 20
/Type /Pages
/Kids [12 0 R 13 0 R]
>>
endobj
6 0 obj
<<
/D [14 0 R /Fit]
/S /GoTo
>>
endobj
7 0 obj
<<
/Nums [0 15 0 R]
>>
endobj
9 0 obj
<<
/Kids [16 0 R 17 0 R]
>>
endobj
10 0 obj
<<
/Parent 3 0 R
/A 18 0 R
/Next 19 0 R
/Title <54756E696E67204320436F646520666F722053746172436F7265AE2D4261736564204469676974616C205369676E616C2050726F636573736F7273>
>>
endobj
11 0 obj
<<
/Parent 3 0 R
/Dest (G377300)
/Prev 20 0 R
/Title (7 References)
>>
endobj
12 0 obj
<<
/Parent 5 0 R
/Count 10
/Type /Pages
/Kids [14 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R]
>>
endobj
13 0 obj
<<
/Parent 5 0 R
/Count 10
/Type /Pages
/Kids [30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R]
>>
endobj
14 0 obj
<<
/CropBox [0 0 612 792]
/Parent 12 0 R
/Contents [40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 49 0 R
/Type /Page
>>
endobj
15 0 obj
<<
/S /D
>>
endobj
16 0 obj
<<
/Limits [(F) (G379910)]
/Names [(F) 50 0 R (G368201) 51 0 R (G368210) 52 0 R (G368285) 53 0 R (G368650) 54 0 R
(G368672) 55 0 R (G368943) 56 0 R (G369191) 57 0 R (G370133) 58 0 R (G370146) 59 0 R
(G370306) 60 0 R (G370341) 61 0 R (G370354) 62 0 R (G370362) 63 0 R (G370368) 64 0 R
(G370421) 65 0 R (G371085) 66 0 R (G371118) 67 0 R (G371127) 68 0 R (G371473) 69 0 R
(G373017) 70 0 R (G373032) 71 0 R (G373066) 72 0 R (G373236) 73 0 R (G373312) 74 0 R
(G373313) 75 0 R (G373352) 76 0 R (G373385) 77 0 R (G373411) 78 0 R (G373443) 79 0 R
(G373541) 80 0 R (G374329) 81 0 R (G374416) 82 0 R (G374735) 83 0 R (G374768) 84 0 R
(G374819) 85 0 R (G374919) 86 0 R (G374948) 87 0 R (G375120) 88 0 R (G375375) 89 0 R
(G375804) 90 0 R (G375906) 91 0 R (G375907) 92 0 R (G376051) 93 0 R (G376052) 94 0 R
(G376055) 95 0 R (G376058) 96 0 R (G376097) 97 0 R (G376534) 98 0 R (G376651) 99 0 R
(G376916) 100 0 R (G376927) 101 0 R (G376985) 102 0 R (G377010) 103 0 R (G377022) 104 0 R
(G377082) 105 0 R (G377083) 106 0 R (G377122) 107 0 R (G377300) 108 0 R (G377318) 109 0 R
(G377604) 110 0 R (G378542) 111 0 R (G379622) 112 0 R (G379910) 113 0 R]
>>
endobj
17 0 obj
<<
/Limits [(G379942) (P.9)]
/Names [(G379942) 114 0 R (I1.371557) 115 0 R (I1.371559) 116 0 R (I1.371560) 117 0 R (I1.371583) 118 0 R
(I1.371588) 119 0 R (I1.371589) 120 0 R (I1.371629) 121 0 R (I1.371631) 122 0 R (I1.371632) 123 0 R
(I1.377716) 124 0 R (I1.378041) 125 0 R (I1.378353) 126 0 R (I1.378389) 127 0 R (I1.378607) 128 0 R
(I1.378691) 129 0 R (I1.378860) 130 0 R (I1.379673) 131 0 R (I1.379773) 132 0 R (I1.379775) 133 0 R
(I1.379845) 134 0 R (I1.379939) 135 0 R (L) 136 0 R (M9.26941.TBTitle.Table4.Sample.Profiler.Output) 137 0 R (M9.39956.FigTitle.Figure9.Function.using.aligned.data.left.and.resulting.code.right) 138 0 R
(M9.42132.TBTitle.Table5.Data.Types.in.Registers.and.Memory) 139 0 R (M9.45676.FigTitle.Figure5.C.source.for.a.simple.addition.of.type.short.left.assembly.code.generated.) 140 0 R (M9.52382.Heading3.36.Fractional.Intrinsics) 141 0 R (M9.53104.FigTitle.Figure10.Example.Reference.to.Arrays) 142 0 R (M9.54918.Heading2.7.References) 143 0 R
(M9.57867.TBTitle.Table1.Freescale.DSPs.and.StarCore.Cores) 144 0 R (M9.74003.FigTitle.Figure8.Example.using.intrinsics.left.and.corresponding.assembly.code.right) 145 0 R (M9.95721.FigTitle.Figure2.Instruction.Sequences.for.Fractional.and.Integer.Operations) 146 0 R (P.1) 147 0 R (P.10) 148 0 R
(P.11) 149 0 R (P.12) 150 0 R (P.13) 151 0 R (P.14) 152 0 R (P.15) 153 0 R
(P.16) 154 0 R (P.17) 155 0 R (P.18) 156 0 R (P.19) 157 0 R (P.2) 158 0 R
(P.20) 159 0 R (P.3) 160 0 R (P.4) 161 0 R (P.5) 162 0 R (P.6) 163 0 R
(P.7) 164 0 R (P.8) 165 0 R (P.9) 166 0 R]
>>
endobj
18 0 obj
<<
/D [14 0 R /Fit]
/S /GoTo
>>
endobj
19 0 obj
<<
/First 167 0 R
/Parent 3 0 R
/Next 168 0 R
/Dest (G368650)
/Count -4
/Last 169 0 R
/Prev 10 0 R
/Title (1 StarCore Architecture Overview)
>>
endobj
20 0 obj
<<
/Parent 3 0 R
/Next 11 0 R
/Dest (G371085)
/Prev 170 0 R
/Title (6 SC3400-Specific Recommendations)
>>
endobj
21 0 obj
<<
/CropBox [0 0 612 792]
/Annots [171 0 R]
/Parent 12 0 R
/Contents [172 0 R 173 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 174 0 R
/Type /Page
>>
endobj
22 0 obj
<<
/CropBox [0 0 612 792]
/Parent 12 0 R
/Contents [175 0 R 176 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 177 0 R
/Type /Page
>>
endobj
23 0 obj
<<
/CropBox [0 0 612 792]
/Annots [178 0 R]
/Parent 12 0 R
/Contents [179 0 R 180 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 181 0 R
/Type /Page
>>
endobj
24 0 obj
<<
/CropBox [0 0 612 792]
/Parent 12 0 R
/Contents [182 0 R 183 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 184 0 R
/Type /Page
>>
endobj
25 0 obj
<<
/CropBox [0 0 612 792]
/Annots [185 0 R]
/Parent 12 0 R
/Contents [186 0 R 187 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 188 0 R
/Type /Page
>>
endobj
26 0 obj
<<
/CropBox [0 0 612 792]
/Annots [189 0 R 190 0 R]
/Parent 12 0 R
/Contents [191 0 R 192 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 193 0 R
/Type /Page
>>
endobj
27 0 obj
<<
/CropBox [0 0 612 792]
/Annots [194 0 R]
/Parent 12 0 R
/Contents [195 0 R 196 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 197 0 R
/Type /Page
>>
endobj
28 0 obj
<<
/CropBox [0 0 612 792]
/Annots [198 0 R]
/Parent 12 0 R
/Contents [199 0 R 200 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 201 0 R
/Type /Page
>>
endobj
29 0 obj
<<
/CropBox [0 0 612 792]
/Annots [202 0 R 203 0 R 204 0 R 205 0 R]
/Parent 12 0 R
/Contents [206 0 R 207 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 208 0 R
/Type /Page
>>
endobj
30 0 obj
<<
/CropBox [0 0 612 792]
/Annots [209 0 R]
/Parent 13 0 R
/Contents [210 0 R 211 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 212 0 R
/Type /Page
>>
endobj
31 0 obj
<<
/CropBox [0 0 612 792]
/Annots [213 0 R]
/Parent 13 0 R
/Contents [214 0 R 215 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 216 0 R
/Type /Page
>>
endobj
32 0 obj
<<
/CropBox [0 0 612 792]
/Parent 13 0 R
/Contents [217 0 R 218 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 219 0 R
/Type /Page
>>
endobj
33 0 obj
<<
/CropBox [0 0 612 792]
/Annots [220 0 R]
/Parent 13 0 R
/Contents [221 0 R 222 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 223 0 R
/Type /Page
>>
endobj
34 0 obj
<<
/CropBox [0 0 612 792]
/Parent 13 0 R
/Contents [224 0 R 225 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 226 0 R
/Type /Page
>>
endobj
35 0 obj
<<
/CropBox [0 0 612 792]
/Parent 13 0 R
/Contents [227 0 R 228 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 229 0 R
/Type /Page
>>
endobj
36 0 obj
<<
/CropBox [0 0 612 792]
/Parent 13 0 R
/Contents [230 0 R 231 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 232 0 R
/Type /Page
>>
endobj
37 0 obj
<<
/CropBox [0 0 612 792]
/Parent 13 0 R
/Contents [233 0 R 234 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 235 0 R
/Type /Page
>>
endobj
38 0 obj
<<
/CropBox [0 0 612 792]
/Parent 13 0 R
/Contents [236 0 R 237 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 238 0 R
/Type /Page
>>
endobj
39 0 obj
<<
/CropBox [0 0 612 792]
/Parent 13 0 R
/Contents [239 0 R 240 0 R]
/Rotate 0
/MediaBox [0 0 612 792]
/Resources 241 0 R
/Type /Page
>>
endobj
40 0 obj
<<
/Length 868
/Filter /FlateDecode
>>
stream
HlUn1W؍eق%}CP3Ae|ɫ;3QqUٹx{Eax9d8/%or|3\:$ʙr;luy3/~E3>aQo8!Ku$|D-?vdFaapJ.ToRpkdN2 ȟؐٙZ@'s3pԗ-
Uz$S:fE-6>r"0EɆNFL̓wS`1j' NYg|" n>799סb[b4צ"