DSP56366 Bootstrap Program
DSP56366 24-Bit Digital Signal Processor User Manual, Rev. 4
Freescale Semiconductor A-11
;; r5 = test fail flag = $000000
lua (r5)-,r7 ;; r7 = test pass flag = $FFFFFF
burnin_loop
do #9,burn1
;;----------------------------
;; test RAM
;; each pass checks 1 pattern
;;----------------------------
move p:(r6)+,x1 ;; pattern for x memory
move p:(r6)+,x0 ;; pattern for y memory
move p:(r6)+,y0 ;; pattern for p memory
;; write pattern to all memory locations
if (EQUALDATA) ;; x/y ram symmetrical
;; write x and y memory
clr a #start_dram,r0 ;; start of x/y ram
move #>length_dram,n0 ;; length of x/y ram
rep n0
mac x0,x1,a x,l:(r0)+ ;; exercise mac, write x/y ram
else ;; x/y ram not symmetrical
;; write x memory
clr a #start_xram,r0 ;; start of xram
move #>length_xram,n0 ;; length of xram
rep n0
mac x0,y0,a x1,x:(r0)+ ;; exercise mac, write xram
;; write y memory
clr a #start_yram,r1 ;; start of yram
move #>length_yram,n1 ;; length of yram
rep n1
mac x1,y0,a x0,y:(r1)+ ;; exercise mac, write yram
endif
;; write p memory
clr a #start_pram,r2 ;; start of pram
move #>length_pram,n2 ;; length of pram
rep n2
move y0,p:(r2)+ ;; write pram
;; check memory contents
if (EQUALDATA) ;; x/y ram symmetrical
;; check dram
clr a #start_dram,r0 ;; restore pointer, clear a
do n0,_loopd
move x:(r0),a1 ;; a0=a2=0
eor x1,a
add a,b ;; accumulate error in b