自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (1)
  • 收藏
  • 关注

原创 初学 Xvisor 之理解并跑通 Demo

下面这部分是 Xvisor 官方的介绍Xvisor® 是一款开源的 Type-1 虚拟机管理程序,旨在提供一种整体式、轻量级、可移植且灵活的虚拟化解决方案。它为 ARMv7a-ve、ARMv8a、x86_64、RISC-V 及其他 CPU 架构提供高性能、低内存占用的虚拟化方案。与其他 ARM 平台的虚拟机管理程序相比,Xvisor 是少数支持具有 ARM 虚拟化扩展的 32 位 ARM 处理器的方案之一。而在 RISC-V 领域,Xvisor 是全球首款 Type-1 RISC-V 虚拟机管理程序。

2025-02-05 17:57:28 1058

原创 【复习向】体系结构 - 内存相关总结

先给出结论,我们再来看具体的结构。

2025-01-07 00:26:20 352

原创 UCAS-算法设计与分析(专硕)-复习参考

UCAS、算法设计与分析、复习参考

2025-01-06 22:01:13 213

原创 【复习向】算法设计与分析 - 概率算法

对于 i=2^k,以及 2^k< j <= 2^(k+1),算法计算出 xj -xi 与 n 的最大公因子 d=gcd(xj -xi , n)。在棋盘的各行中随机地放置皇后,并使新放置的皇后与已放置的皇后互不攻击,直至八个皇后均已相容地放置好,或下一个皇后没有可放置的位置。费尔马定理:如果正整数 n 是一个素数,取任一正整数 a 且1<a<n,则 a^(n-1) mod n≡1。如果 d 是 n 的非平凡因子,则实现对 n 的一次分割,算法输出 n 的因子d。如果运行失败,在相同的输入实例上再次运行算法。

2024-12-31 00:32:52 1133

原创 【复习向】动态流水线相关

计算机体系结构个人记录,总结动态流水线相关的内容参考资料:《计算机体系结构:量化研究方法》

2024-12-29 23:33:15 896

原创 Qemu 加载你指定的 initrd、dtb 到哪里?

在上硬件之前需要先在qemu中测试 ramfs 是不是正确的,eg:使用一个 800MB 的文件系统,会出现 initrd 与 fdt overlap 的报错,故研究一下 qemu 是如何加载这几部分到虚拟机的内存中的。一旦内存的大小确认,那么 initrd 与 fdt 加载的地址即确定,qemu 提供了一个计算工时,并预留了一个比较大的空间来避免 overlap。由于需要在一个没有磁盘的系统上启动一个 linux 并做一些测试,这就需要一个大的 ramfs,来存放需要测试的程序。

2024-12-23 22:13:18 497

原创 交叉编译 lmbench(riscv64)

