《Chap5 嵌入式Linux应用程序开发》.ppt

《Chap5 嵌入式Linux应用程序开发》.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 其中的option是以“-”开始的各种选项,file是相关的文件名。在使用gcc的时候,必须要给出必要的选项和文件名。 * * 一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,以及Linux下GNU的make。 * * VIVI有两种工作模式,启动模式可以在一段时间后自行启动Linux内核,这是VIVI的默认方式。出现上述信息后,如果按除回车键外的任意键,即可进入下载模式,出现“vivi”提示符。在下载模式下,VIVI为用户提供了一个命令行接口,通过该接口可以使用VIVI提供的一些命令。 * * 启动Linux系统的过程:一个不隶属于任何操作系统的加载程序将Linux部分内核调入内存,并将控制权交给内存中Linux内核的第一行代码,加载程序的工作就完成了。此后Linux要将自己的剩余部分全部加载到内存、初始化所有的设备、在内存中建立好所需的数据结构(有关进程、设备、内存等)。 到此为止,Linux内核已经控制了所有硬件设备。至于操作和使用这些硬件设备,则轮到系统部分登场了。内核加载设备并启动init守护进程,init守护进程会根据配置文件加载文件系统、配置网络、服务进程、终端等。一旦终端初始化完毕,我们会看到系统的欢迎界面了。 * * 实际上,还有一些移植工作需要同时考虑,但很难说这是属于内核范畴还是属于驱动程序范畴,比如,显示设备的支持,与内核十分相关,但在逻辑上又不属于内核,并且在移植上也更像是驱动程序的开发。因此不在这里讨论。 Chap5 嵌入式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要求编译器生成指定

文档评论(0)

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

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

1亿VIP精品文档

相关文档