Ubuntu 22.04下RISC-V QEMU虚拟化环境构建与内核调试实战

在Ubuntu 22.04上,从源码编译QEMU 6.2.0到运行OpenHarmony轻量系统的完整踩坑记录 本文详细记录了在Ubuntu 22.04上从源码编译QEMU 6.2.0到运行OpenHarmony轻量系统的完整过程,包括环境准备、依赖安装、编译配置、常见问题解决及性能优化技巧。特别针对RISC-V架构和开源鸿蒙系统提供了实用指南,帮助开发者高效搭建嵌入式开发环境。 阅读详情

1. 环境准备与依赖安装

在Ubuntu 22.04上搭建RISC-V QEMU虚拟化环境,首先需要安装必要的依赖包。这些工具链和库文件是后续编译和调试的基础,缺一不可。我建议直接使用apt包管理器安装,避免从源码编译的繁琐过程。

打开终端,执行以下命令安装基础开发工具和交叉编译工具链:

sudo apt update
sudo apt install -y autoconf automake autotools-dev curl python3 python3-pip \
    libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo \
    gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build git cmake \
    libglib2.0-dev libslirp-dev gcc-riscv64-linux-gnu

这里特别要注意gcc-riscv64-linux-gnu这个包,它是Ubuntu官方仓库提供的RISC-V交叉编译器。实测下来这个版本的稳定性相当不错,避免了自行编译工具链可能遇到的各种兼容性问题。

安装完成后,验证交叉编译器是否正常工作:

riscv64-linux-gnu-gcc --version

如果输出类似"riscv64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"的信息,说明工具链安装成功。

接下来还需要安装一些QEMU相关的依赖库。虽然Ubuntu仓库提供了预编译的QEMU包,但为了获得最新的RISC-V虚拟化支持,我们仍然需要从源码编译特定版本的QEMU:

sudo apt install -y libfdt-dev libpixman-1-dev libcap-ng-dev libattr1-dev \
    libusb-1.0-0-dev libbrlapi-dev libncursesw5-dev libspice-server-dev \
    libusbredirparser-dev libiscsi-dev librados-dev libseccomp-dev \
    libsnappy-dev liblzo2-dev libssh-dev libvde-dev libvdeplug-dev \
    libxml2-dev libnfs-dev libaio-dev libjemalloc-dev

这些依赖包确保了QEMU能够支持各种虚拟化功能和硬件模拟。我在实际搭建过程中发现,如果缺少某些开发库,后续的编译过程可能会静默失败,或者运行时出现难以调试的段错误。

2. 编译支持RISC-V的QEMU

虽然Ubuntu 22.04官方仓库提供了QEMU软件包,但版本相对较旧,可能缺少最新的RISC-V虚拟化特性。因此我们需要从源码编译QEMU 10.0.0版本,这个版本对RISC-V KVM支持比较完善。

首先下载QEMU源码并切换到稳定版本:

git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git checkout v10.0.0

QEMU使用了子模块来管理一些依赖组件,需要初始化和更新:

git submodule init
git submodule update --recursive

这个过程可能会花费一些时间,因为需要下载多个子模块的代码。如果网络连接不稳定,可以考虑使用--depth 1参数来减少下载量。

配置QEMU编译选项时,我们只针对RISC-V架构进行编译,这样可以显著减少编译时间:

./configure --target-list="riscv32-softmmu riscv64-softmmu" \
    --enable-kvm --enable-virtfs --enable-slirp \
    --enable-debug --enable-debug-info

这里有几个关键选项值得说明:--enable-kvm开启KVM虚拟化支持,这是实现硬件加速的关键;--enable-debug和--enable-debug-info包含调试信息,为后续的内核调试做准备。

开始编译QEMU:

make -j$(nproc)

使用-j$(nproc)参数可以让编译过程充分利用所有CPU核心,大大加快编译速度。在我的16核机器上,完整编译大约需要15-20分钟。

编译完成后,验证QEMU是否支持RISC-V:

./build/qemu-system-riscv64 --version

应该能看到输出类似"QEMU emulator version 10.0.0"的信息。为了使用方便,建议将编译好的QEMU添加到系统路径中:

echo 'export PATH=$PATH:'$(pwd)/build >> ~/.bashrc
source ~/.bashrc

3. 获取和编译Linux内核

