交叉编译保姆级教学
1.什么是交叉编译
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。
2.为什么需要交叉编译
主要原因是:嵌入式系统中的资源太少
具体的解释就是:交叉编译出来的程序,所要运行的目标环境中,各种资源,都相对有限,所以很难进行直接的本地编译
最常见的情况是:在进行嵌入式开发时,目标平台,即嵌入式开发板,比如是最大主频200MHz的ARM的CPU,加上32M的RAM,加上1G的Nand Flash等等。在如此相对比较紧张的硬件资源的前提下,在已经运行了嵌入式Linux的前提下,是没法很方便的直接在嵌入式Linux下,去本地编译,去在ARM的CPU下,编译出来,供ARM的CPU可以运行的程序的。因为编译,开发,都需要相对比较多的CPU,内存,硬盘等资源,而嵌入式开发上的那点资源,只够嵌入式(Linux)系统运行的,没太多剩余的资源,供你本地编译。
3.怎么进行交叉编译
2.1 开始前准备
2.1.1 背景介绍:
本机:Ubuntu20.04 kernel-5.4.0 架构:x86_64
客机: 统信UOS kernel-4.4.131 架构:aarm64
目的:在本机编译phy driver ko文件给客机装载使用
2.1.2 开始前的准备:
1.下载kernel: 网上下载kernel-4.4.131于本机(客机在客户那里)国内镜像kernel加速地址找到对于版的kernel解压
2. 下载安装aarch64-linux-gnu-gcc: 因为客户机器架构是arm64的所以下载这个交叉

本文详细介绍了如何进行交叉编译,特别是在资源有限的嵌入式环境中。以Ubuntu主机和aarch64架构的统信UOS为目标平台,通过下载相应的kernel源码和交叉编译工具,设置环境变量,修改Makefile,最终成功编译出用于客机的phydriver KO文件。过程中涉及的关键步骤包括kernel配置、模块编译和交叉编译环境的搭建。
最低0.47元/天 解锁文章
3084

被折叠的 条评论
为什么被折叠?



