1. FrameBuffer简介 SylixOS下将显示设备抽象为一个文件,一般为/dev/fb0、/dev/fb1等,通过对fb设备文件的操作就可以直接操作显示设备。本质就是读写显示设备的“显示区域...
SylixOS 多核SMP BSP开发(二十二)
实现bspLib.c中多核相关接口 在bspLib.c中有3个接口是需要我们来实现的,另外为了配合多核启动,我们还需要另外再自己实现几个接口以和bspInit.c来一起将多核启动起来。 1. bspM...
RISCV基础开发(十二)
QEMU裸机开发之M模式切换到S模式 从m模式切换到s模式下的代码其实也不是很多,主要是设置"mstatus"和“mepc”寄存器。其实从高特权级别切换到低特权级的思路在各个架构下都差不多,从低级别到...
RISCV基础开发(二)
特权架构 处理器在架构上一般都会有几种特权模式,比如x86架构有“ring0~ring3”4种级别,一般操作系统内核和驱动运行在ring0级别,也就是最高级别,而普通的应用程序运行在ring3级别,也...
奔向太空,我们是认真的!国产操作系统飞天记。(转)
原文:https://mp.weixin.qq.com/s/o24dYbpndqeCuNJUnSUXNw 北京时间2018年12月7日12时12分,我国在酒泉卫星发射中心用“长征二号丁”运载火箭,成功...
(四)SylixOS同步互斥之互斥锁
从本篇开始往后的文章主要介绍下SylixOS常用的编程接口,比如同步互斥接口、动态内存相关类接口、Cache操作接口等等,主要聚焦于驱动开发中经常使用到的内核接口。 1. 基本作用 互斥锁在Sylix...
全志D1开发(八)SD驱动之注册Host信息
1. 注册SD Memory设备驱动 在SylixOS的SD框架设计中,需要将主控制器驱动和设备驱动分别注册到SDM框架中以方便管理。使用内核SDM相关接口之前需要先调用 API_SdmLibInit...
Xv6内核分析(十七)
inode内容分析 1. inode具体内容 磁盘上的Inode具体内容如下: inode的数据块在磁盘上的位置由inode的address表来记录,address表分为直接表和间接表,直接表共有12...
RISCV基础开发(十八)
QEMU OpenSBI 裸机开发之格式化打印 格式化打印代码也跟之前的基本一样,就是将字符输出函数从原来的直接操作16550寄存器改为通过SBI接口进行字符输出,其他的都一样,将printf函数定义...
(三)SylixOS开发环境
最近在学习riscv版本的xv6,加上工作上的一些事情,所以SylixOS入门系列处于停更状态。我发现如果不一直坚持学习或者写文章的话,一段时间后就会松懈下来,到周末能躺床上刷一天的手机==所以做任何...
RISCV基础开发(三)
中断和异常处理 在RISCV架构设计中,有一系列的控制和状态寄存器( Control and Status Registers)简称CSR,在三种特权级别下都有其对应的CSR,比如m模式下的命名都为m...
Xv6内核分析(十五)
block 分配器 文件和目录的内容存在磁盘块中,磁盘块都从一个空闲块池中分配出来。xv6 的块分配器包含一个磁盘上的空闲块位图,每个块占一个位。引导区,超级块,i 节点块和位图块的位永远都被置为有效...