- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux交叉编译器
ARM+linux的嵌入式开发工具链的建立
一:目的
1.熟悉ARM+linuxARM+linux的嵌入式开发工具链所需所有软件
2.掌握ARM+linuxARM+linux的嵌入式开发工具链与相关软件的编译方法与配置参数选择
二、内容及步骤
实验内容:
1. 下载源文件、补丁和建立编译的目录
2. 建立内核头文件
3. 建立二进制工具(binutils)
4. 建立初始编译器(bootstrap gcc)
5. 建立c库(glibc)
6. 建立全套编译器(full gcc)
7. 验证所配置工具链
实验步骤:
一:下载源文件、补丁和建立编译的目录
1. 选定软件版本号
我选的各个软件的版本是:
linux-2.4.21+rmk1
binutils-2.11.2
gcc-2.95.3
glibc-2.2.4
glibc-linuxthreads-2.2.4
gcc-2.95.3 的补丁
2. 建立工作目录
首先,我们建立几个用来工作的目录:
在你的用户目录,如在上课中用的目录为zzp,因此用户目录为 /home/zzp,先建立一个项目目录embedded-system。
#pwd
/home/zzp
#mkdir embedded-system
再在这个项目目录 embedded-system 下建立以下几个目录
setup-dir : 存放下载的压缩包
src-dir: 放你下载的 binutils、gcc 和 glibc 的源代码和用来编译这些源代码的目录。
build-dir: 编译目录
kernel: 存放你的内核源代码和内核补丁
tool-chain: 存放编译好的交叉编译工具和库文件
program: 存放编写好的程序
doc: 存放说明文档与脚本文件
#cd embedded-system
#mkdir setup-dir src-dir kernel build-dir tool-chain program doc
3. 输出和环境变量
我们输出如下的环境变量方便我们编译。
#pwd
/home/hgm/embedded-system/build-dir
# cd ../doc
#mkdir scripts
#cd scripts
#vi hjbl
输入以下内容
export PRJROOT=/home/hgm/embedded-system
export TARGET=arm-linux
export PREFIX=$PRJROOT/tool-chain
export TARGET_PREFIX=$PREFIX/$TARGET
export PATH=$PREFIX/bin:$PATH
如果你不惯用环境变量的,你可以直接用绝对或相对路径。我如果不用环境变量,一般都用绝对路径,相对路径有时会失败。环境变量也可以定义在.bashrc文件中,这样当你logout或换了控制台时,就不用老是export这些变量了。然后执行
#. (这里有个空格,大家一定要注意) hjbl
4. 建立编译目录
为了把源码和编译时生成的文件分开,一般的编译工作不在的源码目录中,要另建一个目录来专门用于编译。用以下的命令来建立编译你下载的binutils、gcc和glibc的源代码的目录。
#cd $PRJROOT/build-dir
#mkdir build-binutils build-boot-gcc build-gcc build-glibc gcc-patch
build-binutils-编译binutils的目录
build-boot-gcc-编译gcc 启动部分的目录
build-glibc-编译glibc的目录
build-gcc-编译gcc 全部的目录
gcc-patch-放gcc的补丁的目录
二: 建立内核头文件
进入kernel 目录:
#cd $PRJROOT/kernel
解开内核源代码
#tar -xzvf ../setup-dir/linux-2.4.21.tar.gz
给 Linux 内核打上你的补丁
#cd linux-2.4.21
# patch -p1 ../../setup-dir/patch-2.4.21-rmk1
编译内核生成头文件
#make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
#make dep
你也可以用 config 和 xconfig 来代替 menuconfig,但这样用可能会没有设置某些配置文件选项和没有生成下面编译所需的头文件。推荐大家用 make menuconfig,这也是内核开发人员用的最多的配置方法。配置完退出并保存,检查一下的内核目录中的 include/linux/v
原创力文档


文档评论(0)