0%

本文分析risvc中原子指令的定义,以及qemu里的实现方式,qemu的代码是6.2.50,riscv spec的版本是20191213

阅读全文 »

本文是《程序员的自我修养》这本书的笔记,N年前上学的时候看过,如今再回来重新 看下。这本书从操作层面介绍了编译链接和库相关的知识,可以把它当作是深入学习 编译原理的一个导读。本文只是摘出其中的要点,必要的演示我们重新基于riscv搞下。

阅读全文 »

head.S是Linux内核最初阶段对机器初始化的代码,和体系构架相关,其中定义 了三个符号:_start, _start_kernel, reset_regs。主要问题集中在:1. 内存初始化? 2. 怎么起多核? 目前只看了单核启动相关的东西,而且所有不常用的内核配置先跳过不看。笔记在注释里,以n:开始。 分析基于Linux 5.17-rc3

阅读全文 »

qemu自己提供了debug接口,可以观察到机器自身的状态,比如,可以查看程序运行 时CPU各个寄存器的变化。本文分析相关的使用方法和qemu代码逻辑。本文以一个简单的例子说明使用方式,以riscv平台为基础。以qemu user mode为例 说明,system mode是一样的。分析中使用的qemu的版本是5.1.50

阅读全文 »

一直没有系统的看看gdb的使用方法,用这个文档持续记录下gdb的使用技巧。

阅读全文 »

本文是qemu user mode的一个速记,简单分析相关的代码、构建以及使用方法。 具体以riscv为例说明。

阅读全文 »