专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
今天看啥  ›  专栏  ›  嵌入式微处理器

RISC-V Linux汇编启动过程分析

嵌入式微处理器  · 公众号  ·  · 2024-11-28 12:00
    

文章预览

RISC-V Linux的汇编启动部分比较简单,不算复杂。有两个部分比较核心:页表创建和重定向。页表创建是用C语言写的,今天先分析汇编部分,先带大家分析整体汇编启动流程,然后再分析重定向。 注意:本文基于linux5.10.111内核 汇编启动流程 先从整体分析汇编做的事情,有个大体框架。 路径: arch/riscv/kernel/head.S ,入口是 ENTRY(_start_kernel) 从 ENTRY(_start_kernel) 开始进行启动前的一些初始化,建立页表前的主要工作: 关闭所有中断 /* 关闭所有中断 */ csrw CSR_IE, zero csrw CSR_IP, zero 加载全局指针gp /* 加载全局指针gp */ .option push .option norelax la gp, __global_pointer$ .option pop disable FPU /* 禁用 FPU 以检测内核空间中浮点的非法使用*/ li t0, SR_FS csrc CSR_STATUS, t0 选择一个核启动 /* 选择一个核启动 */ la a3, hart_lottery li a2, 1 amoadd.w a3, a2, (a3) bnez a3, .Ls ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览