有了QEMU模拟器,接下来需要准备RISC-V架构的Linux内核。我们使用官方内核源码并进行交叉编译。

克隆Linux内核源码仓库:

git clone https://github.com/torvalds/linux.git linux-riscv
cd linux-riscv

建议切换到稳定的LTS版本分支,避免开发版可能的不稳定性:

git checkout v6.6

配置交叉编译环境变量:

export ARCH=riscv
export CROSS_COMPILE=riscv64-linux-gnu-

创建专门的编译输出目录,保持源码树的干净:

mkdir ../build-riscv64
make O=../build-riscv64 defconfig

使用defconfig会生成一个默认的配置,但为了调试需要,我们还需要调整一些配置选项:

make O=../build-riscv64 menuconfig

在配置界面中,需要确保以下选项被启用:

  • CONFIG_DEBUG_INFO - 包含调试信息
  • CONFIG_GDB_SCRIPTS - GDB调试脚本支持
  • CONFIG_KVM - KVM虚拟化支持
  • CONFIG_SERIAL_EARLYCON - 早期控制台输出
  • CONFIG_FRAME_POINTER - 帧指针调试

保存配置后开始编译内核:

make O=../build-riscv64 -j$(nproc)

内核编译过程相对较长,在我的机器上大约需要30分钟。编译完成后,在build-riscv64/arch/riscv/boot/目录下会生成Image文件,这就是我们要使用的内核镜像。

验证内核镜像是否生成:

file ../build-riscv64/arch/riscv/boot/Image

应该显示为"Linux kernel ARM64 boot executable Image"之类的信息。

4. 构建最小根文件系统

Linux内核需要一个根文件系统才能正常启动。我们使用BusyBox来构建一个极简的根文件系统,包含最基本的命令行工具。

首先下载和编译BusyBox:

wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2
tar -xf busybox-1.36.1.tar.bz2
cd busybox-1.36.1

配置BusyBox为静态链接,避免依赖外部库:

make defconfig
make menuconfig

在配置界面中,选择以下选项:

  • Settings -> Build static binary (no shared libs) - 静态链接
  • Settings -> Cross compiler prefix - 设置为riscv64-linux-gnu-

开始编译BusyBox:

make -j$(nproc) install

编译完成后,创建根文件系统目录结构:

mkdir -p _install/{etc/init.d,dev,proc,sys,apps}

创建基本的设备节点:

sudo mknod _install/dev/console c 5 1
sudo mknod _install/dev/null c 1 3

设置初始化脚本_install/etc/init.d/rcS:

#!/bin/sh

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev

echo "Welcome to RISC-V Linux!"
exec /bin/sh

给初始化脚本添加执行权限:

chmod +x _install/etc/init.d/rcS

使用cpio打包根文件系统:

cd _install
find . | cpio -o -H newc > ../../rootfs.cpio
cd ../..

这样就生名为rootfs.cpio的根文件系统镜像,后续启动QEMU时会用到这个文件。

5. 配置KVMTOOL和libfdt

为了获得更好的虚拟化性能,我们需要编译KVMTOOL,这是一个轻量级的KVM管理工具。但首先需要解决libfdt库的依赖问题。

RISC-V交叉工具链默认不包含libfdt库,需要手动编译安装:

git clone https://github.com/dgibson/dtc.git
cd dtc
export CC="riscv64-linux-gnu-gcc -mabi=lp64d -march=rv64gc"
make libfdt -j$(nproc)

获取系统根目录路径:

SYSROOT=$(riscv64-linux-gnu-gcc -print-sysroot)

安装libfdt到工具链的系统目录:

sudo make NO_PYTHON=1 NO_YAML=1 DESTDIR=$SYSROOT PREFIX=/usr \
    LIBDIR=/usr/lib64/lp64d install-lib install-includes

现在编译KVMTOOL:

git clone https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git
cd kvmtool
export ARCH=riscv
export CROSS_COMPILE=riscv64-linux-gnu-
make lkvm-static

使用strip工具减小二进制文件大小:

riscv64-linux-gnu-strip lkvm-static

将编译好的KVMTOOL复制到根文件系统中备用:

cp lkvm-static ../busybox-1.36.1/_install/apps/

6. 启动QEMU虚拟机

现在所有组件都已准备就绪,可以启动RISC-V虚拟机了。使用以下命令启动QEMU:

