第11章Linux操作系统基础
用于开发和调试目标板上所用到的操作系统、应用程序等所有软件。这些在宿主机上开发程序、在目标板上运行程序的形式,一般就称作交叉开发
第11章Linux操作系统基础
第11章Linux操作系统基础
目标板(Target)可以是嵌入式应用软件的实际运行环境,其实也可以是代替实际环境的仿真系统(如软件模拟器)。
宿主机(Host)通过并口、网络联接或调试插口(如JTAG仿真器)与目标机通讯。宿主机的软硬件资源比较丰富,其操作系统主要有Windows和Linux两种,其上用于开发程序的那套软件工具如何安装LINUX,一般称作开发工具链。
第11章Linux操作系统基础
GNU开发工具链(toolchain)主要包括GNUCompilerCollection、GNUlibc以及拿来编译、测试和剖析软件的GNUbinutils三个大的模块。
第11章Linux操作系统基础
基于ARM平台的交叉工具链,这儿将其目标平台名为arm-linux-gnu,例如arm-linux-gcc、arm-linux-gdb等。
分步建立交交叉开发工具链的整个过程:
到相关的网站下载包括binutils、gcc、glibc(如)及linux(如):glibc和内核源代码的版本必须与目标机上实际使用的版本保持一致.
第11章Linux操作系统基础
申明以下环境变量的目的是在以后编译工具库的时侯用到,很便捷输入linux操作系统基础,尤其是可以减少输错路径的风险。
、安装binutils
inutils是GNU工具之一linux makefile,它包括联接器、汇编器和其他用于目标文件和档案的工具,它是二补码代码的维护工具。安装Binutils工具包含的程序有addr2line、ar、as、c++filt、gprof、ld、mm、objcopy、ranlib、readelf、size、strings、strip、libiberty、libbfd和libopcodes。
第11章Linux操作系统基础
4.配置linux内核头文件
编译器须要通过系统内核的头文件来获得目标平台所支持的系统函数调用所须要的信息。对于LINUX内核,最好的方式是下载一个合适的内核,之后复制获得头文件。
首先执行makemrproper进行清除工作。
接出来执行makeconfigARCH=arm(或makemenuconfig/xconfigARCH=arm)进行配置.
第11章Linux操作系统基础
5.第一次编译gcc
完成此过程须要执行三个步骤,分别如下:
(1)更改t-linux下的内容
(2)配置gcc
(3)编译、安装gcc
第11章Linux操作系统基础
6.交叉编译glibc
这一步骤生成的代码是针对目标机cpu的,因而它属于一个交叉编译过程。该过程要用到linux内核头文件linux操作系统基础,默认路径为$PREFIX/arm-linux/sys-linux,因此须要在$PREFIX/arm-linux中构建一个名为sys-linux的软联接,使其内核头文件所在的include目录.或则也可以在接出来要执行的configure命令中使用--with-headers参数指定linux内核头文件的实际路径。
第11章Linux操作系统基础