ARM交叉编译
所谓交叉编译可以理解为在一类机器上编写(源代码)、编译得到可执行程序(通常是PC机),在另一类机器上运行(比如arm设备),这是嵌入式和非嵌入式的一个很大的区别。之所以用交叉编译,是因为
(1)嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。
(2)交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和应用级软件)。
由于可执行程序不能本地运行调试,因此必须配合一定手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享等)将可执行程序加载到目标嵌入式设备上运行及调试。 交叉编译器比如arm-none-eabi-gcc和arm-linux-gnueabihf-gcc这俩常用,你们用哪个多点? 讲得挺清楚的,我第一次搞交叉编译就是踩在“可执行文件不能跑”的坑上了…… 想问下大佬,你是怎么调试的?我一直在用串口打印+gdb远程。 有时候不同的glibc版本也会有问题,目标机系统老一点就得注意兼容。 如果目标板支持nfs挂载,真心方便,改完代码直接就能跑。 推荐个buildroot,做交叉编译环境和根文件系统真省事。 想起来我之前在Windows上用WSL搭建交叉环境,还挺折腾的。 JTAG调试虽然慢点,但调裸机程序太香了,直接断点单步。 有没有推荐的交叉调试教程?我gdb那部分还是懵懵的。 请问一下,如果目标是Cortex-A53,交叉工具链是不是得选aarch64的?
页:
[1]