操作系统 原理与实现 LEC2:ARM64硬件结构与系统接口
在学习UESTC《嵌入式系统及应用》时做过简要总结
https://github.com/AceBlackbird/AssemblyLanguage/blob/main/ARM/ARM体系结构基础.pdf
ARM64寄存器

特权级
- EL0:用户态程序
- EL1:kernel(内核)
- EL2:MMU(虚拟机监控器)
- EL3:TrustZone相关
本课程主要涉及EL0~EL1
MMIO
- MMIO(Memory-mapped IO)
将设备映射到连续的物理内存中,使用相同的指令 - PIO (Port IO)
IO设备有独立的地址空间,使用特殊指令
AArch64使用MMIO
操作系统的启动过程
bootloader和kernel放在同一个ELF文件中,BootLoader位于.init段并通过链接器设置入口,Kernel位于text段
- 主CPU启动,其他次CPU等待
- 层级切换,跳转至EL1
- 准备C函数栈,设置异常向量
- 根据UART协议,进行内存空间的初始化
- 初始化页表,开启MMU。此时将kernel代码映射到低地址段和高地址段两份,方便访问。
- 进入Kernel。跳转到Kernel的main函数,真正进入操作系统,然后开启OS的各种服务。
后续课程实验在虚拟机环境中的ARM模拟器(包含CPU、内存和各种设备)。

浙公网安备 33010602011771号