qemu-system-riscv64 -cpu rv64 -M virt -m 512M -nographic \
    -kernel build-riscv64/arch/riscv/boot/Image \
    -initrd rootfs.cpio \
    -append "root=/dev/ram rw console=ttyS0 earlycon=sbi"

各个参数的含义如下:

  • -cpu rv64:指定CPU类型为RV64GC
  • -M virt:使用QEMU的virt机器类型
  • -m 512M:分配512MB内存
  • -nographic:不使用图形界面,直接输出到控制台
  • -kernel:指定内核镜像路径
  • -initrd:指定初始根文件系统
  • -append:内核启动参数

如果一切正常,应该能看到内核启动日志,最后出现BusyBox的shell提示符。可以执行一些基本命令如ls、cat /proc/cpuinfo来验证系统是否正常工作。

为了测试KVM功能,可以在虚拟机内加载KVM内核模块:

insmod /apps/kvm.ko

然后使用KVMTOOL启动嵌套虚拟化:

/apps/lkvm-static run -m 128 -c2 --console serial -p "console=ttyS0 earlycon" -k /apps/Image --debug

这个过程可能会遇到一些权限问题,需要确保/dev/kvm设备存在且权限正确。

7. GDB内核调试配置

内核调试是开发过程中不可或缺的部分。首先在编译内核时确保开启了调试选项,然后使用QEMU的调试功能。

启动QEM时添加调试参数:

qemu-system-riscv64 -cpu rv64 -M virt -m 512M -nographic \
    -kernel build-riscv64/arch/riscv/boot/Image \
    -initrd rootfs.cpio \
    -append "root=/dev/ram rw console=ttyS0 earlycon=sbi" \
    -s -S

-s参数表示在1234端口开启GDB调试服务器,-S参数表示启动时暂停CPU等待调试器连接。

在另一个终端中启动GDB:

riscv64-linux-gnu-gdb build-riscv64/vmlinux

在GDB中连接QEMU:

target remote :1234

现在可以设置断点、单步执行、查看变量等。常用的GDB命令包括:

  • b function_name:在函数处设置断点
  • c:继续执行
  • ni:单步执行(不进入函数)
  • si:单步执行(进入函数)
  • info registers:查看寄存器值
  • x/10i $pc:反汇编当前指令

为了更方便地调试,可以加载内核提供的GDB脚本:

source build-riscv64/vmlinux-gdb.py

这个脚本提供了很多内核调试专用的命令,如lx-symbols自动加载符号表,lx-dmesg查看内核日志等。

8. 常见问题与解决方案

在环境搭建过程中,我遇到过不少坑,这里分享一些常见问题的解决方法。

问题1:QEMU启动失败,提示缺少KVM支持

检查CPU是否支持虚拟化:

cat /proc/cpuinfo | grep vmx  # Intel
cat /proc/cpuinfo | grep svm  # AMD

确保KVM内核模块已加载:

sudo modprobe kvm
sudo modprobe kvm_intel  # 或 kvm_amd

检查当前用户是否在kvm组中:

sudo usermod -aG kvm $USER

问题2:内核编译错误,提示缺少依赖

确保所有必要的开发包都已安装:

sudo apt install -y libssl-dev libelf-dev bc

问题3:GDB连接失败或无法识别目标

检查GDB版本是否支持RISC-V架构:

riscv64-linux-gnu-gdb --version

确保编译内核时开启了CONFIG_DEBUG_INFO和CONFIG_GDB_SCRIPTS选项。

问题4:根文件系统启动失败

检查init脚本的权限和执行路径,确保BusyBox编译为静态链接:

file busybox-1.36.1/busybox

应该显示"statically linked"而不是"dynamically linked"。

问题5:性能问题

如果虚拟机运行缓慢,可以尝试启用KVM加速:

qemu-system-riscv64 -enable-kvm -cpu host ...

增加内存和CPU核心数:

qemu-system-riscv64 -m 2G -smp 4 ...

9. 高级调试技巧

掌握了基础调试方法后,可以进一步使用一些高级调试技巧来提高效率。

内核oops分析:当内核发生panic时,会打印oops信息。可以使用gdb解析oops中的地址:

gdb build-riscv64/vmlinux
l *0xffffffffc0000000

动态输出:除了重新编译内核外,可以使用动态调试功能:

echo 'file kernel/* +p' > /sys/kernel/debug/dynamic_debug/control

性能分析:使用perf工具进行性能分析:

