Lesson03-设计启动用的汇编程序boot.S
上一节的链接脚本中定义了text.boot段,这一节中就用汇编语言实现。
#include "mm.h"
;定义段名
.section = "text.boot"
;定义全局变量
.global _start
_start:
;获取处理器的id
mrs x0, mpidr_el1
;判断id号是否为0
and x0, #0xFF
;若为0,进入下一步
cbz x0, master
;若不为0,进入循环语句
b proc_hang
;循环语句
proc_hang:
b proc_hang
;下一步
master:
;对bss段数据初始化为0
adr x0, bss_begin
adr x1, bss_end
sub x1, x1, x0
bl memzero
;初始化栈指针
mov sp, #LOW_MEMORY
bl kernel_main
b proc_hang