第七章软件开发环境.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.2 ??嵌入式Linux的软件开发环境 linux下的交叉编译环境主要包括以下几个部分: 针对目标系统的编译器gcc; 针对目标系统的二进制工具binutils; 目标系统的标准c库 目标系统的linux内核头文件。 7.2.1安装交叉编译环境? 1、准备工作 binutils-2.15.tar.bz2:这个压缩包包含有ld,ar,as等一些产生或者处理二进制文件的工具。其主要目的是为GNU系统提供汇编和连接工具等。 gcc-3.4.5.tar.bz2:这个压缩包主要是为GNU系统提供C 编译器。现在支持多种语言,这其中包括C/C++、Fortran、Java、Objective-C、Ada等。 ??? glibc-2.2.5.tar.gz:Libc是很多用户层应用都要用到的库,用于定义系统调用和其它一些基本的函数调用。 glibc-linuxthreads-2.2.5.tar.gz:这是Libc用于支持Posix线程而单独发布的一个压缩包。 ??? linux-2.6.8.tar.bz2:这个压缩包就是Linux的内核,在编译glibc时,要用到Linux内核中的include目录的内核头文件。 交叉编译环境建立过程如下: (1)创建编译环境。 (2)建立内核头文件, (3)创建binutils。 (4)创建一个交叉编译版本的gcc(称为bootstrap gcc) (5)创建一个交叉编译版本的glibc。 (6)重新创建gcc(称为full gcc)。 7.2.2嵌入式Linux程序开发工程管理 1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响, 嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图7-21 所示。 嵌入式系统的软件开发与通用软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分。 1.交叉编译 所谓交叉编译就是在一个平台上生可以在另一个平台上执行的代码。嵌入式系统交叉编译环境如图 所示。 2.交叉调试 嵌入式系统的交叉调试有多种方法,主要可分为软件方式和硬件方式两种。 它们一般都具有如下一些典型特点: 调试器和被调试进程运行在不同的机器上,调试器运行在PC 机 (宿主机),而被调试的进程则运行在各种专业调 板上 (目标板)。 调试器通过某种通信方式(串口、网络、JTAG 等)控制被调试进程 在目标机上一般会具备某种形式的调试代理,它负责与调试器共同配合完对目标机上运行着的进程的调试。这种调试代理可能是某些支持调试功能的硬件设备,也可能是某些专门的调试软件(如gdbserver)。 目标机可能是某种形式的系统仿真器,通过在宿主机上运行目标机的仿真软件,整个调试过程可以在一台计算机上运行。此时物理上虽然只有一台计算机,但逻辑上仍然存在着宿主机和目标机的区别。 7.2.3 程序调试 1 .内核调试方法 对于庞大的Linux 内核软件工程,单靠阅读代码查找问题已经非常困难,需要借助调试技术解决BUG 。通过合理的调试手段,可以有效地查找和判断BUG 的位置和原因。 内核调试方法很多,主要有以下4 类。 通过打印函数 获取内核信息 处理出错信息 内核源码调试 2.内核打印函数 嵌入式系统一般都可以通过串口与用户交互。大多数 Bootloader 可以向串口打印信息,并且接收命令。内核同样可以向串口打印信息。但是在内核启动过程中,不同阶段的打印函数不同。分析这些打印函数的实现,可以更好地调试内核。 (1) 内核映像解压前的串口输出函数 (2) 内核错误报告子程序 (3) 内核打印函数 3.获取内核信息 Linux 内核提供了一些与用户空间通信的机制,大部分驱动程序与用户空间的接口都可以作为获取内核信息的手段。另外内核也有专门的调试机制。 (1) 系统请求键 (2) 通过/proc 接口 (3) 通过/sys 接口 (4) 通过ioctl 方法 4. 处理出错信息 当系统出现错误时,内核有两个基本的错误处理机制:oops 和panic。 (1) oops 信息 ●oops 消息包含系统错误的详细信息 ●使用ksymoops 转换oops 信息 ●内核kallsyms 选项支持符号信息 (2) panic 当系

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档