生成fw_payload.elf make PLATFORM=generic CROSS_COMPILE=riscv64-unknown-linux-gnu- FW_PAYLOAD_PATH=../images/riscv64-virt.dtb -j128 qemu-system-riscv64 - ...
转载
2021-11-03 15:03:00
254阅读
2评论
特权模式(privilege mode) /* * Only the HART supporting privilege mode specified in the * scratch->next_mode should be allowed to become the coldboot * HAR ...
转载
2021-11-04 16:50:00
297阅读
2评论
最近经常看到关于“如何基于BS架构开发聊天程序”的问题,这里把写的一个简要实例代码贴出来。那么BS的聊天系统,一般两种技术(各有优劣): 1、基于Ajax或子页面刷新的拉模型; 2、基于HTTP长连接的推模型。因为Ajax的“拉模型”,比较常见,这里给出基于HTTP长连接的“推模型”:由三个页面组成: chatmain.jsp 框架页面,引入两个Frame页面,并负责创建聊天室; chatwnd.
转载
2024-08-25 10:39:39
103阅读
基于qemu-riscv从0开始构建嵌入式linux系统ch5-2. 什么是多级BootLoader与opensbi(下)opensbi源码结构目前opensbi的源码结构是比较简单清晰的,除了sbi目录内是核心文件,utils主要是用于设备树解析libfdt以及其他的驱动文件,当然这里的驱动都是使用设备树(设备树是从linux内核中广泛使用的一种设备描述文件,可以简化驱动代码的编写并提高驱动代码
转载
2024-02-28 21:58:02
168阅读
基于qemu-riscv从0开始构建嵌入式linux系统ch5-1. 什么是多级BootLoader与opensbi(上)多级BootLoader随着嵌入式的发展,如今的嵌入式IC也基本上转向了SOC的方式,因而其IC内部不仅仅是一颗cpu核,可能包含各种各样的其他IP,因而相关的上层软件也需要针对性的划分不同的功能域,操作域,安全域等上层应用。为了能支持复杂而碎片化的应用需求,SOC的Boot阶
转载
2024-06-12 11:24:17
198阅读
目录OpenSBI固件类型OpenSBI简介FW_DYNAMIC固件FW_JUMP固件FW_PAYLOAD固件配置和编译OpenSBI常用编译选项总结 OpenSBI作为RISC-V Linux运行在M模式下的固件,其支持三种不同的平台固件类型,今天聊聊它们的区别。OpenSBI固件类型在介绍OpenSBI固件类型前,我们需要知道一点RISC-V Linux的启动过程:启动流程:ZSBL–>
在QEMU上运行OpenSBI+Linux+Rootfs1 编译QEMU2 安装交叉编译工具3 编译OpenSBI4 编译Linux5 创建根文件系统5.1 编译busybox5.2 创建目录结构5.3 制作文件系统镜像5.3.1 创建 ext2 文件5.3.2 将目录结构拷贝进 ext2 文件5.3.3 取消挂载6 运行OpenSBI+Linux+Rootfs 本文所使用的版本,如下:qemu
最近在弄移植大作业,目标是将学校课程中提供的一个操作系统内核(mips)移植到RISCV64位架构上。我的qemu版本是5.2.0,OpenSBI版本是0.8。(最新的QEMU已经把OpenSbi更新到了0.9,不过无伤大雅)设想之中的流程很简单:qemu上电跳转到bios->OpenSBI在M态完成boot第一部分->mret到S态,交给我的内核。(实际上这个流程是我搞完这一堆才总结
基于qemu-riscv从0开始构建嵌入式linux系统ch7. OpenSBI DomainOpenSBI Domain介绍在上一节中,我们已经成功运行了OpenSBI,观察输出log可以看到有一组Domain0的信息打印出来,然后会进入到下级boot流程。那么Domain是做什么用的呢?实际上Domain是用来将SOC内部硬件人为的划分不同权限区域,然后分别独立运行,其使用了riscv的权限管
转载
2024-09-25 08:55:20
450阅读
使用qemu运行riscv64 linux本文使用qemu运行riscv64 linux旨在与真实硬件板保持一致,因此不使用qemu提供的任何直接加载elf文件的方式启动,而是从头到尾均加载原始的bin文件程序给qemu,使其完整的执行opensbi、u-boot、kernel。如读者想利用qemu加载elf文件直接启动内核,是更为容易的,也不必再阅读本文。本文Ver1.0编写于2021.6.6,
转载
2024-04-12 15:44:37
881阅读
0. 序这个系列主要分析generic平台下fw_jump.elf这个文件对应的源码(主要我觉得相比于fw_payload和fw_dynamic,这个最简单),基于版本0.8(因为qemu5.2.0默认使用的这个版本作为bios,并且能够boot最新版的riscv-linux)1. 关于gdb的多线程调试为了揭示opensbi在多核模式下的启动行为,我们使用qemu模拟两个cpu,因此涉及到多线程
实验目的逐步掌握以下过程:源码是如何被编译成可执行文件的。编译成可执行文件后,计算机如何加载操作系统。加载以后,该从哪里去运行操作系统。操作系统的输出信息是怎么输出的呢。实验内容跟着实验指导书的步伐,阅读框架代码。结合框架代码,深刻理解RISC-v。内核的内存布局和入口点设置通过sbi封装好输入输出函数借助bootloader:OpenSBI初始化OS,完成练习。按要求撰写实验报告。内存布局和入口
转载
2024-10-18 18:50:41
67阅读