嵌入式linux系统裁剪与微内核化

嵌入式linux系统裁剪与微内核化

ID:8832955

大小:892.50 KB

页数:13页

时间:2018-04-09

嵌入式linux系统裁剪与微内核化_第1页
嵌入式linux系统裁剪与微内核化_第2页
嵌入式linux系统裁剪与微内核化_第3页
嵌入式linux系统裁剪与微内核化_第4页
嵌入式linux系统裁剪与微内核化_第5页
资源描述:

《嵌入式linux系统裁剪与微内核化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、嵌入式Linux系统裁剪与编译1构建交叉编译环境1.1交叉编译原理简介嵌入式开发一般都是使用交叉编译环境。交叉编译就是在一台计算机上编译软件,其生成的软件在另一台不同类型处理器的机器上运行。因为嵌入式硬件性能一般无法和家用计算机相比,无法构建开发和编译环境。所以我们只能“借”家用计算机来对目标平台的软件进行开发和编译。此时称家用计算机为宿主机,而目标平台机器为目标机。每一个软件。在编译过程中。都要经过一系列处理,才能从源代码变成可执行目标代码。这一系列处理包括,预编译、高级语言编译、汇编、连接及其

2、重定位。这一套流程里面用到的工具和库的组合,就称为工具链。Linux上常用的开发工具GCC,它包含预编译器cpp,c语言编译器gcc,汇编器as和连接器ld。这个工具链中,还有用于处理二进制包的工具包binutils,整个工具链应该是GCC+binutils+Glibc。为了编译在目标机上运行嵌入式Linux内核,首先我们必须编译目标平台的编译链,而这个链是存放在主机上,故名为交叉编译链。1.2下载构建交叉编译链的工具及其补丁Binutils-2.19.1Busybox-1.13.0GCC-4.3

3、.3GMP-4.2.4MPFR-2.4.1uClibc-0.9.30.1制作交叉编译链定义环境变量定义MYSYS变量为嵌入式系统主目录变量、MYSYS_TARGET变量为目标平台、MYSYS_HOST为主机平台。使用export命令或者将此变量添加.bashrc文件中。cat>~/.bashrc<<“EOF”set+humask022MYSYS=/mnt/mysysLC_ALL=POSIXPATH=${MYSYS}/ctools/bin:/bin:/usr/binexportMYSYSLC_ALL

4、PATHEOF这样我们设置了生成系统的根目录变量。exportMYSYS_HOST=”${MACHTYPE}”exportMYSYS_TARGET=”[XXX]-ulibc-linux-gnu”这两个变量都是编译过程需要使用的.XXX是目标平台,如arm平台,可写为arm-ulibc-linux-gun。首先需要安装内核头文件。makemrpropermakeARCH=${MYSYS_ARCH}headers_checkmakeARCH=${MYSYS_ARCH}INSTALL_HDR_PATH=

5、destheaders_install制作工具链的时候需要使用部分内核头文件。编译GMP。../configure--prefix=/ctools--enabled-mpbsdmakemakeinstall编译MPFR。LDFLAGS="-Wl,-rpath,/ctools/lib"./configure--prefix=/ctools--enable-shared--with-gmp=/ctoolscp-rvdest/include/*${MYSYS}/usr/includemakemake

6、install第一次编译GCCAR=arLDFLAGS="-Wl,-rpath,/ctools/lib"../gcc-4.3.3/configure--prefix=${MYSYS}/ctools--build=${MYSYS_HOST}--host=${MYSYS_HOST}--target=${MYSYS_TARGET}--with-sysroot=${MYSYS}--disable-nls--disable-shared--with-mpfr=/ctools--with-gmp=/c

7、tools--without-headers--with-newlib--disable-decimal-float--disable-libgomp--disable-libmudflap--disable-libssp--disable-threads--enable-languages=cmakemakeinstall此时的编译出来的gcc,是不可以编译c程序的。因为没有连接库。同时安装的Linux头文件也是这一步被使用。GCC必须掌握目标体系的全部细节,这由Linux的内核头文件给出

8、。编译uclibc库,当然也可以编译glibc库。编译最终版gcc../gcc-4.3.3/configure--prefix=${CLFS}/cross-tools--build=${CLFS_HOST}--target=${CLFS_TARGET}--host=${CLFS_HOST}--with-sysroot=${CLFS}--disable-nls--enable-shared--enable-languages=c--enable-c99--enable-long

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。