Chap5嵌入式Linux应用程序开发.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Chap5嵌入式Linux应用程序开发.ppt》由会员分享,可在线阅读,更多相关《Chap5嵌入式Linux应用程序开发.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式Linux应用程序开发n5.1开发环境的建立进行项目开发前,首先要做的是搭建一套基于Linux操作系统的应用开发环境,一般由目标板目标板和宿宿主机主机所构成。目标板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主机来完成。开发环境对硬件没有特殊的要求,但是为了双方之间建立连接关系,关键的接口包括串口、以太网口和USB口等是必不可少的。交叉编译环境的建立交叉编译交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在宿主机上对即将运行在目标机上的应用程序进行编译,生成可在目标机上运行的代码格式。交叉编译环境交叉编译环境是一个由编译器
2、、连接器和解释器组成的综合开发环境。交叉编译工具交叉编译工具主要包括针对目标系统的编译器gcc、目标系统的二进制工具binutils、目标系统的标准c库glibc和目标系统的Linux内核头文件。建立一个交叉编译工具链是一个相当复杂的过程,为了节省时间,网上有一些编译好的可用的交叉编译工具链可以下载。编译好的交叉编译工具链arm-linux-toolchains.tgz,只需简单地解压缩即可使用:tarxvzfarm-linux-toolchains.tgzC/arm9假设工具链解压缩到目录/arm9。解压完毕后把工具链目录加入到环境变量PATH中即可。简单验证交叉编译工具 n首先用文字输入软
3、件建立一个helloworld.c文件:n#includenintmain(void)nnprintf(helloworldn);nreturn0;nn然后在命令行执行:n$arm-linux-gcchelloworld.c-ohelloworldn$filehelloworldn如果输出以下信息,说明成功建立了编译工具。nhelloworld:ELF32-bitLSBexecutable,ARM,version1,dynamicallylinked(usessharedlibs),notstripped5.2 Linux及开发工具的使用GNU工具的开发流程如下:编写C、C+语言或汇编源程序,
4、用gcc或g+生成目标文件,编写链接脚本文件,用链接器生成最终目标文件(elf格式),用二进制转换工具生成可下载的二进制代码。Linux下的GNU调试工具主要是gdb、gdbserver和kgdb。其中gdb和gdbserver可完成对目标板上Linux应用程序的远程调试。gdbserver是一个很小的应用程序,运行于目标板上,可监控被调试进程的运行,并通过串口与上位机上的gdb通信。开发者可以通过上位机的gdb输入命令,控制目标板上进程的运行,查看内存和寄存器的内容。gcc编译器的使用 gcc最基本的用法是:gccoptionsfile.gcc的整个编译过程分别是:预处理,编译,汇编和链接。
5、常用的选项:-o要求编译器生成指定文件名的可执行文件;-c表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由.c或.cc变成.o的目标文件;-g在编译的时候提供以后对程序进行调试的信息;-E只进行预处理就停止,而不做编译、汇编和链接;-S只进行编译,而不做汇编和链接;-O对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高;-Wall指定产生全部的警告信息。编译实例$gcc-gcc编译器就会生成一个hello的可执行文件。在hello.c的当前目录下执行./hello就可以看到程序的输出结果,在屏幕上打印出“Hellotheworld
6、”的字符串来。nGNU编译器生成的目标文件默认格式为elf(executivelinkedfile)格式,这是Linux系统所采用的可执行链接文件的通用文件格式。elf格式由若干个段(section)组成,由标准c源代码生成的目标文件中包含以下段:.text(正文段)包含程序的指令代码,.data(数据段)包含固定的数据,如常量,字符串等,.bss(未初始化数据段)包含未初始化的变量和数组等。Makefile文件和Make命令 Makefile文件描述了目标文件之间的依赖关系,以及指定编译过程中使用的工具。一个工程中的源文件不计其数,按其类型、功能、模块分别放在若干个目录中。Makefile定
7、义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。Makefile的好处就是“自动化编译”,一旦写好,只需要一个Make命令,整个工程完全自动编译,极大地提高了软件开发的效率。nMakefile的作用是根据配置的情况,构造出需要编译的源文件列表,然后分别编译,并把目标代码链接到一起,最终形成可执行的二进制文件。Makefile中一般包含如下内容:n需要由make工具创建的项目,通常是目标(target)文件和可执行文件。n要创建的项目依赖于哪些文件。n创建每个项目时需要运行的命令。例example.o:example.cexamp
8、le.hg+-c-第一行指定example.o为目标,并且依赖于example.c和example.h文件。随后的行指定了如何从目标所依赖的文件建立目标。n当example.c或example.h文件在编译之后又被修改,则make工具可自动重新编译example.o,如果在前后两次编译之间,example.c和example.h均没有被修改,而且example.o还存在的话,就没有必要重新编译。makemake是一个命令工具,是一个解释Makefile中指令的命令工具。make命令执行时,需要一个Makefile文件,以告诉make命令怎么去编译和链接程序。一般来说,最简单的就是直接在命令行下
9、输入make命令,make命令会找当前目录的Makefile来执行,一切都是自动的。引导程序的移植嵌入式软件系统4个层次引导程序BootLoader操作系统内核文件系统用户应用程序PC机中的引导程序由BIOSBIOS(其本质就是一段固件程序)和位于硬盘MBR中的引导程序一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的引导程序读到系统的RAM中,然后将控制权交给引导程序。引导程序的主要运行任务是将内核映像从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。BootLoader是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,可以初始化硬件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Chap5 嵌入式 Linux 应用程序 开发
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内