引导SylixOS 在学习BSP移植之前,我们先来看看SylixOS是如何被Bootloader引导起来的。我们都知道,任何一种操作系统内核运行之前都需要通过某种方式导入到内存中,然后CPU跳转到内核...
RISCV基础开发(十七)
QEMU OpenSBI 裸机开发之字符打印 1. 编译OpenSBI镜像 前面的章节我们是直接从m模式开发的裸机程序,从本章节开始我们来学习在已经有OpenSBI的基础下进行裸机开发。首先需要下载O...
SylixOS网络开发(三)
1. 概述 本篇章节介绍SylixOS网络驱动不使用零拷贝时的数据是如何传递的。在阅读本篇文章的时候,大家脑海里一定要记住以下这张图: 这张图只是对上一章节中的网络数据流图做了一点小修改。 2. 发送...
RISCV基础开发(七)
QEMU裸机开发之格式化打印 在前面的程序中我们实现了简单的字符串输出函数,在实际使用时,我们还需要进行格式化打印,比如打印某个变量的值,按十进制或者十六进制打印等等,本章节我们在“uart.c”中实...
RISCV基础开发(六)
QEMU裸机开发之打印字符 1.文件结构总览 先整体看下本章节裸机程序的工程文件组成,如下图所示。 address.h:主要定义了一些外设寄存器的基址还有内存基址等。 entry.S:入口文件,主要设...
SylixOS 多核SMP BSP开发(二十三)
在bspInit.c中添加多核启动功能 在本章节中,我们将添加从核启动需要的初始化代码,同样的在主核的处理过程中也需要添加代码来配合多核功能。 1. halModeInit 这个接口是主核和从核进入C...
SylixOS 应用移植指导——以Redis5.0.3为例(三)
二、创建IDE工程 总结一下本阶段的工作: 已知: Redis源码 Redis编译流程 需要编译的依赖库 需要编译出的目标文件 目标: 在SylixOS IDE下构建工程 配置与Linux下一致的编译...
Xv6内核分析(三.8)
main函数之uartinit uart的具体编程知识见8250相关资料。 由代码可知,在初始化了uart之后,调用ioapicenable使能了uart中断,处理中断的cpu设置为了主核???
Liteos-a内核分析(一)
系统启动 1. 系统启动文件 系统启动文件为reset_vector_up.s ,在源码中的位置为kernel\liteos_a\arch\arm\arm\src\startup,在这个目录下有两个文...
SimpleOS开发(5)添加内核物理页管理器
1. 实现互斥锁雏形 内核的各个功能组件后续都有申请释放内存的需求,所以需要实现内存管理。在实现内存管理之前我们需要先实现互斥锁,因为通过下面我们看出内存管理时通过链表实现的,操作链表时需要加锁,所以...
全志D1开发(二)添加串口驱动
1. 基础功能修改 1.1 创建base,导入BSP工程 根据全志D1的架构说明,创建base时选择如下: 创建完成后base中的libsylixos版本比较低,内核中的riscv架构是不支持全志D1...
全志D1开发(四)添加中断控制器驱动
1. riscv中断框架回顾 在riscv中,中断被分为CLINT和PLIC两类,CLINT负责架构定时器和核间中断管理,PLIC负责外设中断的管理。由于本系列教程我们的定时器没有选用架构的定时器,所...