Texas Instruments TMS320C3x User Manual

Page 723

Advertising
background image

TMS320C31 Boot Loader Source Code

B-6

LDI

*+AR0(4Ch),R1

LDI

R0,R0

; test load address flag

BNN

end_s

load_s

STI

R1,*AR4++(1)

; store new word to dest. address

end_s

RETSU

; return from subroutine

.space 22

loop_h

RPTB

load_h

; PGM load loop

sub_h

LDI

*AR1++(1),R1

; load LSB half word

AND

0FFFFh,R1

LDI

*AR1++(1),R2

; load MSB half word

LSH

16,R2

OR

R2,R1

; R1 = a new 32-bit word

LDI

R0,R0

; test load address flag

BNN

end_h

load_h

STI

R1,*AR4++(1)

; store new word to dest. address

end_h

RETSU

; return from subroutine

.space 26

loop_w

RPTB

load_w

; PGM load loop

sub_w

LDI

*AR1++(1),R1

; read a new 32-bit word

LDI

R0,R0

; test load address flag

BNN

end_w

load_w

STI

R1,*AR4++(1)

; store new word to dest. address

end_w

RETSU

; return from subroutine

.space 14

loop_b

RPTB

load_b

; PGM load loop

sub_b

LDI

*AR1++(1),R1

AND

0FFh,R1

; load 1st byte ( LSB )

LDI

*AR1++(1),R2

AND

0FFh,R2

LSH

8,R2

OR

R2,R1

; load 2nd byte

LDI

*AR1++(1),R2

AND

0FFh,R2

LSH

16,R2

OR

R2,R1

; load 3rd byte

LDI

*AR1++(1),R2

; load 4th byte ( MSB )

LSH 24,R2

OR

R2,R1

; R1 = a new 32-bit word

LDI

R0,R0

; test load address flag

BNN

end_b

load_b

STI

R1,*AR4++(1)

; store new word to dest. address

end_b

RETSU

; return from subroutine

.space 1

.end

Advertising