SylixOS读写PCIe设备配置空间 在上一节中,我们知道注册控制器驱动后,SylixOS会遍历所有总线上的设备信息,这是通过读取设备的配置空间信息实现的。SylixOS中配置空间的读写都是通过调用...
SylixOS 应用移植指导——以Redis5.0.3为例(五)
四、完善Makefile 既然liblua和libhiredis都有了,那就照葫芦画瓢,把redis-cli和redis-server的Makefile构造出来。 根据make流程的log,找到red...
Xv6内核分析(五)
mian函数之kinit2 kinit2函数的作用是将之间的物理内存页添加到空间页链表之中: 在调用kinit2函数之后,物理内存页的申请释放就启用了锁机制。
全志D1开发(四)添加中断控制器驱动
1. riscv中断框架回顾 在riscv中,中断被分为CLINT和PLIC两类,CLINT负责架构定时器和核间中断管理,PLIC负责外设中断的管理。由于本系列教程我们的定时器没有选用架构的定时器,所...
SylixOS 多核SMP BSP开发(二十)
多核唤醒简介 在开始多核BSP开发之前,我们需要思考两个问题:第一个是各个cpu核不管是主核还是从核是如何开始执行指令的,也就是如何唤醒它们让其开始工作;第二个问题是各个cpu核怎么知道它要执行的第一...
SylixOS PCIe开发(一)
本文章致力于对PCI相关知识做一个普及。 另外推荐一个PCIe讲解的不错的系列博客:http://blog.chinaaet.com/justlxy/p/5100061871 1. x86处理器系统初...
VxWorks内核分析六(转)
原文:http://www.prtos.org/vxworks-initialization/。 本篇文章分析VxWorks的初始化,VxWorks的初始化可以分成两个部分: 1.具体处理器平台相关的...
Liteos-a内核分析(一)
系统启动 1. 系统启动文件 系统启动文件为reset_vector_up.s ,在源码中的位置为kernel\liteos_a\arch\arm\arm\src\startup,在这个目录下有两个文...
SylixOS 应用移植指导——以Redis5.0.3为例(七)
六、排错 1)redis-cli 换行问题 既然换行有问题,那就找redis-cli里换行的实现,即处理换行的函数,这里忽略怎么找的过程,全凭各自经验和排错习惯找,定位到linenoise.c里: 这...
SylixOS内存访问错误解决方法(一)
本文章介绍了一种分析内存错误提示信息,从而找到源码中错误代码位置的方法,为大家排查这类错误提供一种思路,起到抛砖引玉的作用。 1. 测试代码 测试代码如下: #include <stdio.h&...
RISCV基础开发(八)
QEMU裸机开发之M模式中断设置 1. CSR寄存器操作 从本章节开始我们需要对CSR相关寄存器设置,所以将这些寄存器的读写访问封装成一些接口定义在“csr.h”中,这些接口基本都参考自xv6,如下所...
SylixOS PCIe控制器驱动开发(八)
SylixOS初始化PCI控制器数据结构 通过前面的几篇文章我们初始化好了PCI_DRV_FUNCS0 中的读写和中断申请这三个回调函数,现在我们要将这个操作集初始化给PCI控制器数据结构: pci_...