INTRODUCTION
MOTOROLA
BOOTSTRAP AND ROM CODE
A - 5
; This routine loads from external EPROM.
; MC:MB:MA=001
EPROMLD
MOVE
#BOOT,R1
; R1 = Ext address of EPROM
DO
#512,_LOOP1
; Load 512 instruction words
DO
#3,_LOOP2
; Each instruction has 3 bytes
MOVEM
P:(R1)+,A2
; Get the 8 LSB from ext. P mem.
REP
#8
; Shift 8 bit data into A1
ASR
A
_LOOP2
; Get another byte.
MOVEM
A1,P:(R0)+
; Store 24-bit result in P mem.
_LOOP1
; and go get another 24-bit word.
FINISH
MOVE
#<0,R1
JMP
<BOOTEND
; finish bootstrap
; This routine loads from the SCI.
; MC:MB:MA=110 - external SCI clock
; MC:MB:MA=111 - reserved
SCILD
MOVEP
#$0302,X:SCR
; Configure SCI Control Reg
JMP
<EXTC
; go to next boot rom segment
NOP
; just to fill the last space
ORG
PL:$100,PL:$100
; starting address of 2nd 32-word bootstrap ROM
EXTC
MOVEP
#$C000,X:SCCR
; Configure SCI Clock Control Reg
MOVEP
#7,X:PCC
; Configure SCLK, TXD and RXD
_SCI1
DO
#6,_LOOP6
; get 3 bytes for number of
; program words and 3 bytes
; for the starting address
JCLR
#2,X:SSR,*
; Wait for RDRF to go high
MOVEP
X:SRXL,A2
; Put 8 bits in A2
JCLR
#1,X:SSR,*
; Wait for TDRE to go high
MOVEP
A2,X:STXL
; echo the received byte
REP
#8
ASR
A
_LOOP6
MOVE
A1,R0
; starting address for load
MOVE
A1,R1
; save starting address
DO
A0,_LOOP4
; Receive program words
DO
#3,_LOOP5
JCLR
#2,X:SSR,*
; Wait for RDRF to go high
MOVEP
X:SRXL,A2
; Put 8 bits in A2
JCLR
#1,X:SSR,*
; Wait for TDRE to go high
MOVEP
A2,X:STXL
; echo the received byte
REP
#8
ASR
A
_LOOP5
MOVEM
A1,P:(R0)+
; Store 24-bit result in P mem.
_LOOP4
Figure A-1 DSP56002 Bootstrap Program (Sheet 2 of 3)
F
re
e
sc
a
le
S
e
m
ic
o
n
d
u
c
to
r,
I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
c
.
..