将 libtirpc 安装到对应的 sysroot 下,riscv64-unknown-linux-gnu-gcc 默认的 sysroot 是工具链所在的位置。报错 rpc/rpc.h 找不到,以及 undefined reference to `pmap_set’ 这样的错误。添加 -I/usr/include/tirpc 解决 rpc/rpc.h 头文件找不到的问题。将工具链移动到 /opt/riscv 下(opt 下经常放一些工具)参考 https://twd2.me/archives/15827。

2024-10-30 00:32:22 510

原创 交叉编译 perl-5.40.0(riscv64)

https://github.com/riscv-collab/riscv-gnu-toolchain/releases/tag/2024.09.03 从这里获取交叉编译工具链。https://github.com/arsv/perl-cross/releases 这里获取 perl-cross-1.5.3 的源码(对应perl-5.40.0)https://www.perl.org/get.html#unix_like 这里获取 perl-5.40.0 的源码。借助 perl-cross 进行交叉编译。

2024-10-27 20:58:41 576

原创 PCIe 入门 Demo(一):基础知识

这一节不涉及太多的细节,旨在从宏观上介绍一下,以对 PCI/PCIe 有一个更全面的认识。PCIe 子系统拓扑结构如下所示:如 PCI 一样,每个 PCIe 功能(Function)的标识在其所在的设备内,以及这个设备所连接的总线内,都是唯一的,其标识符一般被称为 “BDF”。对于任意一个 PCIe 拓扑结构,配置软件负责检测出拓扑中的每个 Bus、Device 和 Function,缩写为 BDF。PCIe 主要有两种地址空间 :PCI 配置空间 256B,PCIe 配置空间 4KB,PCIe 兼容 PC

2024-07-08 18:29:00 1316

原创 RPM 打包入门(基于openEuler)

主要参考内容(均为官方文档):本文的环境:WSL2 + Qemu + OpenEuler24.03提到的所有示例,均在该环境下测试。

2024-06-21 16:20:26 1719

原创 Qemu 启动 OpenEuler24.03(riscv64)

本文使用 WSL2 Ubuntu22.04虚拟机。

2024-06-20 17:22:59 750

原创 了解 RISC-V IOMMU

软件。

2024-04-09 09:53:55 2373

原创 【学一点RISC-V】RISC-V IMSIC

这两个数组中的每个位都对应不同的中断标识号,不同来源的 MSI 可通过该标识号在中断文件中进行区分。

2024-03-13 11:32:36 2293

原创 【学一点RISC-V】ACLINT(高级核心本地中断控制器)文档

【此 RISC-V ACLINT 规范定义了一组内存映射设备,这些设备为多 HART RISC-V 平台上的每个 HART 提供处理器间中断 (IPI) 和定时器功能】。在多 HART RISC-V 平台上运行的操作系统、引导加载程序和固件需要这些 HART 级 IPI 和定时器功能。SiFive 核心本地中断器 (CLINT) 器件已在 RISC-V 领域广泛采用,以提供机器级 IPI 和定时器功能。不幸的是,

2024-03-08 14:19:04 1824

原创 实践:qemu 运行 linux riscv with AIA(APLIC&IMSIC)

但我在文中提供的仓库中,未发现 patch 文件(仅找到了对比,如果一个一个复制粘贴则太多了,也可能是我的方式不正确),索性直接下载其源代码。这些补丁也可在 riscv_aia_v14 分支中找到,网址是:https://github.com/avpatel/linux。这里我使用了ubuntu-base的文件系统,如果有需要可以参考我之前的博客,或者使用其他文件系统也可以。按照前文内容,在 Linux-6.8-rc5 的基础上,添加相应的patch即可。,直接下载 riscv_aia_v14分支的代码。

2024-03-07 13:26:52 1898 2

原创 RISCV 中断控制器 PLIC & APLIC (非MSI部分)

在 RISC-V 系统中,【平台级中断控制器(PLIC)负责处理通过导线而非 MSI 发出信号的外部中断】。当系统中的 RISC-V 硬件没有 IMSIC 时,硬件本身也不支持 MSI,此类硬件的所有外部中断都必须通过 PLIC。但是,【即使在有 IMSIC 且大多数中断都通过 MSI 通信的计算机中,某些设备中断仍通过专用线路发出信号的情况也很常见】。特别是对于不需要在系统中启动总线事务的设备(或设备控制器)来说,支持 MSI 的成本尤其高昂,因此有线中断是一种省钱的替代方案。

2024-03-05 14:58:56 2825

原创 【Jailhouse论文】Look Mum, no VM Exits! (Almost)

多核 CPU 已成为许多现代嵌入式系统的标准组件。它们的虚拟化扩展使得可以隔离服务,并且在实现混合关键性或其他分割系统方面变得越来越流行。我们介绍了Jailhouse,一个基于Linux的、与操作系统无关的分区型虚拟化监控程序,它使用了新颖的架构方法,将 Linux(一个功能强大的通用系统)与严格隔离的特殊用途组件结合起来。我们的设计目标是以简单性取胜于功能,并建立一个最小的代码库,最大限度地减少监控程序的活动。硬件直接分配给客户机,并结合延迟初始化方案,

2024-02-22 23:50:59 841

原创 动态标签分配 - 以 Nanodet-plus 中的代码为例

以下用()包住的内容为张量尺寸大小,对于理解也十分有帮助。

2024-02-06 22:34:43 537

原创 SPEC CPU 2017 Qemu RISCV

部分问题同x86上执行一致, 可以参考我的 quick start 的记录的博客: https://blog.youkuaiyun.com/jingyu_1/article/details/135695701。https://blog.youkuaiyun.com/zhangkefan116/article/details/128019033 (这篇文档中提到的问题, 基本都遇到了, 参考并可解决了)注意: 以下的记录均为 根用户 的操作, 在存在用户的情况下, 则类似于使用了。类似名字的压缩包,这就是制作tools的源码。

2024-01-26 17:59:06 1641

原创 ubuntu-base(arm64与riscv64) 根文件系统, 并用qemu启动

Qemu 启动 Linux(aarch64 与 riscv64):https://blog.youkuaiyun.com/jingyu_1/article/details/135746098?Ubuntu-base 镜像: https://cdimage.ubuntu.com/ubuntu-base/releases/jammy/release/,你也可以选择你需要的版本进行安装。配置,比如遇到我上面所说的情况,或者后续内核缺少某个模块的时候再来修改配置,重新编译,(以及后续提到的安装内核模块)

2024-01-24 15:00:01 1930

原创 Qemu 启动 Linux(aarch64 与 riscv64)

其他老哥的方案(借助gitee):https://blog.youkuaiyun.com/limanjihe/article/details/122373942。可以参考我的另一篇博客:https://blog.youkuaiyun.com/jingyu_1/article/details/135631512。可以参考我之前的博客:https://blog.youkuaiyun.com/jingyu_1/article/details/135625477。

2024-01-22 13:37:13 2335 1

原创 SPEC CPU 2017 quick start

我这里选择在 linux(ubuntu22.04.3) 上安装 SPEC CPU 2017,gcc、g++、gfortran 均使用 sudo apt install xxx 安装(其版本为11.4.0)官方的 SPEC CPU 2017 在 Unix Systems 安装示例:https://www.spec.org/cpu2017/Docs/install-guide-unix.html以下是官方提供的系统需求:我自己的配置:x86-64、Linux、32G内存、512G磁盘这部分我没有操作,官方提供示

2024-01-19 13:37:14 3345 1

原创 Ubuntu22 启动后只有鼠标没有桌面

本人机器配置:CPU Intel Core i7-11700,显卡 Nidia Quadro P400 ,操作系统为 Ubuntu22.04.3。现象:刚安装的操作系统,在隔天(断电)重新启动时出现只有鼠标没有桌面的情况。有说搜狗输入法的(我刚安装的系统,肯定不是这个情况)可以进入一个虚拟终端,输入用户名/密码,然后。但是仅当次有效,再断电重启,仍会出现此问题。有说驱动相关的(有可能是这个情况)之后,可以单次进入桌面。简而言之就是驱动相关。

2024-01-17 09:54:11 2815

原创 构建 aarch64 以及 riscv64 交叉编译工具链(裸机)

工具链官方仓库:https://github.com/riscv-collab/riscv-gnu-toolchain。我要安装的是 riscv64-unknown-elf-xxx 交叉编译工具,对应的是 Newlib 部分。其他工具链也类似,在给出的两个官方链接中提供了所有的交叉工具链,选择合适的工具构建即可。因为我的需求是构建裸机的程序,所以我选择了裸机相关的交叉工具链。表示的是 通用的、无特定的系统供应商 的含义。为了在任意位置可以使用,将其添加到环境变量中。,和我的操作系统和平台架构是一致的。

2024-01-16 18:01:19 2317

原创 Qemu 之安装(源码安装)

这部分参考文档 https://wiki.qemu.org/Hosts/Linux。,会编译安装各种平台的Qemu模拟器(aarch64,riscv64等)如果要添加新的目标平台,则直接在qemu的源码目录执行。的64位机器,以及两个平台上的应用程序。表示的是模拟整个物理机,使用。,然后重新配置、编译、安装即可。仅模拟用户应用程序,使用。之后就可以在任意目录下使用。指定了随后的安装路径。,建议自定义一个路径。我这里的配置支持模拟。

2024-01-16 15:04:48 1683

原创 LDR伪指令和ADR指令的区别

其中 0xfd8000000000 是在链接器脚本中指定的虚拟地址,改地址是通过 ldr 伪指令从内存中读取出来的,如果使用 adr 指令是不可以的,偏移超过了指令的范围,adr 获取的地址与当前 PC 有关系,此时运行在物理地址空间,所以 adr 得到的是物理地址。要求 label 和 $PC 位置在 正负1MB的范围内(这个数值和上面提到的imm有关)看 Operation 即可看出作用,Xd 赋值为 $PC + imm。

2024-01-13 16:49:32 485

原创 学习体系结构 - AArch64内存管理

本指南介绍了AArch64中的内存转换,这是内存管理的关键。它解释了如何将虚拟地址转换为物理地址转换表格式,以及软件如何管理转 换转译后备缓冲器(TLB)。这些信息对于任何正在开发底层代码的人都很有用,比如启动代码或驱动程序。它与任何正在编写设置或管理内存管理单元(MMU)代码的人特别相关。在本指南的最后,您可以检查您的知识。您将了解如何将虚拟地址转换为物理地址。您将能够命名不同的地址空间,并描述地址空间如何映射到翻译的各个阶段。您还将了解软件何时必须执行TLB维护,以及TLB维护命令的语法。

2023-12-31 18:00:13 1395

原创 学习体系结构 - AArch64 异常模型

在 AArch64 中,只能将 EL0 中的异常到更高的异常级别处理,而不会将异常处理到 EL0,也没有 EL0 向量表。如执行态和安全态一章所述,**PE 也只能在复位或发生异常或从异常返回时改变执行态。**AArch32 和 AArch64 执行状态之间的交互称为进程间交互。

2023-12-31 17:49:17 1628 8

原创 学习体系结构 - Arm 通用中断控制器 v3 和 v4

借助DeepL翻译 + 个人补充一些内容建议提前阅读: arm 的 异常模型。

2023-12-28 09:33:43 2368

原创 学习体系结构 - AArch64 虚拟化

这个寄存器包含了一系列的字段,

2023-12-20 14:15:01 1664

原创 【论文】 虚拟机 和 Linux容器 的 最新性能比较

云计算广泛使用虚拟机(VM),因为它们允许工作负载相互隔离,并在一定程度上控制资源使用。然而,虚拟化所涉及的额外抽象层次会降低工作负载的性能,而这种性能会以更低的性价比转嫁给客户。基于容器的虚拟化的最新进展简化了应用程序的部署,同时继续允许控制分配给不同应用程序的资源。在本文中,我们探讨了传统虚拟机部署的性能,并将其与 Linux 容器的使用进行了对比。我们使用了一套对 CPU、内存、存储和网络资源有压力的工作负载。**我们使用 KVM 作为代表性管理程序,使用 Docker 作为容器管理器。

2023-12-14 13:45:18 1417

原创 计算机系统启动过程

处理器的启动过程, 实际上就是一个特定程序的执行过程。这个程序我们称之为。

2023-12-04 15:38:04 1098

原创 嵌入式大赛-海思赛道训练+部署记录(mmpose)

本项目采用的是商汤MMPose下的YOLOX-Pose海思开源仓库路径。

2023-08-21 15:10:34 745

原创 Nanodet-train.py代码解读

Nanodet是一个轻量的目标检测网络,具有很多优点,当前很多网络都将它作为超越的对象。下面是本人对于train.py的代码注释,加入了部分个人的理解。

2023-01-14 20:51:49 470 1

原创 Java用BufferedReader快读

java使用scanner在读取大批量数据时效率比较低,借助BufferedReader类来提高读取效率。

2023-01-12 21:51:51 274

原创 微信小程序 获取nickName为 “微信用户” 而且 头像 为null

微信小程序

2022-11-18 00:16:08 1363

原创 【组原课设团队任务】FlyBird+FPGA+RISCV

组原课设团队任务

2022-10-30 21:55:42 788

原创 使用mmdetection做实例分割

本文关键词:mmdetection、实例分割、mask-rcnn、HTC、coco。

2022-08-06 19:53:13 7330 10

原创 算法-并查集模版

并查集是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有连通子图、求最小生成树的。查找时,递归找祖宗,祖宗集合号等于本身时停止。回归时,把查找路径上的所有节点统一为祖宗的集合号。合并时,只需要把一个元素的祖宗集合号改为另一个元素的祖宗集合号。算法和求最近公共祖先(LCA)等。...

2022-07-26 20:35:13 186

原创 mmdetection配置文件-参数含义

mmdetection配置文件的各参数含义

2022-07-18 21:00:54 952

Coppeliasim linux 安装包

Coppeliasim linux 安装包

2022-01-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除