2016-04-12 12:35:59 +02:00

57 lines
1.0 KiB
ArmAsm

#ifdef EXEC_GATEWAY
.section .text.start
.global _start
.align 4
.arm
_vectors:
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
_start:
ldr sp,=0x22140000
@@wait for the arm11 kernel threads to be ready
ldr r1, =0x10000
waitLoop9:
sub r1, #1
cmp r1, #0
bgt waitLoop9
ldr r1, =0x10000
waitLoop92:
sub r1, #1
cmp r1, #0
bgt waitLoop92
@ Enable caches
mrc p15, 0, r4, c1, c0, 0 @ read control register
orr r4, r4, #(1<<18) @ - itcm enable
orr r4, r4, #(1<<12) @ - instruction cache enable
orr r4, r4, #(1<<2) @ - data cache enable
orr r4, r4, #(1<<0) @ - mpu enable
mcr p15, 0, r4, c1, c0, 0 @ write control register
ldr sp,=0x22160000
ldr r3, =main
blx r3
.pool
InfiniteLoop:
b InfiniteLoop
#endif // EXEC_GATEWAY