文章目录

  • riscv 市场
    • 芯片介绍
    • 软件介绍
    • 开发板介绍
    • PC介绍
  • riscv 架构
    • 编程模型(指令集/寄存器/ABI/SBI)
      • 运行状态
      • 指令集
      • 寄存器
      • riscv32和riscv64两者的区别
      • 非特权级别(u-mode)下不建议访问的指令与寄存器
      • ABI
      • 扩展指令集
    • 异常模型
    • 内存模型
      • MMU
      • 内存一致性
        • 缓存一致性
        • 原子性
        • memory order
      • cache
    • debug架构
      • External Debug
      • Self-hosted Debug
      • Trace
    • BOOT模型
    • 虚拟化模型
    • 安全模型
  • 开发工具
    • gcc toolchain & gdb
    • qemu
    • 常见开发环境
  • 软件开发
    • riscv SBI 编程
    • 裸机(baremetal)开发
    • RTOS
      • rt-thread
      • freertos
    • linux
      • riscv-linux 镜像
      • riscv-linux boot 符号
      • debug
      • boot
      • boot时的内存管理
      • 架构相关代码
      • 通用知识:如何新增一个架构
  • 附录 : RISCV 参考资料

riscv 市场

芯片介绍

  • 市场上的riscv芯片

软件介绍

  • riscv上的软件列表

开发板介绍

  • riscv 开发板 哪吒 boot&硬件解读

PC介绍

  • 市面上的单板riscv计算机
  • HiFive Unmatched 总览

riscv 架构

  • riscv 架构的思考

编程模型(指令集/寄存器/ABI/SBI)

运行状态
没有这个概念
指令集
  • riscv 指令集 与 编译链中的riscv指令集
  • ARMv7/ARMv8/RV32/RV64指令集及寄存器对比
寄存器
  • riscv 寄存器 与 编译链中的riscv寄存器
  • riscv 的CSR
riscv32和riscv64两者的区别
非特权级别(u-mode)下不建议访问的指令与寄存器
// 指令
sret/wfi/sfence.wma
// 寄存器
s-mode 的 csr
m-mode 的 csr
ABI
  • risc-v与SBI与ABI及riscv常见的ABI及其体现
扩展指令集
  • 扩展指令集

异常模型

  • riscv的异常与中断及实例
  • [工作模式]及实例
M-mode S-mode U-mode debug-mode

内存模型

MMU
  • RISC V的MMU
内存一致性
  • 内存一致性: A.缓存一致性 B.原子性 C.memory order
缓存一致性
  • 缓存一致性问题分类及arm解决方案
  • rv的cache
原子性
  • 原子操作amoswap
memory order
  • 乱序和屏障1 : 总览 及 编译器内存屏障

  • 乱序和屏障2 : UP单核需要处理的CPU乱序问题

  • RVWMO 内存一致性模型TODO

cache
  • 高速缓存与一致性专栏索引

  • cache 概念详解

  • riscv 的cache 实现

debug架构

External Debug
jtag
Self-hosted Debug
ebreak 指令
Trace

BOOT模型

  • 官方 bootflow 介绍1
  • 官方 bootflow 介绍2

虚拟化模型

安全模型

开发工具

gcc toolchain & gdb

riscv的编译链1. sifive                发布的 : riscv64-unknown-elf-gcc2. crosstool-ng      发布的 : riscv64-unknown-elf-gcc3. riscv-gnu-toolchain   发布的 : riscv64-unknown-elf-gcc//4. andes                 发布的 : win   :riscv64-linux-gcc/riscv64-elf-gcc/riscv32-linux-gcc/riscv32-elf-gcc//                               linux   :riscv64-linux-gcc

这里提到过

可以 直接 在 https://github.com/sifive/freedom-tools/releases 下载,December 2020 Tools Release及以前都会有发布https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz可以 用 https://github.com/crosstool-ng/crosstool-ng 的源码 去编译// 生成 为 riscv64-unknown-elf-gcc
可以 用 https://github.com/riscv/riscv-gnu-toolchain 的源码 去编译// 生成为 riscv64-unknown-elf-gcc
  • 编译器1 : Crosstool-NG… … 编译出 riscv64-unknown-elf-gcc
  • 编译器2 : riscv-gnu-toolchain 编译出 riscv64-unknown-linux-gnu-gcc
  • 编译器3 : sifive … … … … …发布的 riscv64-unknown-elf-gcc

  • riscv 编译链 转换 C code 到汇编

qemu

  • qemu 6.1.0 编译出 qemu-system-riscv32
  • ubuntu20.04 安装 qemu-system-misc

  • qemu 6.1.0 运行参数

  • qemu 6.1.0 中的仿真板 RISC-V VirtIO board

  • 如何在qemu上添加一个platform 专栏

  • qemu riscv 开发板介绍

常见开发环境

芯来科技 的 Nuclei SDK

软件开发

riscv SBI 编程

  • RISC-V64 opensbi启动过程
  • opensbi下的riscv64裸机系列编程1(串口输出)
  • opensbi下的riscv64裸机编程2(中断与异常)

裸机(baremetal)开发

  • PLIC & CLINT

  • RV64 V扩展编程

  • riscv代码调试遇到过的问题及坑

  • ARMv7/ARMv8/RV32/RV64裸机编程中的区别

  • 兼容ARMv7/ARMv8/RV32/RV64的一个裸机qemu工程

TODO : opensbi 在什么时候才会用到MSU 三模式肯定会用到MU  两模式会不会用到?M  一模式会不会用到?

RTOS

rt-thread
  • 基于rv64 的 rt-thread(官方)

  • 基于rv64 的 rt-thread(非官方)及 我的virt64

  • 基于rv32 的 rt-thread(非官方)及 我的virt32

  • rt-thread cpu 移植

freertos
  • FreeRTOS的简单认识与各模块的符号

  • 基于RV32 的 FreeRTOS(官方)体验教程

  • FreeRTOS 在 RV64 qemu-virt 板 上的移植

  • FreeRTOS 在RISCV上的port


  • FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 启动流程
  • FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 运行流程
  • FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 运行流程 的栈分析
  • FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 运行流程 的Mode分析
  • FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 运行流程 的异常分析
  • FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 锁机制 分析
  • FreeRTOS 中 RISC-V-Qemu-virt_GCC 的调度时机

linux

riscv-linux 镜像
riscv-linux boot 符号
  • arm32-linux boot 符号总览
  • rv32-linux boot 符号总览
  • rv64-linux boot 符号总览
debug
  • gdb调试qemu virt板 rv64 linux 各个过程
  • gdb调试qemu virt板 rv32 linux 各个过程
boot
  • riscv linux 从加载到start_kernel简版
  • riscv linux 参考启动流程
boot时的内存管理
  • RISC 架构 linux boot 临时页表 对比 ARM32 ARM64 RV32 RV64
架构相关代码
通用知识:如何新增一个架构
  • 将 Linux 移植到新的处理器架构,第 1 部分:基础前言
  • 将 Linux 移植到新的处理器架构,第 2 部分:早期代码

附录 : RISCV 参考资料


相关官网网址
https://github.com/riscv-non-isa
https://github.com/riscv
http://crva.ict.ac.cn/
https://riscv.org/
- [riscv-specifications](https://riscv.org/technical/specifications/)
- [riscv教程](https://riscv.org/risc-v-learn-online/)核心
RISC-V-Reader-Chinese-v2p1.pdf               : 中文手册
riscv-spec-20191213.pdf                   : 非特权指令集
riscv-privileged-20190608.pdf                 : 特权指令集
Design of the RISC-V Instruction Set Architecture EECS-2016-1.pdf
riscv-abi.pdf
riscv-sbi.pdfdebug&trace
riscv-debug-release.pdf  riscv-debug-stable.pdf : debug
riscv-trace-spec.pdf : trace
5001-Nexus_11497-DAC10.pdf : trace
debugger_riscv.pdf   : Lauterbach debug 相关手册启动
The Standardized Boot flow for RISC-V Platforms.pdf : 启动流程
Summit_bootflow.pdf
ELCE_2019_final_upload.pptx
FOSDEM_2020_Atish.pdf
Linux_plumbers_bootflow.pdf
The_role_of_open_source_firmware_in_RISC-V.pdf虚拟化
A First Look at RISC-V Virtualization from an Embedded Systems Perspective.pdf 简单介绍 : 入门用
RISC-V and Open Hardware BoF
Xvisor: Embedded Hypervisor for RISC-V
risc-v-getting-started-guide.pdf//其他个人资料,辅助理解
https://zhuanlan.zhihu.com/p/102484084
虚拟化: https://github.com/FengWuCB/RVirt
虚拟化: https://github.com/kvm-riscv
指令集 : https://www.cnblogs.com/mikewolf2002/category/1329315.html
debug : https://ithelp.ithome.com.tw/m/articles/10197439

RISC V (RV32+RV64) 架构 整体介绍相关推荐

  1. ARMv8 ARM64 架构 整体介绍

    这里整理一些 arm64(aarch64是armv8下面的一个工作状态,一般我们将其称为arm64?) 在这里不考虑 aarch32 这里的主要内容是 手册 arm ARM arm ARM// cpu ...

  2. 【收藏】GeoMesa整体架构模块介绍、创建Schema并导入数据

    geomesa-accumulo:基于 Apache Accumulo的DataStore 实现 geomesa-archetypes: Maven构建模板 geomesa-arrow: 基于 Apa ...

  3. 软件架构--架构设计的整体介绍

    软件架构--架构设计的整体介绍 1 介绍 1.1 概述 1.2 复杂系统 1.3 架构目标 1.4 架构过程(引用<系统架构:复杂系统的产品设计与开发>) 1.5 系统预测方式 经验 实验 ...

  4. FusionSphere整体介绍

    FusionSphere整体介绍 分类专栏: 云计算 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.cs ...

  5. 自己动手写处理器之第一阶段(3)——MIPS32指令集架构简单介绍

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版).今天是第四篇.我尽量每周四篇 1.4 MIPS32指令集架构简单介绍 本书设计的处理器遵循MIPS32 Release 1架构,所以 ...

  6. 瑞吉外卖01-项目整体介绍

    瑞吉外卖-项目整体介绍 前言 软件开发整体介绍(了解) 软件开发流程 第1阶段: 需求分析 第2阶段: 设计 第3阶段: 编码 第4阶段: 测试 第5阶段: 上线运维 角色分工 软件环境 开发环境(d ...

  7. 微服务架构总结性介绍 (深度好文)

    微服务架构总结性介绍 (深度好文) 资料来源:有架构给我的一些资料,以及自己百度和论坛.社区找来的一些资料,权当做一个总结式的简介... 目录如下: 一.微服务架构介绍 二.出现和发展 三.传统开发模 ...

  8. Reggie外卖项目 —— 项目开发整体介绍

    01.项目开发整体介绍 1.1.项目介绍 1.本项目(瑞吉外卖)是专门为餐饮企业(餐厅.饭店)定制的一款软件产品,包括系统管理后台和移动端应用两部分. 系统管理后台主要提供给餐饮企业内部员工使用,可以 ...

  9. 常见的系统架构设计介绍

    系统架构设计介绍 分布式架构 初始阶段架构 特征 应用服务和数据服务以及文件服务分离 特征 问题 使用缓存改善性能 特征 问题 使用应用服务器集群 特征 描述 问题 数据库读写分离 特征 描述 问题 ...

最新文章

  1. 支持量子机器学习,王海峰发布最新百度飞桨全景图
  2. 【LibreOJ】#6395. 「THUPC2018」城市地铁规划 / City 背包DP+Prufer序
  3. Hadoop学习笔记:MapReduce框架详解
  4. 清华大学高阳:Mastering Atari Games with Limited Data
  5. Spring IoC 源码系列(三)Spring 事件发布机制原理分析
  6. AIX5安装bash
  7. 深度学习之循环神经网络(11-b)GRU情感分类问题代码
  8. python中elif和while简单介绍及注意事项(含笔记)
  9. 蚂蚁集团涵畅:再启程,Service Mesh 前路虽长,尤可期许
  10. 物联网企业该如何与华为云合作,这份FAQ值得一看
  11. Sysdig and Falco now powered by eBPF
  12. dubbo+zookeeper下生产者和消费者配置(基于springboot开发)
  13. 四款亲试好用的PDF编辑器推荐,看看哪款最适合你
  14. Windows下搭建PHP扩展开发环境
  15. 各大邮箱网址用哪个好?企业内部邮箱哪个比较好用?
  16. 清除缓存-Ctrl+Shift+Delete
  17. 免费远程控制软件新功能
  18. 广告推荐论文 博客 项目 汇总
  19. WPF ListBox等ItemsControl交替(Alternation)变化效果
  20. 使用ENVI软件中的SARSCAP工具对RADARSAT数据进预处理

热门文章

  1. Microsoft Office Word 2010-2016中公式不能自动斜体的解决方法
  2. 【设计模式】工厂模式(Factory Pattern)
  3. AMBA总线概述——AHB、APB、AXI
  4. 解决利用<input type=“file“>上传文件时,value拿到的是fakePath问题
  5. 在澳洲学计算机挣得多吗,2020年澳洲计算机科学专业挂科率高吗?
  6. 苹果的黑科技:如何让按不动的触控板产生点按的感觉
  7. 插值与拟合 (二) : 曲线拟合的线性最小二乘法
  8. 数字集成电路面试常见问题_关于空间级集成电路的常见误解
  9. Duilib 和 DuiDesigner 简介
  10. 她二本科毕业,拿到阿里年薪40万offer!经验都记录在这几个公众号日记中