perf record -g -e cycles:u -- ./workload
perf report

内存调试:开启内核的内存调试选项,检测内存泄漏和使用后释放等问题:

echo 1 > /proc/sys/kernel/kmemleak
kmemleak_scan

跟踪点:使用内核跟踪点来监控特定事件:

echo 1 > /sys/kernel/debug/tracing/events/sched/sched_switch/enable
cat /sys/kernel/debug/tracing/trace_pipe

这些高级技巧需要结合具体的问题场景来使用,在实际调试过程中往往能起到关键作用。

环境搭建和调试是一个反复迭代的过程,遇到问题时不要气馁,多查阅文档和社区资源。RISC-V生态还在快速发展中,每个版本都可能带来新的特性和改进。保持环境更新,定期同步最新的内核和工具链代码,能够获得更好的体验和性能。

使用QEMU搭建Linux内核开发与调试环境:从编译到调试实战指南 在操作系统内核开发与驱动调试领域,硬件模拟技术是提升效率、保障安全的关键工具。其核心原理是通过软件模拟完整的计算机硬件环境,包括CPU、内存及外设,从而在宿主机上构建一个隔离、可控的沙盒。这项技术的核心价值在于为开发者提供了一个安全、可复现且高效的实验平台,尤其适用于学习内核启动流程、调试设备驱动或进行跨架构(如ARM、RISC-V)的内核移植。在应用场景上,它极大地解决了物理硬件调试效率低下、环境难以复现以及资源受限等痛点。本文聚焦于开源硬件模拟器QEMU,详细阐述如何利用其系统模式,结合GDB调试器,手 阅读详情

相关推荐

从零构建RISC-V嵌入式Linux系统:QEMU模拟与工具链实战

嵌入式Linux系统开发是理解计算机底层运行原理的关键技术领域,涉及从硬件初始化到用户空间的全栈知识。其核心在于掌握系统引导、内核编译与根文件系统构建三大环节,通过交叉编译工具链将源代码转化为目标平台可执行代码。这项技术的价值在于打破对预编译SDK的依赖,使开发者能深度定制和优化系统,尤其适用于物联网、边缘设备等资源受限场景。本文聚焦于RISC-V这一开放指令集架构,结合QEMU系统级模拟器,详细演示如何从零开始搭建完整的嵌入式Linux运行环境。通过实践,读者不仅能深入理解Linux启动流程,还能掌握在Q

weixin_34197488的博客 327

Ubuntu 22.04下RISC-V QEMU虚拟化与内核调试环境全攻略

本文详细介绍了在Ubuntu 22.04系统上搭建完整的RISC-V QEMU虚拟化与内核调试环境的全流程。内容涵盖交叉编译工具链安装、QEMU配置编译、Linux内核编译、根文件系统制作以及使用GDB进行内核调试的实用技巧,为开发者提供了一套稳定可靠的RISC-V开发环境解决方案。

v5w6x的博客 223

使用QEMU搭建Linux内核开发调试环境:从编译到GDB源码级调试

虚拟化与模拟技术是现代系统开发与测试的基石,通过在软件层面模拟完整的硬件环境,为开发者提供了安全、可控的实验平台。QEMU作为一款开源的通用机器模拟器,其核心原理是通过二进制翻译实现跨架构的指令模拟,不依赖特定CPU虚拟化扩展,从而提供了无与伦比的灵活性。这一技术对于操作系统内核开发具有重要价值,它允许开发者在隔离的沙箱环境中测试底层代码,避免因内核崩溃导致物理机故障,同时支持快速迭代和精确的调试控制。在Linux内核开发场景中,QEMU能够模拟从加电启动开始的完整计算机系统,结合GDB调试协议,开发者可以

weixin_33922672的博客 562

从零构建RISC-V虚拟开发栈:Ubuntu、QEMU与内核编译的深度协同

本文详细介绍了如何在Ubuntu系统上从零搭建完整的RISC-V虚拟开发环境,涵盖QEMU模拟器配置、交叉编译工具链安装、Linux内核编译与根文件系统构建。通过深度协同这些核心组件,开发者能够快速建立高效的RISC-V开发与测试平台,显著提升嵌入式开发效率。

egg99的博客 802

Ubuntu 22.04 LTS虚拟机工程化部署指南

