URL
https://opencores.org/ocsvn/eco32/eco32/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 18 |
Rev 95 |
;
|
;
|
; start.s -- startup code
|
; start.s -- startup code
|
;
|
;
|
|
|
.import main
|
.import main
|
.import _ecode
|
.import _ecode
|
.import _edata
|
.import _edata
|
.import _ebss
|
.import _ebss
|
|
|
.export _bcode
|
.export _bcode
|
.export _bdata
|
.export _bdata
|
.export _bbss
|
.export _bbss
|
|
|
.code
|
.code
|
_bcode:
|
_bcode:
|
|
|
.data
|
.data
|
_bdata:
|
_bdata:
|
|
|
.bss
|
.bss
|
_bbss:
|
_bbss:
|
|
|
.code
|
.code
|
|
|
; reset arrives here
|
|
reset:
|
|
j start
|
|
|
|
; interrupts arrive here
|
|
intrpt:
|
|
j intrpt
|
|
|
|
; user TLB misses arrive here
|
|
userMiss:
|
|
j userMiss
|
|
|
|
start:
|
start:
|
mvfs $8,0
|
mvfs $8,0
|
or $8,$8,1 << 27 ; let vector point to RAM
|
or $8,$8,1 << 27 ; let vector point to RAM
|
mvts $8,0
|
mvts $8,0
|
add $29,$0,stack ; set sp
|
add $29,$0,stack ; set sp
|
add $10,$0,_bdata ; copy data segment
|
add $10,$0,_bdata ; copy data segment
|
add $8,$0,_edata
|
add $8,$0,_edata
|
sub $9,$8,$10
|
sub $9,$8,$10
|
add $9,$9,_ecode
|
add $9,$9,_ecode
|
j cpytest
|
j cpytest
|
cpyloop:
|
cpyloop:
|
ldw $11,$9,0
|
ldw $11,$9,0
|
stw $11,$8,0
|
stw $11,$8,0
|
cpytest:
|
cpytest:
|
sub $8,$8,4
|
sub $8,$8,4
|
sub $9,$9,4
|
sub $9,$9,4
|
bgeu $8,$10,cpyloop
|
bgeu $8,$10,cpyloop
|
add $8,$0,_bbss ; clear bss
|
add $8,$0,_bbss ; clear bss
|
add $9,$0,_ebss
|
add $9,$0,_ebss
|
j clrtest
|
j clrtest
|
clrloop:
|
clrloop:
|
stw $0,$8,0
|
stw $0,$8,0
|
add $8,$8,4
|
add $8,$8,4
|
clrtest:
|
clrtest:
|
bltu $8,$9,clrloop
|
bltu $8,$9,clrloop
|
jal main ; call 'main'
|
jal main ; call 'main'
|
start1:
|
start1:
|
j start1 ; loop
|
j start1 ; loop
|
|
|
.bss
|
.bss
|
|
|
.align 4
|
.align 4
|
.space 0x800
|
.space 0x800
|
stack:
|
stack:
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.