嵌入式系统设计大学教程 ch6 嵌入式Linux开发环境及其在ARM上的移植

嵌入式系统设计大学教程 ch6 嵌入式Linux开发环境及其在ARM上的移植

ID:46064135

大小:957.00 KB

页数:60页

时间:2019-11-20

嵌入式系统设计大学教程 ch6 嵌入式Linux开发环境及其在ARM上的移植_第1页
嵌入式系统设计大学教程 ch6 嵌入式Linux开发环境及其在ARM上的移植_第2页
嵌入式系统设计大学教程 ch6 嵌入式Linux开发环境及其在ARM上的移植_第3页
嵌入式系统设计大学教程 ch6 嵌入式Linux开发环境及其在ARM上的移植_第4页
嵌入式系统设计大学教程 ch6 嵌入式Linux开发环境及其在ARM上的移植_第5页
资源描述:

《嵌入式系统设计大学教程 ch6 嵌入式Linux开发环境及其在ARM上的移植》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、嵌入式系统设计大学教程第六章嵌入式Linux开发环境及其在ARM上的移植主要内容6.1嵌入式Linux开发环境6.1.1交叉编译工具介绍6.1.2交叉编译环境的建立6.2嵌入式Linux在ARM平台上的移植6.2.1Linux内核源代码的基本组织情况6.2.2嵌入式Linux内核裁剪方法6.2.3嵌入式Linux内核定制过程6.2.4内核编译及装载6.2.5文件系统及其实现Linux系统移植的一般步骤嵌入式系统的开发和应用层软件的开发不同,有其自身的特点,尤其在开发流程上有很大的不同。从大体上讲,Linux系统移植一般分为下面

2、几步:(1)开发环境的搭建(2)系统引导(3)内核引导(4)设备驱动程序(5)文件系统6.1嵌入式Linux开发环境通常的嵌入式系统的软件开发采用一种交叉开发的方式:交叉开发模型6.1嵌入式Linux开发环境TARGET就是目标板,HOST是开发主机(宿主机)。在开发主机上,可以安装开发工具,编辑、编译目标板的Linux引导程序、内核和文件系统,然后在目标板上运行。通常这种在主机环境下开发,在目标板上运行的开发模式叫作交叉开发。主要内容6.1嵌入式Linux开发环境6.1.1交叉编译工具介绍6.1.2交叉编译环境的建立6.2嵌

3、入式Linux在ARM平台上的移植6.2.1Linux内核源代码的基本组织情况6.2.2嵌入式Linux内核裁剪方法6.2.3嵌入式Linux内核定制过程6.2.4内核编译及装载6.2.5文件系统及其实现6.1.1交叉编译工具介绍1.Binutils工具包GNUBinutils是一套用来构造和使用二进制所需的工具集。建立嵌入式交叉编译环境,Binutils工具包是必不可少的,而且Binutils与GNU的C编译器gcc是紧密集成的,没有Binutils,gcc也不能正常工作。GNUBinutils是一组开发工具,包括连接器、汇

4、编器和其他用于目标文件和档案的工具。Binutils工具包Binutils工具集里主要包含以下一系列的程序:addr2line、ar、as、c++filt、gprof、ld、nm、objcopy、objdump、ranlib、readelf、size、strings和strip,它包含的库文件有:libiberty.a、libbfd.a、libbfd.so、libopcodes.a和libopcodes.so。Binutils工具包(1)GNU汇编器asas工具主要用来将汇编语言编写的源程序转换成二进制形式的目标代码。(2)G

5、NU链接器ldld可以将多个目标文件链接成为可执行程序,同时指定了程序在运行时是如何执行的。(3)GNU库管理器arar将多个可重定位的目标模块归档为一个函数库文件。6.1.1交叉编译工具介绍2.gcc编译器GUNcc(GUNCCompiler,简称gcc)是GUN项目的C编译器套件,能够编译用C、C++、ObjectiveC编写的程序。gcc编译器是基于命令行的。gcc的主要目的是为32位GNU系统提供一个好的编译器,其最终输出的是汇编语言源程序。想要进一步编译成所需要的机器代码,需要引入一些新的工具,比如汇编程序等。gcc

6、编译器(1)gcc的基本用法在使用gcc编译器的时候,通常后面跟一些选项和文件名。gcc命令的基本用法如下:gcc[options][filenames]Gcc选项选项说明-ansi支持ANSI/ISOC的标准语法,取消GUN的语法扩展中与该标准有冲突部分(但这一选项并不能保证生成ANSI兼容的代码)-c只编译不链接-DFOO=BAR在命令行定义预处理宏FOO,其值为BAR-g在可执行程序中包含标准调试信息-ggdb在可执行程序中包含只有GUNdebugger才能识别的大量调试信息-pg编译完成之后,额外产生一个性能分析所需的

7、信息-IDIRNAME将DIRNAME加入到头文件的搜索目录列表中-lFOO链接名为libFOO的函数库-LDIRNAME将DIRNAME加入到库文件的搜索目录列表中。在缺省情况下gcc只链接共享库-O优化编译过的代码gcc编译器(3)函数库和包含文件如果需要链接不在标准目录下的函数库或包含(include)文件,可使用-L{DIRNAME}和-I{DIRNAME}选项指定文件所在的目录,以确保该目录的搜索顺序在标准目录之前。gcc编译器(4)gcc的执行过程使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,

8、而是要经历4个相互关联的阶段。预处理(预编译,Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)6.1.1交叉编译工具介绍3.Make命令与Makefile文件利用make程序的这种自动编译可大大简化开发工作,避免不必要的

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

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

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