Chap5 嵌入式Linux应用程序开发课件.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式Linux 应用程序开发 优选文档 * 5.1 开发环境的建立 进行项目开发前,首先要做的是搭建一套基于Linux操作系统的应用开发环境,一般由目标板和宿主机所构成。 目标板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主机来完成。 开发环境对硬件没有特殊的要求,但是为了双方之间建立连接关系,关键的接口包括串口、以太网口和USB口等是必不可少的。 优选文档 * 交叉编译环境的建立 交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。 在宿主机上对即将运行在目标机上的应用程序进行编译,生成可在目标机上运行的代码格式。 交叉编译环境是一个由编译器、连接器和解释器组成的综合开发环境。 交叉编译工具主要包括针对目标系统的编译器gcc、目标系统的二进制工具binutils、目标系统的标准c库glibc和目标系统的Linux内核头文件。 优选文档 * 建立一个交叉编译工具链是一个相当复杂的过程,为了节省时间,网上有一些编译好的可用的交叉编译工具链可以下载。编译好的交叉编译工具链arm-linux- toolchains.tgz,只需简单地解压缩即可使用: tar xvzf arm-linux-toolchains.tgz –C /arm9 假设工具链解压缩到目录/arm9。解压完毕后把工具链目录加入到环境变量PATH中即可。 优选文档 * 简单验证交叉编译工具 首先用文字输入软件建立一个helloworld.c文件: #include?stdio.h int?main(void) { ?printf(hello?world\n); ?return?0; } 然后在命令行执行: $arm-linux-gcc?helloworld.c?-o?helloworld $file?helloworld 如果输出以下信息,说明成功建立了编译工具。 helloworld:?ELF?32-bit?LSB?executable,?ARM,?version?1,?dynamically?linked?(uses?shared?libs),?not?stripped 优选文档 * 5.2 Linux及开发工具的使用 GNU工具的开发流程如下: 编写C、C++语言或汇编源程序,用gcc或g++生成目标文件,编写链接脚本文件,用链接器生成最终目标文件(elf格式),用二进制转换工具生成可下载的二进制代码。 Linux下的GNU调试工具主要是gdb、gdbserver和kgdb。其中gdb和gdbserver可完成对目标板上Linux应用程序的远程调试。gdbserver是一个很小的应用程序,运行于目标板上,可监控被调试进程的运行,并通过串口与上位机上的gdb通信。开发者可以通过上位机的gdb输入命令,控制目标板上进程的运行,查看内存和寄存器的内容。 优选文档 * gcc编译器的使用 gcc最基本的用法是:gcc [options] file... gcc的整个编译过程分别是:预处理,编译,汇编和链接。 常用的选项: ? -o要求编译器生成指定文件名的可执行文件; ? -c表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由.c或.cc变成.o的目标文件; ? -g在编译的时候提供以后对程序进行调试的信息; ? -E只进行预处理就停止,而不做编译、汇编和链接; ? -S只进行编译,而不做汇编和链接; ? -O对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高; ? -Wall指定产生全部的警告信息。 优选文档 * 编译实例 $ gcc -o hello hello.c gcc编译器就会生成一个hello的可执行文件。在hello.c的当前目录下执行./hello就可以看到程序的输出结果,在屏幕上打印出“Hello the world”的字符串来。 GNU编译器生成的目标文件默认格式为elf(executive linked file)格式,这是Linux系统所采用的可执行链接文件的通用文件格式。elf格式由若干个段(section)组成,由标准c源代码生成的目标文件中包含以下段: ? .text(正文段)包含程序的指令代码, ? .data(数据段)包含固定的数据,如常量,字符串等, ? .bss(未初始化数据段)包含未初始化的变量和数组等。 优选文档 * Makefile文件和Make命令 Makefile文件描述了目标文件之间的依赖关系,以及指定编译

文档评论(0)

liuxiaoyu99 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档