qemu-9.1.1/build/qemu-system-riscv64 -M virt -m 4G\-bios opensbi/build/platform/generic/firmware/fw_jump.bin\-kernel linux-6.11.4/arch/riscv/boot/Image\-initrd buildroot-2024.08.1/output/images/rootfs.cpio\-app
使用AiBurn进行烧写之前,需要让开发板进入下载模式,具体方法如下: 按住开发板的uboot键,将其与PC通过USB线连接; 或者: 先将昆仑派开发板与PC通过USB线连接; 按住uboot键; 短按reset键; 松开uboot键; 进入下载模式后,AiBurn就可以识别到设备了,如下图所示: 其中,蓝色文字“ArtInChip设备已连接”,即表示已经成...
DragonStub是依托于uboot提供的efi环境来运行的,它基于linux efi stub,负责把dragonos内核加载到对应的位置。并把FDT传递给dragonos内核。它主要是使得dragonos内核的引导不依赖于具体板卡,不用把设备树编译到内核里面去。 有个视频介绍:bilibili.com 爆肝!【DragonStub】可引导任意OS内核,使嵌入式OS内核与具体板卡解耦。
准备下一级的boot 4.3 二级boot的跳转 上述条件为二级boot的跳转准备了环境,此时可以加载uboot,或者rtos,或者Linux了。 5.小结 对于riscv的opensbi的大致的执行流程就分析到这里,基本上概括了一个整体的执行的流程,具体的细节可以通过阅读代码,加上代码注释进行理解。本文只是一个map,大致的流程图,很多细节没有涉及...
qemu-system-misc2. 启动Ubuntu2.1 下载依赖项$ sudo apt install qemu-system-misc opensbi u-boot...
使用qemu运行riscv64 linux本文使用qemu运行riscv64 linux旨在与真实硬件板保持一致,因此不使用qemu提供的任何直接加载elf文件的方式启动,而是从头到尾均加载原始的bin文件程序给qemu,使其完整的执行opensbi、u-boot、kernel。如读者想利用qemu加载elf文件直接启动内核,是更为容易的,也不必再阅读本文。本文Ver1.0编写于20...
使用qemu运行riscv64 linux本文使用qemu运行riscv64 linux旨在与真实硬件板保持一致,因此不使用qemu提供的任何直接加载elf文件的方式启动,而是从头到尾均加载原始的bin文件程序给qemu,使其完整的执行opensbi、u-boot、kernel。如读者想利用qemu加载elf文件直接启动内核,是更为容易的,也不必再阅读本文。本文Ver1.0编写于20...
通过对信息打印的分析,不难看出 第一阶段的boot应该是芯片在探测启动方式,从板子的设计上来看,处理支持SD卡启动,也支持nand flash启动。 第二和第三阶段的启动则是启动了opensbi和uboot,最后启动Linux的kernel。 这样看来,和一般的riscv的启动流程基本一样。
通过对信息打印的分析,不难看出 第一阶段的boot应该是芯片在探测启动方式,从板子的设计上来看,处理支持SD卡启动,也支持nand flash启动。 第二和第三阶段的启动则是启动了opensbi和uboot,最后启动Linux的kernel。 这样看来,和一般的riscv的启动流程基本一样。
这里整理了RISC-V汇编中非常基础的三大块知识,了解了这三大块内容基本可以看懂甚至编译一些简单的汇编程序。 3.1 寻址方式 RISC-V分支指令寻址,在之前的B类型指令就是其中之一。 这种格式可以表示从-4096到4094的分支地址,以2的倍数表示。B型格式包括一个7位操作码、一个3位功能码、两个5位的寄存器操作数( rs1...