前言
文章基于HD-IMX6ULL-MB系列开发板测试验证,该开发板由武汉芯路遥科技有限公司与武汉万象奥科电子有限公司合作推出。此开发板基于NXPiMX6ULL系列Cortex-A7高性能处理器设计,适用于快速开发一系列具有创新性的产品如人机界面工业4.0扫描仪、车载终端以及便携式医疗设备。
i.MX6ULL开发板
1.交叉编译器介绍
1.1.交叉编译器
在X86架构Linux系统下进行C程序开发时,我们使用系统的gcc编译器进行代码的编译,编译生成的可执行程序直接在X86架构下的PC下运行的,这个过程叫做本地编译(NativeCompile)。而如果该C程序想要编译出来后放到ARM处理器架构的系统上运行,则需要在X86架构Linux系统下使用支持ARM的编译器编译,这个编译器我们通常称为交叉编译器(CrossCompiler)。
而在一种平台上编译出能在另外一种体系结构完全不同处理器上运行程序的编译过程,叫做交叉编译(CrossCompile)。比如在PC平台(X86CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86CPU平台上是不能运行的,必须放到ARMCPU平台上才能运行,虽然两个平台用的都是Linux系统。
交叉编译器交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils、gcc和glibc三个部分组成。有时出于减小libc库大小的考虑,也可以用别的c库来代替glibc,例如uClibc或newlib。
之所以几乎所有的ARM开发板开发都选择交叉编译,这是因为这些开发板生产出来后并没有系统,这时需要在PC上使用交叉编译器交叉编译操作系统源码,为它构建一个完整的Linux系统。另外,由于CPU处理能力、外存和内存存储空间的大小限制,它们不足以能够运行gcc编译环境,所以嵌入式开发绝大部分的过程都是交叉编译。
1.2常用的交叉编译器
1.2.1Codesourcery交叉编译器
Codesourcery一直是在做ARM目标GCC的开发和优化,它直接提供Windows和Linux下的二进制版本交叉编译器,不用下载源码包一步一步自己编译,非常方便。它的ARMGCC早期在市场上非常优秀,很多公司在作嵌入式产品开发时,都会直接下载使用该公司提供的交叉编译器。
Codesourcery推出的产品叫SourceryG++LiteEdition,其中基于