linaro:Open source software for ARM

ARM 206浏览

 一、嵌入式系统采用交叉编译的方式在本机编译目标系统的可执行软件,在这个过程中需要使用交叉编译工具链,包括交叉编译的编译器、连接器、目标库等。如果在ARM目标板运行Linux系统,因为Linux内核代码使用GCC编译器,为此GNU提供了GCC编译器针对ARM目标平台的支持。由于GCC开源的特点,用户可以手动编译生成符合自己需要的ARM GCC编译器等。如Linux平台ARM的交叉编译器是arm-linux-gcc。

手工编译交叉编译工具链需要编译用到的库和源代码,如Linux内核代码(linux-2.6.18.tar.bz2)、glibc库(glibc-2.3.2.tar.bz2)、工具程序(binutils-2.15.tar.bz2)、内核线程包(glibc-linuxthreads-2.3.2.tar.gz)、编译器(gcc-3.3.6.tar.gz)。

编译工具链还可以通过编译工具链的脚本crosstool建立交叉编译环境,通过指定不同的参数,crosstool脚本建立指定版本的GCC编译器和glibc程序库,还可以直接下载已经编译好的工具链,由于linux内核与GCC编译器存在依赖关系,选择目标平台Linux内核版本后,可以参考内核版本说明对GCC编译器的最低要求选择GCC编译器版本。

 

二、建立Linux内核头文件

交叉编译器需要通过内核头文件获取目标平台的系统函数调用信息,需要通过对其脚本配置生成目标平台的头文件。

 

三、编译安装binutils

Binutils是交叉编译工具链中的工具包,包括连接器、汇编器和用于目标文件和档案的工具,针对二进制代码的维护。

 

四、编译安装GCC的C编译器

建立arm-linux-gcc交叉编译器,用于编译内核、bootloader等,并建立glibc库。

 

五、编译安装glibc库

GNUglibc库是Linux系统程序的组成部分,用户开发的目标平台应用程序,需要glibc库的支持。

 

六、编译安装gcc的C、C++编译器

在建立的glibc库基础上,编译gcc支持C和C++语言程序的编译。

 

Linaro™与开源社区合作开发出基于开源软件的设备产品。为ARM V7A体系结构(ARM Cortex-A8 & Cortex-A9 processors)的系统开发基于开源代码的工具链软件,为Android  ubuntu提供试用版的软件源代码,包括Linux内核和电源优化工具等,Linaro 和三星发布了一款成本较低的 ARM 开发板,使用三星双核 ARM Cortex-A9
处理器,Exynos 4210 芯片组,使用1G 的高带宽的 DDR3 内存。该开发板提供高性能的 Exynos 移动计算平台。Linaro将为该开发板提供 Linaro 试用版的软件源码(Android,Ubuntu)。Linaro试用版基于最新的 Linux 内核和相关工具。该开发板可以用来开发包括平板电脑、智能手机以及其他类似的应用。同时还集成了面向移动平台的接口,包括 HDMI, SD card, WiFi,Bluetooth, Stereo audio, LCD, JTAG 调试和摄像头。