• 2024-06-03qemu 新增 machine
    下面以新增一个新的riscvmachine为例子进行说明新增Machine步骤修改Kconfighw/riscv/Kconfig修改configsconfigs/devices/riscv32-softmmu/default.mak新增Machine的编译文件下面两个文件参考的hw/riscv/sifive_e.c,并修改了一些源码,不然会有冲突,导致编译失败
  • 2024-04-10RISCV
    RISCVriscv通用寄存器riscv通用寄存器寄存器调用名字用途x0zero常数0x1ra返回地址x2sp栈指针x3gp全局指针x4tp线程指针x5-x7t0-t2临时存储x8s0/fp保存用寄存器/帧指针(配合栈指针界定一个函数的栈)x9s1保存用寄存器x10-x11a0-a1函数参数/返回值x12-x17a2-a7函数参数x
  • 2024-02-29Book-Riscv-XV6-Chap1
    操作系统接口–阅读xv6-riscv-bookXv6的时钟周期:定时器芯片两次中断之间的时间xv6作为一个简单的操作系统,利用一个“内核kernel”向其他运行中的程序提供服务的特殊程序,这个内核相当于连接了硬件和运行程序。每一个正在运行的程序可以称为进程,都拥有子集的包含指令、数据、
  • 2024-01-19riscv linker relaxations 是什么
    什么是linkerrelaxations由于链接时携带一些符号地址信息,可以执行一些编译时难以或者不大可能实现的优化。LinkerRelaxtion与传统编译时期的优化是不一样的,此优化发生在链接时。通常情况下,在链接时,改变代码的执行序列是有风险的,因为语义信息此时会丢失,链接器看到也仅是字节流
  • 2023-12-10riscv gnu编译器
    官网https://github.com/riscv-collab/riscv-gnu-toolchain编译器基于RISC-V交叉编译器包括32bit和64bit两种类型,其中每种类型又包括裸机版本(newlib)和动态链接库版本(linuxglibc)newlib./configure--prefix=/opt/riscvmakeglibc#默认仅支持64位target./configure--
  • 2023-12-09xv6 想到什么记什么
    xv6不同视频里安装了不同版本两个我都装了一个是xv6-public点进去是深大视频里配套的i386arch另一个是xv6risc-V就是另一个我参考的视频里 运行xv6用的QEMU是个linux上的模拟器xv6又是个unix变体简易版系统所以最终说起来这个系统是一个程序,跑在一个模拟器程序里,模
  • 2023-12-09学习riscv(1)安装tinyriscv的工具链
    因为毕设是CPU的低功耗设计,所以开始看cpu,打算还是先从这个tinyriscv学起,昨天把环境下好了,第一步是用git去clone代码,这个首先要下载git,然后在目标文件夹鼠标右键,选择“opengitbushhere”,再输入项目的url,就可以了。方法不难。b站有详细教程接下来是安装工具,我用的是wind
  • 2023-10-31mitos - xv6 for riscv
    参考:code:https://github.com/mit-pdos/xv6-riscvbook:https://pdos.csail.mit.edu/6.828/2021/xv6/book-riscv-rev2.pdfnote:https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/
  • 2023-10-16milkv-duo启动流程分析:手动构建boot.sd
    目录上电测试制作boot.sd编译Linux内核multi.its上电测试在上一篇,我们构建了fip.bin。让我们继续用以前的boot.sd。我们插上电源,U-Boot2021.10(Oct152023-14:17:51+0800)cvitek_cv180xDRAM:63.3MiBgd->relocaddr=0x82435000.offset=0x2235000MMC:cv-sd@43100
  • 2023-10-15milkv-duo启动流程分析:手动构建fip.bin [2/2]
    手动合成fip.bin和boot.sd[2/2]编译FSBL编译FSBL是为了得到bl2.bin。注意到我们需要配置一些参数:ARCH?=ifneq($(originCROSS_COMPILE),commandline)ifeq($(ARCH),riscv)CROSS_COMPILE:=${CROSS_COMPILE_GLIBC_RISCV64}BOOT_CPU?=riscvelseCROSS_COMPILE:=${
  • 2023-10-07qemu搭建riscv的可调试环境
    qemu搭建riscv的可调试环境riscv工具链(网上大多数用Github直连的工具链,但是因为太大,download的时候老是出问题)选择使用Cross-compilationtoolchainsforLinux-Home(bootlin.com)进行下载,之后解压。bin目录下为可执行的工具链,将其添加到PATH中。qemuqemu压缩包下载
  • 2023-08-29RISCV-MINI cache小记
    该cache映射策略为直接映射,采用写回(writeback)方式。需要注意的细节在于cpu-cache通过mask信号判断访存是读还是写,显然mask全0时为读。下图FSM中省略了dirty会影响状态转移,比如WriteCache到WriteBack,当cache块为dirty时才会触发aw.fire(io.nasti.aw.valid:=is_dirty)。简单解释:
  • 2023-07-13RISCV处理器-存储器模型
    之前一直没怎么弄清楚fence以及fence.i指令,现在重新回顾一下。可选的原子性存储器指令扩展"A" FENCEfence指令用于顺序话其他RISCV线程、外部设备或者协处理器看到的设备I/O和存储器访问。在所有predecessor执行到fence前的任何操作前,处于fence指令后的successorset种的任
  • 2023-07-12riscv处理器——除法运算实现
    采用试商法实现除法运算,试商法的计算过程如下:1.每次除法运算至少需要33个时钟周期才能完成,用状态机来实现;2.主要需要判断并执行的指令有4种类:1wireop_div=(op_r==`INST_DIV);//有符号除法,结果为商2wireop_divu=(op_r==`INST_DIVU);//无符号除法,结果为商3wire
  • 2023-06-11RISCV Ubuntu Linux内核更换
    交叉编译内核#!/bin/bash#LINUXSRC=/root/linuxexportLINUXSRC=/keystone/linuxexportOUTPUT=/keystone/build/linux.build#exportCONFIG=/keystone/conf/linux64-defconfigexportCONFIG=/keystone/build/config-5.19.0-1012-genericexportCROSS_COMPILE=riscv64-u
  • 2023-05-10tinyriscv——gp寄存器/riscv-tests的变化
    在RISC-V中,gp寄存器是全局指针(GlobalPointer)寄存器,用于存储全局数据区(.data和.sdata段)的地址。在程序启动时,该寄存器会被设置为一个固定的值,通常为__global_pointer$的地址,表示全局指针的起始地址。在一些情况下,可以通过修改该寄存器的值来实现一些特定的功能。在常见的
  • 2023-05-03沁恒 CH32V208(三): CH32V208 Ubuntu22.04 Makefile VSCode环境配置
    目录沁恒CH32V208(一):CH32V208WBU6评估板上手报告和Win10环境配置沁恒CH32V208(二):CH32V208的储存结构,启动模式和时钟沁恒CH32V208(三):CH32V208Ubuntu22.04MakefileVSCode环境配置硬件部分CH32V208WBU6评估板WCH-LinkE或WCH-Link硬件环境与Windows下
  • 2023-04-02蜂鸟E203 仿真之路
    本文记录自己在学习蜂鸟E203的过程。下面简单介绍一下仿真之路所遇到的困难和走过的坑。1、环境开发:一般选择ubuntu18.04这个版本,安装这个教程很多,可以自行学习。2、在Linux中安装工具:sudoapt-getinstallautoconfautomakeautotools-devcurldevice-tree-compilerlib
  • 2023-03-06riscv co-sim:riscv内核开发集成simulator仿真
    riscvco-sim:riscv内核开发集成simulator仿真1.原理a.确定对比粒度RTLtraceinterfacesimulatorstepinterfaceDPIinterfaceb.系统构建simulator编译生成共
  • 2023-01-20mit risc-v 资料
    ​​risc-v版本xv6运行环境设置​​(新手友好!)Ubuntu20安装xv6-riscv​​MIT6.828准备—risc-v和xv6环境搭建​​​​mit-pdos-xv6-riscv​​
  • 2022-12-31riscv学习笔记
    Riscv是现在比较火的一套开源指令集(ISA),这就有很多搞头了,可定制化,不用收费,不像arm虽然很成熟,但是需要几百到几千万不等的授权费,对于小公司来说成本过于高昂。Sifive是Riscv
  • 2022-12-22RISCV-V-1.0向量扩展指令集学习
    大部分内容翻译自riscv-v-spec-1.0部分参考:【《RISC-V“V“VectorExtensionVersion1.0》阅读笔记】_LPL之芯的博客-CSDN博客RISC-V"V"(向量)扩展规范v0.9+文档(2
  • 2022-12-12毕昇JDK团队主导的RISC-V port正式合入OpenJDK主线
    编者按:2022年3月14日,华为毕昇JDK团队主导开发的OpenJDKRISC-Vport[1]正式合入OpenJDK主线[2],成为OpenJDK的官方port之一。OpenJDK19将会是第一个支持
  • 2022-11-19单周期riscv处理器的实现
    目录单周期riscv处理器的实现指令分析实现指令处理器总体思路分块拆解处理器完整实现各分模块实现指令存储器数据存储器控制模块立即数生成模块单周期riscv处理器的实现
  • 2022-11-12关于 RISCV 手册实在太难度的处理
    为什么一个CSR寄存器的介绍下面看不到每个bit的分别介绍啊!!!!!!我把这些CSR的bit给列出来,如下:我绝对不想再去riscv-privilege手册里找寄存器的bit说明了!来源:https: