1. 设置trap入口 1.1 设置M模式trap入口 RISCV架构发生中断和异常时不会像arm那样自动切换栈指针,所以在trap入口需要先设置好栈地址,我们将__stack_start加上第九个页...
奔向太空,我们是认真的!国产操作系统飞天记。(转)
原文:https://mp.weixin.qq.com/s/o24dYbpndqeCuNJUnSUXNw 北京时间2018年12月7日12时12分,我国在酒泉卫星发射中心用“长征二号丁”运载火箭,成功...
Xv6内核分析(六)
main函数之userinit 1. userInit函数 userinit函数做的事就是初始化第一个进程运行所需要的栈中的数据: initcode.S是第一个进程的用户空间程序,_binary_in...
SylixOS PCIe设备驱动开发(十一)
SylixOS PCIe设备驱动注册和卸载 在SylixOS中,使用PCI_DRV_CB 数据结构来表示一个PCIe设备驱动: typedef struct { LW_LIST_LINE PCIDRV...
RISCV基础开发(十八)
QEMU OpenSBI 裸机开发之格式化打印 格式化打印代码也跟之前的基本一样,就是将字符输出函数从原来的直接操作16550寄存器改为通过SBI接口进行字符输出,其他的都一样,将printf函数定义...
Xv6内核分析(十七)
inode内容分析 1. inode具体内容 磁盘上的Inode具体内容如下: inode的数据块在磁盘上的位置由inode的address表来记录,address表分为直接表和间接表,直接表共有12...
SylixOS PCIe开发(二)
1. 概述 本篇文章主要介绍不同平台下pci设备配置空间的访问方法,总的来说,pci设备的配置空间有两种访问方式: 配置寄存器访问 ECAM访问 2. 配置空间寄存器 pci配置空间寄存器大小为256...
SylixOS 应用移植指导——以Redis5.0.3为例(五)
四、完善Makefile 既然liblua和libhiredis都有了,那就照葫芦画瓢,把redis-cli和redis-server的Makefile构造出来。 根据make流程的log,找到red...
全志D1开发(九)SD驱动之控制器硬件设置
1. 硬件初始化 本文章不会对全志控制器的具体寄存器做详细的分析,只会关注接口封装或者设置时一般的流程或者共性的东西,详细的寄存器意义大家可以查阅数据手册或者源码理解。 控制器的硬件初始化主要包括以下...