📄 startup.s
字号:
; 启动文件,初始化C程序的运行环境,然后进入C程序代码。
IMPORT |Image$$RO$$Limit|
IMPORT |Image$$RW$$Base|
IMPORT |Image$$ZI$$Base|
IMPORT |Image$$ZI$$Limit|
IMPORT main ; 声明C程序中的Main()函数
CODE32 ; 声明32位ARM指令
AREA init,CODE,READONLY ; 声明代码段Start
ENTRY ; 标识程序入口
Reset
LDR SP,=0x40003F00 ; 设置堆栈指针
; 初始化C程序的运行环境
LDR R0,=|Image$$RO$$Limit|
LDR R1,=|Image$$RW$$Base|
LDR R3,=|Image$$ZI$$Base|
CMP R0,R1
BEQ LOOP1
LOOP0
CMP R1,R3;如果RW区不为空,将加载域的RW数据COPY到运行域
LDRCC R2,[R0],#4
STRCC R2,[R1],#4
BCC LOOP0
LOOP1
LDR R1,=|Image$$ZI$$Limit|
MOV R2,#0
LOOP2
CMP R3,R1;如果ZI区不为空,将ZI区域初始化为0
STRCC R2,[R3],#4
BCC LOOP2
B main ;跳转到c语言入口 Jump to the entry point of C program
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -