URL
https://opencores.org/ocsvn/eco32/eco32/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 62 |
Rev 200 |
;
|
;
|
; copy.s -- copy a program from ROM to RAM before executing it
|
; copy.s -- copy a program from ROM to RAM before executing it
|
;
|
;
|
|
|
.set dst,0xC0000000 ; destination is start of RAM
|
.set dst,0xC0000000 ; destination is start of RAM
|
.set len,0x0000C000 ; number of bytes to be copied
|
.set len,0x0000FF00 ; number of bytes to be copied
|
|
|
.set PSW,0 ; reg # of PSW
|
.set PSW,0 ; reg # of PSW
|
|
|
reset:
|
reset:
|
j start
|
j start
|
|
|
interrupt:
|
interrupt:
|
j interrupt ; we better have no interrupts
|
j interrupt ; we better have no interrupts
|
|
|
userMiss:
|
userMiss:
|
j userMiss ; and no user TLB misses
|
j userMiss ; and no user TLB misses
|
|
|
start:
|
start:
|
mvts $0,PSW ; disable interrupts and user mode
|
mvts $0,PSW ; disable interrupts and user mode
|
add $8,$0,src
|
add $8,$0,src
|
add $9,$0,dst
|
add $9,$0,dst
|
add $10,$9,len
|
add $10,$9,len
|
loop:
|
loop:
|
ldw $11,$8,0 ; copy word
|
ldw $11,$8,0 ; copy word
|
stw $11,$9,0
|
stw $11,$9,0
|
add $8,$8,4 ; bump pointers
|
add $8,$8,4 ; bump pointers
|
add $9,$9,4
|
add $9,$9,4
|
bltu $9,$10,loop ; more?
|
bltu $9,$10,loop ; more?
|
add $8,$0,dst ; start execution
|
add $8,$0,dst ; start execution
|
jr $8
|
jr $8
|
|
|
; the program to be copied follows immediately
|
; the program to be copied follows immediately
|
src:
|
src:
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.