本文是使用meson构建程序的一个笔记,现在很多程序都是使用meson构建的,比如qemu、 glib库等,了解下meson的基本逻辑在使用用meson构建的程序时逻辑会更加清晰。 本文中的测试程序运行环境是ARM版本的ubuntu 20.04,示例使用的glib的版本是2.76.1。
qemu tcg中间码优化和后端翻译
本文介绍qemu tcg下中间码翻译和后端翻译的基本逻辑,代码分析基于qemu v7.1.50, 文中涉及的测试场景,我们选择riscv作为guest、arm64作为host。
riscv AIA基本逻辑分析
本文分析riscv AIA的基本逻辑。目前,相关的代码还在社区review,分析使用的代码为, qemu使用v7.1.50主线代码,内核使用https://github.com/avpatel/linux riscv_aia_v2分支。
opensbi设备驱动模型
本文简单分析下Opensbi里的设备驱动模型,分析基于opensbi 1.1版本。
riscv内存模型分析
本文整理riscv的内存模型,基于riscv unprivileged ISA 20191213这个版本。其实 对于使用弱内存序的构架,它们的内存模型都是比较相似的,无非是细节上有可能有 一点不一样,本文也可以做为弱内存序相关的一个基础介绍。
qemu tcg中riscv page table walk分析
本文分析riscv上page table walk的逻辑,这部分逻辑一般是硬件完成了,我们这里 分析qemu tcg对page table walk的模拟实现,从模拟中我们也可以看到其中的基本逻辑, 本文会分析整个page table walk的细节,并且分析整个两级地址翻译的流程,只有这样 才能彻底看清整个地址翻译流程。分析基于的qemu版本是v7.1.50。
qemu模拟ARM构架综合分析-TCG
本文分析qemu模拟ARM平台的方式,我们并不会深入分析相关的技术细节,只是大概 看下整体构架,点出各个模拟的关键点,保证我们在随后的深入分析中可以迅速找见 相关代码。
qemu中basic block以及tcg中各种变量的基本逻辑
在实现一个CPU架构的QEMU前端指令翻译的时候会用到各种tcg变量,本文整理这些 变量的基本语意,分析背后的qemu代码。本文分析基于的QEMU版本是6.2.0, 基于riscv CPU体系结构。
qemu tcg取指令逻辑分析
本文分析qemu tcg里vCPU取指令实现逻辑的分析,基于的qemu版本是v7.1.50,分析基于riscv平台。
qemu tlb实现分析
本文分析qemu tcg里tlb实现的逻辑,分析基于的qemu版本是v7.1.50, 基于riscv构架。