version 1.3, 2007/11/09 11:54:14 |
version 1.8, 2007/11/20 18:40:02 |
|
|
_vector_reset: |
_vector_reset: |
/* |
/* |
* Will enter here just right after RESET. |
* Will enter here just right after RESET. |
* Set up stack and call main. |
* Relocate .data & .bss into SRAM, set up stack and call main. |
*/ |
*/ |
|
|
|
/* load .data addr */ |
|
ldr r1, Aflash_sdata |
|
|
|
/* load end of FLASH */ |
|
ldr r2, Aflash_edata |
|
|
|
/* will copy data in sram starting from that addr */ |
|
ldr r3, Asram_sdata |
|
|
/* |
/* |
|
* Copy data in sram |
|
*/ |
|
loop: |
|
ldr r4, [r1], #4 /* fetch from flash, increment flash_sdata */ |
|
str r4, [r3], #4 /* store to sram, increment sram_sdata */ |
|
cmp r1, r2 /* compare with flash_edata */ |
|
blo loop |
|
|
|
/* |
* Setup an IRQ stack |
* Setup an IRQ stack |
*/ |
*/ |
/* switch into irq mode with interrupts disabled */ |
/* switch into irq mode with interrupts disabled */ |
|
|
/* set system stack pointer */ |
/* set system stack pointer */ |
ldr sp, Asysstack |
ldr sp, Asysstack |
|
|
b main |
bl main |
/* NOTREACHED */ |
/* NOTREACHED */ |
|
|
_vector_undef: |
_vector_undef: |
|
|
_vector_fiq: |
_vector_fiq: |
nop |
nop |
|
|
|
Aflash_sdata: |
|
.word 0x0000f000 |
|
|
|
Aflash_edata: |
|
.word 0x0000fffc |
|
|
|
Asram_sdata: |
|
.word 0x00200000 |
|
|
/* last word of the physical memory */ |
/* last word of the physical memory */ |
Asysstack: |
Asysstack: |
.word 0x00203fff |
.word 0x00203ffc |
|
|
Airqstack: |
Airqstack: |
.word 0x00202fff |
.word 0x00203c00 |
|
|