Linux虚拟机是嵌入式开发的核心工作环境,其稳定性与配置合理性直接决定交叉编译、设备调试和系统构建的效率。基于内核调度机制与文件系统原理,LTS长期支持版本提供确定性更新周期和工具链兼容性保障;VMware虚拟化层需启用VT-x/EPT并合理分配CPU、内存与SCSI存储资源,以支撑systemd服务、udev设备管理及串口通信等关键能力。该环境广泛应用于ARM/RISC-V平台的U-Boot移植、Linux内核裁剪、Yocto构建及JTAG/USB-TTL调试等典型场景,是构建可复现、可维护、可协同的嵌

wdx012345的博客 1026

告别纯理论:用QEMU+RISC-V+OpenHarmony轻量系统,5分钟搭建你的第一个‘开源鸿蒙’硬件模拟实验室

本文提供了一种极简方法,使用QEMU和RISC-V架构在5分钟内快速搭建OpenHarmony轻量系统模拟环境。无需深入理解底层原理或复杂编译过程,只需Ubuntu环境(或WSL2)即可体验开源鸿蒙系统,适合学生和技术爱好者快速验证和学习。

weixin_30696427的博客 494

操作系统—xv6内核环境配置

xv6内核环境配置

Voltline的博客 6402

Buildroot与QEMU实战:从零构建嵌入式Linux系统

嵌入式Linux系统开发是物联网和智能设备领域的核心技术,其核心在于如何高效、可靠地构建定制化的操作系统镜像。构建系统(如Buildroot)通过自动化编译流程,将Linux内核、根文件系统和应用程序打包成完整的可启动镜像,大幅提升了开发效率。其技术价值在于提供了高度可配置的框架,允许开发者根据目标硬件和应用需求,灵活选择软件包和库,从而生成精简且功能专一的系统。在实际应用中,这种快速原型构建能力对于驱动开发、内核测试和教学演示尤为重要。通过结合QEMU这一硬件模拟器,开发者可以在无需物理开发板的情况下,在

weixin_30908941的博客 412

手把手搭建RISC-V虚拟化环境:QEMU与OpenSBI实战指南

虚拟化技术是云计算和系统软件的核心基础,它通过软件模拟硬件环境,实现资源的隔离与高效复用。其原理主要依赖于CPU的虚拟化扩展(如RISC-V的H扩展)和特权级切换机制,由Hypervisor(或VMM)在硬件与客户操作系统之间进行协调。这项技术的价值在于提升服务器资源利用率、增强系统安全性与灵活性,并支持容器、云原生等现代架构。在嵌入式系统、数据中心和边缘计算等场景中,虚拟化都扮演着关键角色。本文聚焦于使用QEMU模拟器和OpenSBI固件,快速构建一个支持RISC-V虚拟化扩展的仿真环境,这是深入理解RI

WGH100817的博客 326

QEMU多架构模拟实战:从x86到ARM与国产系统适配

虚拟化技术是现代IT基础设施的基石,QEMU作为老牌开源模拟器,通过动态二进制翻译和硬件辅助虚拟化,实现了x86、ARM、RISC-V等多元架构的跨系统模拟。它既能解决嵌入式开发中缺乏实体开发板的问题,又能为内核调试、跨架构程序测试提供统一环境,更是国产操作系统适配验证的主流工具。本文围绕QEMU的安装部署、磁盘镜像创建、多架构系统启动、QMP接口调用及批量任务编排展开,结合KVM加速、网络映射和串口调试等实操技巧,帮助开发者在普通电脑上快速搭建多架构测试平台,并梳理典型问题排查路径与实践建议。

weixin_34081595的博客 376

Ubuntu安装riscv-gnu-toolchain和riscv-tools

ubuntu安装riscv-gnu-toolchain

weixin_43283275的博客 1万+

在Ubuntu22.04 jammy下用qemu模型riscv32环境装鸿蒙(未完成,待续)

子目录包含部分Qemu RISC-V虚拟化平台验证的OpenHarmony kernel_liteos_m的代码,目录名为。RISC-V 虚拟化平台是一个的目标设备,通过它来模拟一个通用的、基于RISC-V架构的单板。这次模拟的配置是:RISC-V架构,1个CPU,128M内存。提示: 系统内存硬编码为128MB。

skywalk8163的专栏 1715

南开软院操作系统实验指南:从xv6到RISC-V内核调试实战

