SylixOS

RISCV基础开发(七)

QEMU裸机开发之格式化打印 在前面的程序中我们实现了简单的字符串输出函数,在实际使用时,我们还需要进行格式化打印,比如打印某个变量的值,按十进制或者十六进制打印等等,本章节我们在“uart.c”中实...
阅读全文
Xv6

Xv6内核分析(三.10)

main函数之tvinit 1. 中断描述符 中断描述符表idt共有256个项目,每个条目8字节,根据每个条目的类型不同,共有3种不同的门描述符如下: 在xv6中的设置idt代码如下: 注意,这个id...
阅读全文
SylixOS

SylixOS BSP开发(八)

初始化FPU、MMU和Cache组件 本来想在不初始化这些部件的情况下把SylixOS先启动起来感受下,结果测试发现如果MMU不使能的话,系统启动过程中线程无法进行调度emm。。。所以只好把这一章节提...
阅读全文
Xv6

Xv6内核分析(十八)

目录实现分析 1. Xv6目录简介 在xv6中目录的也是用inode来表示的,只是inode中的type字段为T_DIR。普通文件的数据块中保存的是文件的内容,但是目录inode的数据块中保存的是一系...
阅读全文
HarmonyOS

Liteos-a内核分析(三)

系统内存管理 本篇文章主要分析OsSysMemInit这个函数,主要初始化了内核虚拟空间、vmalloc虚拟空间、还有内核堆和系统物理页初始化等等。 1. TCB内存申请 在调用OsSysMemIni...
阅读全文
SylixOS

SylixOS PCIe控制器驱动开发(九)

SylixOS PCIe控制器驱动使用自动配置功能 1. 地址空间简单回顾 自动配置主要就是配置各个设备BAR空间的PCIe地址,所以我们简单回顾下PCIe地址和CPU物理地址的概念。 PCIe控制器...
阅读全文
SylixOS

RISCV基础开发(十四)

QEMU裸机开发之S模式软中断 S模式下的软中断我们借助m模式下的定时器中断进行触发,在m模式下设置sip中的soft位域就可以触发S模式下的软中断,如下所示。 void machine_trap(v...
阅读全文
SylixOS

浅谈编译(二)

OpenGL 1. OpenGL渲染管线 管线的英文名叫pipeline,其实翻译成流水线更贴切形象一点,渲染管线就是图形图像从数据一步一步形成最终输出的画面所要经历的各种操作过程。数据经过一个操作后...
阅读全文
SylixOS

SylixOS块设备驱动开发(一)

认识块设备 1. 存储设备 在嵌入式中,常见的存储设备有SD卡、eMMC、sata硬盘、U盘、NVMe盘等。其中SD卡和eMMC使用的是SD协议,sata盘使用的是sata协议(包括机械硬盘和固态硬盘...
阅读全文