本帖最后由 凛葵依 于 2022-6-16 08:52 编辑
1.学习U-Boot中。代码获取地址:https://ftp.denx.de/pub/u-boot/
U-Boot的目录结构,取自源码中README
Directory Hierarchy:
====================
/arch Architecture-specific files
/arc Files generic to ARC architecture
/arm Files generic to ARM architecture
/m68k Files generic to m68k architecture
/microblaze Files generic to microblaze architecture
/mips Files generic to MIPS architecture
/nds32 Files generic to NDS32 architecture
/nios2 Files generic to Altera NIOS2 architecture
/powerpc Files generic to PowerPC architecture
/riscv Files generic to RISC-V architecture
/sandbox Files generic to HW-independent "sandbox"
/sh Files generic to SH architecture
/x86 Files generic to x86 architecture
/xtensa Files generic to Xtensa architecture
/api Machine/arch-independent API for external apps
/board Board-dependent files
/boot Support for images and booting
/cmd U-Boot commands functions
/common Misc architecture-independent functions
/configs Board default configuration files
/disk Code for disk drive partition handling
/doc Documentation (a mix of ReST and READMEs)
/drivers Device drivers
/dts Makefile for building internal U-Boot fdt.
/env Environment support
/examples Example code for standalone applications, etc.
/fs Filesystem code (cramfs, ext2, jffs2, etc.)
/include Header Files
/lib Library routines generic to all architectures
/Licenses Various license files
/net Networking code
/post Power On Self Test
/scripts Various build scripts and Makefiles
/test Various unit test files
/tools Tools to build and sign FIT images, etc.
u-boot源码中存在大量开发板的对应代码,
这些代码都是经过验证可以正常工作的。
编译时只需要在u-boot代码根目录下,
make <开发板名>deconfig
就会输出提示
configuration written to .config
此时u-boot即被配置为开发板的的编译环境。
再
make all
经过编译后,即生成出二进制文件u-boot.bin和u-boot.dtb等文件。
u-boot源码中虽然已经提供了大量开发板的代码,
可对于较新的开发板依然是没有的,
但一般硬件厂家会提供他们已经调试好的u-boot源码,
或者直接给用户二进制文件。
但对于开发人员,
还是通过自行编译学习一下源码较好。
u-boot的代码参考了linux的代码思想,
可以直接在linux下编译,
开发人员只要具备linux基本操作技能,
能读懂makefile即可。
对于配置文件,
除了修改<开发板名>defconfig文件外,还可以用更友好的menuconfig图像界面进行配置。
但使用前要先安装依赖
sudo apt-get install build-essential
sudo apt-get install libncurses5-dev
源码根目录下make menuconfig即可调出如下界面,根据源码中README文件进行配置即可。
2.问题来了- -x86的机器上怎么编译arm64的u-boot
那就要使用交叉编译工具了,具体网上文档很多,配置也比较简单,
安个包,改个环境配置即可。
以下这2篇都有介绍
https://blog.csdn.net/leacock1991/article/details/113703897
https://blog.csdn.net/Darton_Zhang/article/details/78236366
|