[077]uboot学习环境搭建

2023-02-06  本文已影响0人  王小二的技术栈

背景

最近在看一些uboot相关的内容,有一些疑惑,但是暂时我又没有硬件板子,我就准备用QEMU模拟调试。

uboot是什么东西?

uboot(universal bootloader)是一种可以用于多种嵌入式CPU得BootLoader程序,换言之,uboot是bootloader的一个子集

本人电脑系统

Win10 + WSL2 (ubuntu 20.04)
Win10安装QEMU,WSL2用来编译uboot镜像

一、WSL2编译uboot镜像

1.1 下载uboot代码

git clone https://github.com/u-boot/u-boot

1.2 编译uboot源码

因为我要编译arm64,所以用这个指令,缺少的工具链,请自行安装sudo apt-get install gcc-aarch64-linux-gnu

export CROSS_COMPILE=aarch64-linux-gnu-
make qemu_arm64_defconfig
make

编译后的uboot代码根目录会有uboot.bin这个二进制程序,也就是uboot镜像了。


二、Win10安装QEMU

1.1 下载QEMU

window x64 qemu包下载地址:https://qemu.weilnetz.de/w64/

1.2 安装QEMU

双击安装即可,最重要的是记住安装选项,打开System emulation中的下落项选择需要模拟的系统x86_64,arm,riscv64,riscv32等系统,尽量安装默认,全部勾选即可

1.3 配置环境变量

把QEMU的安装路径添加到系统的环境变量中。


1.3 在Ubuntu安装QEMU

如果你是单独ubuntu系统,可以参考这个链接https://blog.csdn.net/Q1302182594/article/details/52134673

三、QEMU启动uboot

执行一下命令即可,u-boot.bin就是编译uboot生成的二进制文件。

qemu-system-aarch64.exe -machine virt -nographic -cpu cortex-a57 -bios u-boot.bin

启动后的界面,类似linux的控制台,我尝试执行了一下ls

四、Clion导入源码

安装compiledb

pip install compiledb

用这个指令替代1.2 中的最后一步make,将在根目录下生成一个compile_commands.json

compiledb make

用Clion以项目的方式打开compile_commands.json即可。

总结

接下来你就可以方便的修改调试uboot的代码了,学习uboot的代码挺有意思的。

参考资料

https://u-boot.readthedocs.io/en/latest/build/index.html
https://u-boot.readthedocs.io/en/latest/board/emulation/qemu-arm.html

上一篇下一篇

猜你喜欢

热点阅读