AN2095/DRev. 0, 04/2001Porting and OptimizingDSP56800 Applications toDSP56800EApplication Note by Cristian Caciuloiu, Radu Preda, Radu Bacrau, and Cos
6 Porting and Optimizing DSP56800 Applications to DSP56800E NOTE:Throughout this application note, 1 word equals 16 bits.The size of the data memory
Application Performance Comparison Optimizing the Ported Code 7Methods based on almost all the new DSP56800E features, which are summarized in Sectio
8 Porting and Optimizing DSP56800 Applications to DSP56800E The optimization techniques applied to the reference code to reach the speed and size imp
New Registers Optimizing the Ported Code 9The number of instruction words filling the delay slots must equal the number of delay slots. If some delay
10 Porting and Optimizing DSP56800 Applications to DSP56800E • Two new address registers, R4 and R5• A second offset register, N3• New loop address a
Immediate Operands Optimizing the Ported Code 11Code Example 7. Using Address Registers to Store Addressesdo #12,END_RX_BPF move x:>BPF_
12 Porting and Optimizing DSP56800 Applications to DSP56800E The improvement achieved by the AGU arithmetic is illustrated in Code Example 10, which
Operations and Memory Access on 32 Bits Optimizing the Ported Code 13Code Example 13. Copying a Buffer on DSP56800SECTION TX_MEM...tx_out ds 12 ; T
14 Porting and Optimizing DSP56800 Applications to DSP56800E 3.6 Operations and Memory Access on 8 BitsCompared to its predecessor, the DSP56800E a
New Addressing Modes and New Register Combinations in Data ALU Operations Optimizing the Ported Code 15For example, compare the instruction ADD on th
Freescale Semiconductor, I Freescale Semiconductor, Inc.For More Information On This Product, Go
16 Porting and Optimizing DSP56800 Applications to DSP56800E Code Example 22. Restrictions Removed Using MACR on DSP56800Edo #12,end_rx_demod ;Loop
RXDEMOD Writing DSP56800E Code from Scratch 17The main project contains only one place where two imbricated DO loops are used, in the function RXBPF
18 Porting and Optimizing DSP56800 Applications to DSP56800E The most important new features of the DSP56800E used in writing RXDEMOD from scratch we
RXEQERR Writing DSP56800E Code from Scratch 19The original code contains 10 register-to-register moves that compensate for the lack of accumulators a
20 Porting and Optimizing DSP56800 Applications to DSP56800E Code Example 28. Optimized Ported Code on DSP56800Emove.w #0,y1 ; 1 cycle, 1 word...ts
Data ALU Pipeline Dependencies Pipeline Effects on DSP56800E 21not occur on DSP56800 (specifically, data ALU pipeline dependencies and hardware loopi
22 Porting and Optimizing DSP56800 Applications to DSP56800E Between instruction n2 and n1 is a data ALU pipeline dependency. Because the result beco
Dependencies with Hardware Looping Converting Applications for Increased Data and Program Memory 23Code Example 33. Code Without AGU Pipeline Depen
24 Porting and Optimizing DSP56800 Applications to DSP56800E 6.1 Extending Data Memory Size From 64K to 16MThere are two assembler switches that in
Extending Program Memory Size From 64K to 2M Converting Applications for Increased Data and Program Memory 25Code size increased and speed decreased,
Abstract and Contents iiiThe DSP56800E’s DSP core architecture represents the next step in the evolution of Motorola’s 16-bit DSP56800 Family of dig
26 Porting and Optimizing DSP56800 Applications to DSP56800E Code Example 42. DSP56800 Original Coderx_next_tasklea (sp)+move x:>RxQ_ptr,r3 ; Re
Extending Program Memory Size From 64K to 2M Conclusions 277 ConclusionsThis application note investigated the process of porting an application deve
28 Porting and Optimizing DSP56800 Applications to DSP56800E compared to DSP56800. Also new optimization methods can be introduced to further increas
Functions Written from Scratch A-1Appendix AFunctions Written from ScratchA.1 Optimized Ported Version of RXDEMODRXDEMODmove.l #BPF_OUT,r3 ; Init.
A-2 Porting and Optimizing DSP56800 Applications to DSP56800E ; DEMODULATEmove.w b,b ; Saturate the outputmpy b1,y1,a x:(r3)+,y0 ; X*COS in a; Yiny0m
Functions Written from Scratch A-3A.3 Optimized Ported Version of RXEQERRRXEQERRmove.w #$0,nmoveu.w #EQX,r3moveu.w #DECX,r0moveu.w #DP,r1moveu.w #
A-4 Porting and Optimizing DSP56800 Applications to DSP56800E CAR_NOR; PHASE ERROR UNWRAP ROUTINEmove.w x:WRPFLG,b ; Get the WRPFLG; Get the phase er
Functions Written from Scratch A-5move.w #$0400,a ; tmp <- #$0400DO_DIVmove.w b,x0bfclr #$0001,srrep #11div x0,amove.w a0,aSET_DPeor c1,y1 ; comp
A-6 Porting and Optimizing DSP56800 Applications to DSP56800E Freescale Semiconductor, I Freescal
iv Porting and Optimizing DSP56800 Applications to DSP56800E 6 Converting Applications for Increased Data and Program Memory . . . . . . . 236.1 Exte
Introduction 11 IntroductionThe DSP56800E’s DSP core architecture represents the next step in the evolution of Motorola’s 16-bit DSP56800 Family of
2 Porting and Optimizing DSP56800 Applications to DSP56800E 1.1 Case StudyThe application chosen as an example to be ported was the implementation
Porting Process Application Porting 32.1 Porting ProcessTo set up the application to run on DSP56800E tools, the following steps were performed:1.
4 Porting and Optimizing DSP56800 Applications to DSP56800E Another case is when the (Rn) addressing mode is used and an LEA instruction updates the
Application Performance Comparison Application Porting 5To avoid this problem, scan the code for ADC, SBC, or DIV instructions that are run with the
Commentaires sur ces manuels