操作系统作为计算机系统的核心,其内核设计涉及进程管理、内存分配与文件系统等基础机制。在工程实践中,通过模拟器搭建实验环境是学习内核实现的常用手段。QEMU配合RISC-V架构的教学操作系统xv6,能够完整呈现从启动到系统调用的执行链路。本文围绕xv6源码,分析系统调用添加、进程调度算法、自旋锁与文件系统崩溃一致性等关键实验,并总结QEMU调试技巧与常见故障排查方法。同时,针对操作系统课程考试,梳理调度、同步、内存三大模块的复习框架,帮助读者将理论知识与代码实现对应起来,真正掌握操作系统内核的运行原理。

weixin_34252090的博客 475

Ubuntu22.04搭建QEMU嵌入式开发环境全攻略

本文介绍了在Ubuntu 22.04系统上搭建QEMU嵌入式开发环境的完整流程。主要内容包括: QEMU简介:说明QEMU作为跨架构硬件模拟器在嵌入式开发中的重要性,支持ARM、RISC-V等多种架构的模拟验证。 环境配置: 安装必要的依赖包 编译QEMU源代码(aarch64架构) 编译Linux内核(6.6版本) 制作ARM64架构的根文件系统(rootfs) 系统运行: 使用QEMU启动ARM64虚拟机 配置SSH服务实现远程登录 提供自动化脚本简化挂载、打包和登录操作 成果验证:展示了串口控制台和S

YYRAN_ZZU的博客 401

最新推荐-2026年固态电池+锂电正极+硅基负极等关键技术实践PPT合集(55份).zip

2026年最新固态电池+锂电正极+硅基负极等关键技术实践PPT合集,共55份。供大家查阅。 一、固态电池 1.全固态电池用硅基负极材料研究进展 2.全固态电池硅基负极的开发思考 3.功能型固态电解质设计及界面调控 4.固态电池及关键材料研发与产业化进展 5.固态电池的产业化应用探索 6.固态锂电池开发现状及未来展望 7.固态锂离子电池正极结构设计与材料选择 8.固态锂金属电池设计与应用 9.硫化物全固态电池石墨和硅负极性能调控技术 10.硫化物固态电解质行业应用 11.聚合物基固态电解质与固态电池的关键技术 12.蜂鸟声共振技术-固态电池产业化的革命性创新 13.长安汽车固态电池应用探索 14.高安全性固态电池技术发展趋势 15.高性能硫化物全固态锂电池解决方案 16.高硅体系的膨胀解决方案 二、硅基负极 1.化学气相沉积碳包覆技术在硅基负极材料中的应用 2.新型粘结剂解决 硅基负极膨胀问题 3.氧化亚硅负极材料化学预锂化与界面设计 4.流化床法生产磷酸铁锂及硅负极材料研究 5.石墨烯包覆硅碳负极 6.硅基材料的发展现状及展望 7.硅基负极与固态电解质 8.硅基负极技术与进展 9.硅基负极材料体积膨胀解决策略 10.硅基负极材料及其结构设计 11.硅基负极材料的冶金法制备 12.硅基负极材料的发展与应用 13.硅基负极材料研究进展 14.硅基负极材料:从基础研究到产业应用 15.硅基负极析锂行为及调制研究 16.硅碳负极低成本制造技术报告 17.硅碳负极制备用多孔碳的开发 18.硅碳负极挑战和进展 19.硅碳负极新路线及关键材料制备 20.硅碳负极锂离子电池应力特性研究 21.锂电石墨负极材料工程化技术进步 22.锂离子电池负极材料 23.高容量石墨烯-硅基复合负极材料的研究进展 三、锂电正极 1.基于AI和图论结构化学的锂电池的材料基因探索 2.废旧磷酸铁锂电池梯次及再生利用进展 3.电动汽车大功率充电标准体系与检测认证实践 4.磷酸铁及磷酸铁锂异物防控管理 5.磷酸铁锂正极材料:液相法合成及产业化应用研究 6.磷酸锰铁锂正极材料的研究现状 7.车用动力电池安全标准化工作进展及未来展望 8.锂电层状氧化物正极材料的原子尺度失效机制 9.锂电正极材料工厂异物防控管理图册 10.锂离子电池高熵正极材料成分设计及储锂机制研究 11.高压实磷酸铁锂正极材料生产工艺配方.docx 12.高安全正极材料添加剂提升三元锂电安全性 13.高比能富锂锰基电池关键技术 14.高能量密度锂离子电池正极材料及应用研究 15.高镍单晶三元正极材料研究 16.三元高电压单晶正极材料

