[其它产品/技术] ARM交叉编译

[复制链接]
 楼主| jf101 发表于 2025-7-31 13:14 | 显示全部楼层 |阅读模式


所谓交叉编译可以理解为在一类机器上编写(源代码)、编译得到可执行程序(通常是PC机),在另一类机器上运行(比如arm设备),这是嵌入式和非嵌入式的一个很大的区别。之所以用交叉编译,是因为

(1)嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。

(2)交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和应用级软件)。

由于可执行程序不能本地运行调试,因此必须配合一定手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享等)将可执行程序加载到目标嵌入式设备上运行及调试。
公羊子丹 发表于 2025-7-31 17:26 | 显示全部楼层
交叉编译器比如arm-none-eabi-gcc和arm-linux-gnueabihf-gcc这俩常用,你们用哪个多点?
周半梅 发表于 2025-7-31 17:27 | 显示全部楼层
讲得挺清楚的,我第一次搞交叉编译就是踩在“可执行文件不能跑”的坑上了……
帛灿灿 发表于 2025-7-31 17:27 | 显示全部楼层
想问下大佬,你是怎么调试的?我一直在用串口打印+gdb远程。
童雨竹 发表于 2025-7-31 17:28 | 显示全部楼层
有时候不同的glibc版本也会有问题,目标机系统老一点就得注意兼容。
万图 发表于 2025-7-31 17:29 | 显示全部楼层
如果目标板支持nfs挂载,真心方便,改完代码直接就能跑。
Wordsworth 发表于 2025-7-31 17:30 | 显示全部楼层
推荐个buildroot,做交叉编译环境和根文件系统真省事。
Bblythe 发表于 2025-7-31 17:30 | 显示全部楼层
想起来我之前在Windows上用WSL搭建交叉环境,还挺折腾的。
Pulitzer 发表于 2025-7-31 17:31 | 显示全部楼层
JTAG调试虽然慢点,但调裸机程序太香了,直接断点单步。
Uriah 发表于 2025-7-31 17:32 | 显示全部楼层
有没有推荐的交叉调试教程?我gdb那部分还是懵懵的。
Clyde011 发表于 2025-7-31 17:32 | 显示全部楼层
请问一下,如果目标是Cortex-A53,交叉工具链是不是得选aarch64的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

255

主题

1848

帖子

3

粉丝

255

主题

1848

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部