自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 打印函数printf.c代码分析

打印函数printf.c代码分析 接下来我们来看一下打印函数的代码,打印函数属于工具函数,首先我们来看一下打印整数的函数,如下图所示: printint 函数可以打印十进制,八进制,十六进制,二进制等格式的数字,函数的第一个参数是要打印的数字xx, 第二个是指定多少进制,第三个参数是指定是否是有符号数,这里以十进制为例,则第二个参数是10,首先要看是不是有符号数,如果是有符号数,先把它转换成正数,第41到43行把数字xx从低位到高位依次转换成ascii码,存储在字符数组buf中,这里利用了取余和除这两

2020-08-15 12:09:02 489

原创 main.c代码阅读

main.c 代码阅读 main.c文件里面就一个函数,也就是main函数,它主要的功能是对各个模块进行初始化工作,然后运行调度器。代码如下图所示: 第13行用来判断当前cpu是主cpu还是从cpu,如果是主cpu,那么将执行一系列的初始化动作,依次是14行的控制台初始化,15行的打印模块初始化,19和20行创建内核页表,21行打开分页机制,22行创建进程表,接下来的两行是设置系统中断向量和系统中断初始化,接下来是设备中断初始化,27和28行是磁盘节点和磁盘缓冲初始化,29行是文件系统初始化,30是磁盘初始

2020-08-14 22:43:59 2937

原创 start.c代码分析

start.c代码分析 start.c包含了main函数运行前被调用的语句,如下图所示: 11行定义了在上一篇文章里声明的stack0符号,它要求16bit对齐, 14行定义了共享变量,它是和timer驱动之间传递数据用的,在接下来的代码中可以看到,17行声明了timer中断处理函数,它会在接下来的timer初始化函数中被用到。第21行进入了start函数,第24~27行使CPU进入supervisor模式,第31行设置了汇编指令mret后,pc 指针跳转的函数(也就是主角main函数),第34行关闭分页功

2020-08-14 21:49:50 718

原创 xv6启动代码分析

xv6启动代码分析 xv6启动部分的代码是在entry.S中,这个文件中的代码比较短,如图1所示: 图1 首先声明了一个外部符号:stack0,把它作为每个CPU上的栈的起始地址,然后按照16行的计算公式,算出每个cpu对应的栈起始地址,17行首先把stack0的地址读到sp寄存器中,18行把4096这个立即数读到a0寄存器中,19行把当前cpu id读到a1寄存器中,然后按照 sp = stack0 + (hartid * 4096)算出栈地址并且放到sp寄存器中,第24行跳转指令跳到start函数中执

2020-08-14 21:00:28 556

原创 risc-v C程序调用规范 (calling conventions)

risc-v C程序调用规范 (calling conventions) 在上一篇文章里,已经介绍了如何搭建xv6的运行环境,在这一篇文章介绍一下risc-v C调用规范。 首先看一下C语言下的数据类型在risc-v下所占据的大小,如下图: 可以看出除了long和void*的大小是和平台有关,其他类型无论是在32位还是64位平台上,他们的大小都是一样的。 函数调用规范 在risc-v平台上,有8个整形寄存器(a0a7),8个浮点寄存器(fa0fa7)。 a.如果函数的参数是结构体成员,那么每个

2020-08-14 20:26:34 2147

原创 risc-v版本xv6运行环境设置

risc-v版本xv6运行环境设置 我打算写一系列文章,试着用来介绍risc-v版本xv6的源代码,xv6是MIT为其操作系统课程开发的教学操作系统。它的代码量不大,总共1万多行代码。代码量不算大,可以硬着头皮把它读完,并分享给大家,希望大家能够批评指正。首先从最基本的准备工作开始:搭建risc-v版本的运行环境。 我是在windows 7下搭建的,需要以下几个部分: 虚拟机:virtual box 6.1 大家可以去virtual box官网https://www.virtualbox.org/下载安

2020-08-14 20:23:52 1525

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除