复合材料RVE建模与力学性能分析实战指南

代表体积元(RVE)建模是复合材料多尺度分析的核心技术,通过建立微观结构与宏观性能的定量关联,可准确预测材料力学行为。本文基于ABAQUS平台,详细解析三材料(纤维/基体/界面相)RVE建模全流程,包括参数化几何建模、周期性网格划分策略、材料属性定义技巧等关键技术环节。针对碳纤维增强环氧树脂等典型复合材料,提供网格控制参数建议和材料参数参考表,并重点说明周期性边界条件的实现方法与验证标准。通过Python脚本自动化处理和优化分析流程,可显著提升计算效率,为复合材料设计提供可靠仿真依据。

weixin_34062469的博客 549

从零开始实现MIT6.S081实验环境配置(Ubuntu+Qemu+Xv6)

踩坑无数次总结出的MIT6.S081实验环境配置经验,包括Ubuntu 20.04+Qemu+Xv6的环境配置,VScode上远程连接Linux操作系统,以及配置过程中容易遇到的各种问题

2301_79981746的博客 2049

Android 面试题 Handler篇

1.Handler的实现原理。

ViewHandKownHealth的博客 955

从零手动构建RISC-V嵌入式Linux:QEMU实战与工具链深度解析

交叉编译工具链是嵌入式开发的核心基础,它允许开发者在宿主机上生成目标架构的可执行代码。其工作原理在于通过特定的编译器、链接器和库文件,将源代码转换为目标机器指令。掌握手动构建工具链的技术价值在于,开发者能彻底理解GCC、Binutils和C库(如glibc)之间的循环依赖关系,从而具备应对各种定制化需求和解决复杂版本冲突的能力。这一技能在嵌入式Linux系统开发、内核移植以及追求极致优化的场景中尤为重要。本文以RISC-V架构和QEMU模拟器为具体应用场景,详细演示了如何从源码开始,分步构建完整的riscv

weixin_34032792的博客 456

report_delay_calculation/check_timing/report_annotated_parasitics/report_analysis_coverge

如何debug 一颗cell 或一段net 的delay, 常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该report 中可以得到: 表头需要特别关注的是command, 确定report 的对象及加的option; From/To pin: cell 的input pin 和...

diedai7174的博客 1800

Z-Image Turbo LoRA训练全流程:从数据标注到模型部署的保姆级指南(附ai-toolkit配置)

本文提供了一份详尽的Z-Image Turbo LoRA模型训练全流程指南,涵盖从数据准备、智能标注、参数调优到最终模型部署与Z-Image集成的每个环节。重点解析了使用ai-toolkit训练整合包进行高效训练的核心技巧与避坑方法,旨在帮助用户稳定训练出高质量的专属角色模型。

weixin_29088655的博客 968

基于QEMU搭建Linux内核开发调试环境:从编译到GDB源码级调试

在操作系统开发与底层软件工程中,虚拟化技术为内核开发提供了安全可控的沙盒环境。通过模拟完整的计算机系统,开发者可以在隔离的虚拟环境中进行内核修改、驱动测试和系统调优,避免了物理硬件调试的风险与低效。QEMU作为开源的机器模拟器,支持多种CPU架构和硬件加速,其与GDB的无缝集成特性,使得源码级单步调试成为可能。这种技术组合特别适用于Linux内核开发、驱动调试以及操作系统教学实验等场景,为开发者构建了一个可随时启停、深入观察内存与寄存器状态的“活”内核实验室。

weixin_34038293的博客 411

不用编码器也能玩转BLDC?手把手教你反电动势定位实战

本文详细介绍了无刷直流电机(BLDC)的无传感器控制方案——反电动势定位法,通过STM32实战演示如何实现基本控制。文章涵盖核心原理、硬件准备、信号采集技巧及代码实现,特别适合静音风扇、小型机器人等对成本敏感的应用场景,帮助开发者降低硬件成本并提升系统可靠性。

lg888的博客 900
上一篇: VESC生态的隐藏玩法:用OBESC_4S_MINI解锁固件刷写的无限可能
下一篇: RT-Thread调试中Stm32_putc卡死与分散加载文件关联分析
python9snake
博客等级 码龄1天 0粉丝 1724原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值