- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章的要求 第5章、嵌入式Linux开发环境的搭建 掌握嵌入式交叉编译环境的搭建 掌握嵌入式主机通信环境的配置 学会使用交叉编译工具链 学会配置Linux下的minicom和Windows下的超级终端 学会在Linux下和Windows下配置TFTP服务 学会配置NFS服务 学会编译Linux内核 学会搭建Linux的根文件系统 熟悉嵌入式Linux的内核相关代码的分布情况 掌握Bootloader的原理 了解U-Boot的代码结构和移植 本章的主要内容 5.1 嵌入式开发环境的搭建 5.2 U-Boot移植 5.3 实验内容——创建Linux内核和文件系统 5.1 嵌入式开发环境的搭建 嵌入式交叉编译环境的搭建 (1) 搭建交叉编译环境是嵌入式开发的第一步,也是必备一步。搭建交叉编译环境的方法很多,不同的体系结构、不同的操作内容甚至是不同版本的内核,都会用到不同的交叉编译器 。 交叉编译器完整的安装一般涉及到多个软件的安装(读者可以从/pub/下载),包括binutils、gcc、glibc等软件。其中,binutils主要用于生成一些辅助工具,如objdump、as、ld等;gcc是用来生成交叉编译器的,主要生成arm-linux-gcc交叉编译工具(应该说,生成此工具后已经搭建起了交叉编译环境,可以编译Linux内核了,但由于没有提供标准用户函数库,用户程序还无法编译);glibc主要是提供用户程序所使用的一些基本的函数库。这样,交叉编译环境就完全搭建起来了。 嵌入式交叉编译环境的搭建 (2) 第1步,取得Binutils、GCC、Glibc 源码。 第2步,配置并编译Binutils 取得我们所需要的汇编和连接程序。 第3步,配置并编译GCC 源码生成GCC 编译器。一般是C 编译器首先生成,然后以这个为基础在结合下一步生成的Glibc 的C 函数库,再编译生成其它编译器。 第4步,配置Glibc 并编译生成Glibc 的C 函数库。 第5步,再次配置和编译GCC 源码,生成其它语言的编译器,如C++编译器等。 超级终端的使用 minicom的使用(1) minicom的使用(2) minicom的使用(3) Linux下tftp服务配置(1) Linux下tftp服务配置(2) Windows下tftp服务(tftpd32)配置 串口下载 – 使用DNW工具 内核配置(1) 内核配置(2) 建立依赖关系 由于内核源码树中的大多数文件都与一些头文件有依赖关系,因此要顺利建立内核,内核源码树中的每个Makefile都必须知道这些依赖关系。建立依赖关系通常在第一次编译内核的时候(或者源码目录树的结构发生变化的时候)进行,它会在内核源码树中每个子目录产生一个“.depend”文件。运行“make dep”即可。在编译linux2.6版本的内核通常不需要这个过程,直接输入“make”即可。 创建内核镜像 建立内核可以使用“make”、“make zImage”或“make bzImage”,这里建立的为压缩的内核映像。通常在Linux中,内核映像分为压缩的内核映像和未压缩的内核映像。其中,压缩的内核映像通常名为zImage,位于“arch/$(ARCH)/boot”目录中。而未压缩的内核映像通常名为vmlinux,位于源码树的根目录中。 Linux内核源码目录结构 ? /include子目录包含了建立内核代码时所需的大部分包含文件,这个模块利用其他模块重建内核。 ? /init子目录包含了内核的初始化代码,这里的代码是内核工作的起始入口。 ? /arch子目录包含了所有处理器体系结构特定的内核代码。如:arm、i386、alpha。 ? /drivers子目录包含了内核中所有的设备驱动程序,如块设备和SCSI设备。 ? /fs子目录包含了所有的文件系统的代码,如:ext2,vfat等。 ? /net子目录包含了内核的网络相关代码。 ? /mm子目录包含了所有内存管理代码。 ? /ipc子目录包含了进程间通信代码。 ? /kernel子目录包含了内核核心代码。 为什么需要文件系统? 嵌入式文件系统 嵌入式Linux也支持多种文件系统。虽然在嵌入式中,由于资源受限的原因,它的文件系统和PC机Linux的文件系统有较大的区别,但是,它们的总体架构是一样的,都是采用目录树的结构。在嵌入式中常见的文件系统有cramfs、romfs、jffs、yaffs等 。 cramfs文件系统是一种经过压缩的、极为简单的只读文件系统,因此非常适合嵌入式系统。 busybox busybox是构造文件系统最常用的软件工具包,它被非常
您可能关注的文档
最近下载
- 人教版(2024)七年级上册生物全册集体备课教案 .pdf
- YYT 1789.4-2022 体外诊断检验系统 性能评价方法 第4部分:线性区间与可报告区间.docx VIP
- 江西省临川第一中学2024-2025学年高一上学期开学考试历史试题(解析版).docx VIP
- 2023年汕头市投资控股集团有限公司人员招聘考试题库含答案解析.docx VIP
- 一种凝汽式汽轮机低压缸效率的在线计算方法.pdf VIP
- 口腔名词解释、大题.pdf VIP
- 《革命烈士诗抄》阅读试题及答案.docx VIP
- 招标代理投标文件.doc VIP
- 2022年汕头市投资控股集团有限公司校园招聘考试笔试试题及答案解析.docx VIP
- 2024年四川宜宾初中学业水平考试数学试卷真题(含答案详解).doc VIP
文档评论(0)