打印
[其它产品/技术]

ARM交叉编译

[复制链接]
57|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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远程。

使用特权

评论回复
5
童雨竹| | 2025-7-31 17:28 | 只看该作者
有时候不同的glibc版本也会有问题,目标机系统老一点就得注意兼容。

使用特权

评论回复
6
万图| | 2025-7-31 17:29 | 只看该作者
如果目标板支持nfs挂载,真心方便,改完代码直接就能跑。

使用特权

评论回复
7
Wordsworth| | 2025-7-31 17:30 | 只看该作者
推荐个buildroot,做交叉编译环境和根文件系统真省事。

使用特权

评论回复
8
Bblythe| | 2025-7-31 17:30 | 只看该作者
想起来我之前在Windows上用WSL搭建交叉环境,还挺折腾的。

使用特权

评论回复
9
Pulitzer| | 2025-7-31 17:31 | 只看该作者
JTAG调试虽然慢点,但调裸机程序太香了,直接断点单步。

使用特权

评论回复
10
Uriah| | 2025-7-31 17:32 | 只看该作者
有没有推荐的交叉调试教程?我gdb那部分还是懵懵的。

使用特权

评论回复
11
Clyde011| | 2025-7-31 17:32 | 只看该作者
请问一下,如果目标是Cortex-A53,交叉工具链是不是得选aarch64的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

255

主题

1850

帖子

3

粉丝