📄 startup.s
字号:
#
# Copyright (C) 2004 MITSUBISHI ELECTRIC CORPORATION and
# RENESAS SOLUTIONS CORPORATION and
# RENESAS TECHNOLOGY CORPORATION
# All Rights Reserved.
#
# Startup routine for user initialize program.
#
#############################################################################
.import _main
.text
.align 4
.global _startup
_startup:
# /* save return pointer */
sts.l pr, @-r15
# /* copy D section to R section */
mov.l D_START, r1
mov.l R_START, r2
cmp/eq r1, r2
bt l_noinit
mov.l R_END, r3
bra L1
nop
copydata:
mov.l @r1+, r0
mov.l r0, @r2
add #4, r2
L1:
cmp/hi r2, r3
bt copydata
# /* Clear B section */
mov.l B_START, r2
mov.l B_END, r3
bra l2
mov #0, r0
clearBsection:
mov.l r0, @-r3
l2:
cmp/hi r2, r3
bt clearBsection
l_noinit:
mov.l MAIN_START, r0
# jmp @r0
jsr @r0
nop
# /* restore return pointer then return with r0=1 */
rts
lds.l @r15+, pr
.ALIGN 4
D_START: .long __data_org # /* rom data start address */
R_START: .long __data_start # /* loaded data start address */
R_END: .long _edata # /* loaded data end address */
B_START: .long __bss_start
B_END: .long _end
MAIN_START: .long _userinit
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -