Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.1 新增加一个RISC-V CPU(NARUTO-PI)

这篇具有很好参考价值的文章主要介绍了Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.1 新增加一个RISC-V CPU(NARUTO-PI)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 概述

上一章节我们讲解了开源的QEMU 开发板怎么启动,从这章节开始,我们将会亲手去从无到有开发一个CPU,它包括CPU CoreMemory DeviceCommunication ControllerDevice等等。

  • 注意,本章节中调用的很多自定义宏都在include/hw/riscv/naruto.h文件,这里我就不展开说了,大家下载我提供的源码对照着看就行。

2. 思路引导

对于QEMU,我这里就不做他的介绍了,我主要介绍怎么去使用它的API构建CPU,首先,使用QEMU构建一个设备时,需要构建一个Machine和一个Device

  • Machine就是虚拟这个设备的父类。
  • Device则是包含在这个父类下面的设备。

我们本章节就简单的创建CPU和ROM,SRAM。剩下的在其他章节继续深究文章来源地址https://www.toymoban.com/news/detail-857790.html

static 

到了这里,关于Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.1 新增加一个RISC-V CPU(NARUTO-PI)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker】Docker中Linux 容器、网络虚拟化与虚拟局域网的技术特点详细讲解

    前言 Docker 是一个 开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux或Windows 操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介: 热爱跑步的恒川 ,致力于

    2024年02月09日
    浏览(49)
  • 巨页内存与Qemu/KVM虚拟化内存优化

    在虚拟化环境中,需要对虚拟机的优化,其中包括在某些情况下利用巨页内存进行内存的优化以提高虚拟机性能。那么什么是巨页内存?巨页内存有什么好处?Qemu/KVM虚拟化环境下如何使用巨页内存?本文将对这几个问题进行阐述。 对于内存管理,大多数现代操作系统都采用

    2024年02月07日
    浏览(48)
  • STM32 从入门到精通系列讲解 - 总目录

    👦 作者介绍:Bazinga bingo,专注C语言应用硬核干货分享,潜心修炼,虚心学习,立志做嵌入式相关赛道的Top。 📕 本文收录于《STM32开发》专栏,包含STM32内部模块介绍、片内资源开发、不同通信总线应用、屏幕显示等功能性开发。每篇文章包含相关知识点、代码编程详解以

    2024年02月10日
    浏览(41)
  • ARM Linux 调试 -QEMU启动 Uboot/Kernel/Rootfs

    懒人方式: 直接去方锐/qemu克隆项目,执行script目录的脚本即可 1. build_env.sh安装环境 2. build_rootfs.sh 生成rootfs 3. build_kernel.sh编译kernel 4. qemu_run.sh开始调试 2.1busybox代码的下载编译 Busybox下载地址:https://busybox.net/downloads/ Download 1.36.0 Busybox 默认会安装到 ./_install 目录下 制作ro

    2024年02月02日
    浏览(61)
  • python-openCV—入门到精通系列讲解(配效果图)- 总览

    python-openCV是一种强大的计算机视觉库,可用于处理图像和视频等多媒体数据。它可以帮助您快速处理和分析图像和视频数据,并且在计算机视觉领域具有广泛的应用。在学习python-openCV时,一个速查手册是一个必不可少的工具。 你可以当本专栏当做一个速查手册,可以看到每

    2024年02月14日
    浏览(50)
  • RK3568平台入门到精通系列讲解之UBOOT开发篇(GPIO操作)

    开始之前,不得不说UBOOT启动的三个阶段,这个很重要! 第一阶段(汇编语言阶段) 1. 设置异常向量表,当系统发生异常时总会接入到一个固定地址。 2. 硬件初始化。配置时钟相关参数,比如分频系数等等(内核时钟,总线时钟,IO接口时钟) 3. 关闭看门狗。 4. 关闭MMU,这

    2024年02月12日
    浏览(100)
  • RK3568平台入门到精通系列讲解之UBOOT开发篇(I2C操作)

    uboot中i2c读写有2种方式,一种使用uboot驱动模型,通过宏CONFIG_DM_I2C定义,另一种是传统方式,通过宏CONFIG_SYS_I2C定义。 在uboot命令行中,通过定义宏CONFIG_CMD_I2C,可以打开i2c cmd 子系统。输入i2c查看 usage。 举例:读取i2c地址为0x20的外设芯片,从第0个寄存器开始读,共读16个寄

    2024年02月02日
    浏览(56)
  • 【云计算与大数据技术】虚拟化简介及虚拟化的分类讲解(图文解释 超详细)

    虚拟化是指计算机元件在虚拟的基础上而不是在真实的、独立的物理硬件基础上运行。这种以优化资源、简化软件的重新配置过程为目的的解决方案就是虚拟化技术 虚拟化架构就是在一个物理硬件机器上同时运行多个不同应用的独立的虚拟系统,这些同时运行的虚拟系统由

    2024年02月03日
    浏览(43)
  • 【Linux从入门到精通】进程地址空间(虚拟地址 vs 物理地址)

         本篇文章会围绕 三个问题(什么是地址空间?地址空间是如何设计的?为什么要有地址空间?) 进行展开讲述。其中主要是了解虚拟地址和物理地址的区别。希望本篇文章会对你有所帮助。 文章目录 一、什么是地址空间? 1、1 验证地址空间 1、2 地址空间是指的物理

    2024年02月10日
    浏览(97)
  • RK3399平台入门到精通系列讲解(USB篇)UDC 层 usb_gadget_probe_driver 接口分析

    🚀返回总目录 UDC层的一项基本任务是向上层提供usb_gadget_probe_driver()接口函数。 上层调用者为composite.c中的int usb_composite_probe(struct usb_composite_driver *driver)函数,目的是usb_composite_driver 对usb_gadget_driver 进行继承。 在这里出现了关键的链表头 udc_list,该函数进行链表遍历,当发现

    2024年01月18日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包