- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式开发交叉编译环境 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。 过程 下载源文件、补丁和建立编译的目录 选择下载软件版本 建立工作目录 输出环境变量 建立编译目录 建立内核头文件 建立二进制工具(binutils) 建立初始编译器(bootstrap gcc) 建立c库(glibc) 建立全套编译器(full gcc) 下载源文件、补丁和建立编译的目录 选定软件版本号 选择软件版本号时,先看看glibc源代码中的INSTALL文件。那里列举了该版本的glibc编译时所需的binutils 和gcc的版本号。例如在 glibc-2.2.3/INSTALL 文件中推荐 gcc 用 2.95以上,binutils 用 2.10.1 以上版本。 下载源文件、补丁和建立编译的目录 建立工作目录 建立用户目录下的首目录 在当前用户目录中建立项目目录,如用户liang,因此用户目录为 /home/liang,先建立一个项目目录embedded。 ? ? 建立次目录: build-tools、kernel 和 tools 下载源文件、补丁和建立编译的目录 输出环境变量 我们输出如下的环境变量方便我们编译。 $export PRJROOT=/home/liang/embedded $export TARGET=arm-linux $export PREFIX=$PRJROOT/tools $export TARGET_PREFIX=$PREFIX/$TARGET $export PATH=$PREFIX/bin:$PATH ? 下载源文件、补丁和建立编译的目录 建立编译目录 为了把源码和编译时生成的文件分开,一般的编译工作不在的源码目录中,要另建一个目录来专门用于编译。用以下的命令来建立编译你下载的binutils、gcc和glibc的源代码的目录。 $cd $PRJROOT/build-tools $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的补丁的目录 建立内核头文件 把你从 下载的内核源代码放入 $PRJROOT /kernel 目录 进入你的 kernel 目录:$cd $PRJROOT /kernel 解开内核源代码 $tar -xzvf linux-2.4.21.tar.gz 或 $tar -xjvf linux-2.4.21.tar.bz2 小于 2.4.19 的内核版本解开会生成一个 linux 目录,没带版本号,就将其改名。 给 Linux 内核打上你的补丁 $cd linux-2.4.21 $patch -p1 ../patch-2.4.21-rmk2 编译内核生成头文件 $make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig 建立内核头文件 你也可以用 config 和 xconfig 来代替 menuconfig,但这样用可能会没有设置某些配置文件选项和没有生成下面编译所需的头文件。推荐大家用 make menuconfig,这也是内核开发人员用的最多的配置方法。配置完退出并保存,检查一下的内核目录中的 include/linux/version.h 和 include/linux/autoconf.h 文件是不是生成了,这是编译 glibc 是要用到的,version.h 和 autoconf.h 文件的存在,也说明了你生成了正确的头文件。 建立二进制工具(binutils) 建立二进制工具(binutils) 编译并安装 binutils $make $make install $PREFIX/bin 下的生成的文件 $ls $PREFIX/bin arm-linux-addr2line??? arm-linux-gasp??? arm-linux-o
您可能关注的文档
- 山东省冠县武训高级中学高三物理复习课件.ppt
- 山东-化学方程式的表示.ppt
- 山西煤炭资源整合过程及商机(晋商律师事务所).ppt
- 山西联通PTT业务产品介绍.ppt
- 嵌入式ARM开发教程之ARM9微控制器LPC3180的软硬件平台设计.ppt
- 山西运城市房地产市场调查报告(2012年12月).ppt
- 山西省电力公司营销自动化系统建设方案2-0.ppt
- 嵌入式Linux下C++程序设计--07多态,运算符重载,虚函数,抽象类.ppt
- 嵌入式Linux下C++程序设计--02-0简单程序设计.ppt
- 嵌入式实时操作系统μCOS原理与实践1.ppt
- 2025年超星尔雅学习通《劳动通论》章节测试及参考答案【能力提升】.docx
- 2025年社区工作者考试试题库附答案(精练).docx
- 2025年法律常识题库word.docx
- 2025年计算机知识题库含大题及参考答案【综合题】.docx
- 2025年计算机知识题库含大题附参考答案ab卷.docx
- 2025年法律常识题库带答案(培优b卷).docx
- 2025年国家电网招聘之经济学类考试题库附参考答案【达标题】.docx
- 2025年注册消防工程师之消防安全技术实务题库及参考答案(培优).docx
- 2025年中国聚四氟乙烯不粘涂料项目投资可行性研究报告.docx
- 2025至2030年中国大屏幕手机行业市场竞争格局分析及投资方向研究报告.docx
最近下载
- 湖北省2022年普通高中学业水平选择性考试历史试题.docx VIP
- 大件垃圾清运(建筑、装修垃圾)重点难点分析及解决措施.docx VIP
- (完整版)基于MATLAB的智能控制系统的介绍与设计实例最新毕业论文.pdf VIP
- 2024年贵州省中考语文试题及答案.pdf VIP
- 核电厂建设工程预算定额.pptx VIP
- YDT841.1-2016地下通信管道用塑料管第1部分:总则.docx VIP
- 应急预案的编制培训课件.pptx VIP
- 普陀区区域影像中心和区域检验中心项目可行性建设方案.pdf
- 金融服务居间协议(协议范本).doc VIP
- 2023年《建筑工程施工质量验收统一标准》.doc VIP
文档评论(0)