parent
34ec65f2a8
commit
3047e32dfd
|
@ -33,18 +33,19 @@
|
||||||
/* idle a little initially because 'u-boot' likes it this way */
|
/* idle a little initially because 'u-boot' likes it this way */
|
||||||
_nop 8
|
_nop 8
|
||||||
|
|
||||||
/* zero-fill BSS segment */
|
/* zero-fill BSS segment, BSS boundaries must be aligned to 4 */
|
||||||
.extern _bss_start
|
.extern _bss_start
|
||||||
.extern _bss_end
|
.extern _bss_end
|
||||||
ldr r0, =_bss_start
|
ldr r0, =_bss_start
|
||||||
ldr r1, =_bss_end
|
ldr r1, =_bss_end
|
||||||
mov r2, #0
|
mov r2, #0
|
||||||
sub r1, r1, #4
|
|
||||||
1:
|
1:
|
||||||
|
cmp r1, r0
|
||||||
|
ble 2f
|
||||||
str r2, [r0]
|
str r2, [r0]
|
||||||
add r0, r0, #4
|
add r0, r0, #4
|
||||||
cmp r0, r1
|
b 1b
|
||||||
bne 1b
|
2:
|
||||||
|
|
||||||
/* enable C++ to prepare the first kernel run */
|
/* enable C++ to prepare the first kernel run */
|
||||||
ldr sp, =_kernel_stack_high
|
ldr sp, =_kernel_stack_high
|
||||||
|
@ -57,7 +58,7 @@
|
||||||
bl kernel
|
bl kernel
|
||||||
|
|
||||||
/* catch erroneous kernel return */
|
/* catch erroneous kernel return */
|
||||||
2: b 2b
|
3: b 3b
|
||||||
|
|
||||||
/* handle for dynamic symbol objects */
|
/* handle for dynamic symbol objects */
|
||||||
.align 3
|
.align 3
|
||||||
|
|
|
@ -109,10 +109,10 @@ SECTIONS
|
||||||
} : rw
|
} : rw
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_bss_start = .;
|
_bss_start = ALIGN(4);
|
||||||
*(.bss .bss.* .gnu.linkonce.b.* COMMON)
|
*(.bss .bss.* .gnu.linkonce.b.* COMMON)
|
||||||
}
|
}
|
||||||
_bss_end = .;
|
_bss_end = ALIGN(4);
|
||||||
_prog_img_end = .;
|
_prog_img_end = .;
|
||||||
|
|
||||||
/DISCARD/ : {
|
/DISCARD/ : {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user