ARM嵌入式第3章Linux编程环境_第1页
ARM嵌入式第3章Linux编程环境_第2页
ARM嵌入式第3章Linux编程环境_第3页
ARM嵌入式第3章Linux编程环境_第4页
ARM嵌入式第3章Linux编程环境_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章Linux编程环境,第2,牙齿章节包含一般Linux开发工具使用提示和Linux编程技术。牙齿章节比有关Linux编程的书简要得多,该书重点介绍了常用的Linux编程工具和技术。牙齿章节中的学习可以帮助读者快速掌握基本的Linux开发工具,为后续嵌入式Linux开发奠定基础。牙齿章节的目标,使用通用Linux软件开发工具Linux工具链的提示Linux编程库API介绍,3.1 Linux通用工具,3 . 1 . 1 shell介绍在Linux系统开发过程中,开发者或用户与Linux系统(内核)交互时需要平台。字面上,外壳的本义是“外壳”的意思,是一种通俗地将内部核心与外部用户连接起来的媒

2、体。shell操作图表、shell提供了用户和操作系统之间的通信方法。牙齿通信可以交互(在键盘输入中输入,并可以立即响应)或shell脚本(非交互)进行。shell本身既是解释程序,又支持高级语言内可见的大多数节目元素(如编程语言、编程语言(如函数、变量、数组和节目控制结构)。例如,变量、数组和节目控制结构。3.1.2常规shell命令,1 shell命令的常规格式命令名选项 参数1 参数2命令行输入是实际可编辑的文本缓冲区之一,您可以在命令行中输入shell命令。您可以按“回车键”(continue)在确认当前操作之前编辑输入。2命令行输入、命令行输入实际上是可以编辑的文本缓冲区之一,可以在

3、命令行上输入shell命令。您可以按“回车键”(continue)在确认当前操作之前编辑输入。3介绍常用shell命令,3介绍常用shell命令(1)自动完成输入命令行(automatic command diff completion)功能(2)目录和档案任务(3)用户管理(4)档案打包和压缩(5) 1基于编程语言Linux的shell(提供脚本剪辑shell等)默认使用Bash,因此牙齿书主要介绍Bash脚本示例2 shell变量shell脚本(系统变量、环境变量、用户变量、3进程控制、现有编程语言等)。 shell完成数据变量、参数传播、4 shell脚本执行shell脚本的创建后,执行

4、牙齿脚本有多种茄子方法:(1)设置脚本执行权限后,执行脚本(2)使用Bash内部命令source (3)直接执行sh命令,以及用于匹配和替换3.1.4正则表达式、正则表达式模式的有效工具。正则表达式说明字符串匹配的模式,例如检查一个字符串包含哪些子字符串牙齿,替换匹配的子字符串,或从一个字符串中弹出符合特定条件的子字符串等。正则表达式用普通字符(如字母a到z)和特殊字符(特殊字符)构成特定的字符模式。使用正则表达式可以在从档案或命令中提取或过滤文本时简化命令中的匹配表示。3.1.5节目编辑器,编辑器是系统的重要工具之一,在所有操作系统中,编辑器是必需的组件。Linux系统提供了完整的编辑器家族

5、套件(Ed、Ex、Vi、Emacs等),按功能可分为两大茄子类别。行编辑器全屏编辑器(如Ed、Ex),Vi有三种茄子基本操作模式:命令行模式、文本输入模式和最后一行模式。3.2 makefile,3.2.1 GNU make GNU make GNU make最初是Unix系统的工具,旨在保持c节目文件的不必要的重新编译。自动生成和维护目标程序的工具。Make是解释Makefile文件中的命令的命令工具,最基本的功能是通过Makefile文件说明源节目之间的相互关系,并自动维护编译操作。它告诉系统如何编译和连接程序。一般来说,GNU make的工作流程如下:在当前目录中查找Makefile档案

6、初始化文件中的变量分析Makefile中的所有规则根据与所有目标文件的相关性创建相关性确定重新生成执行创建命令的目标档案,3 . 2 . 2 . Makefile规则语法,Makefile具有唯一的编写格式并遵循特定语法规则。#注释目标档案:从属档案列表.3.2.3在Makefile文件中使用变量,通常在Makefile文件中应用变量主要有以下几个方面:1表示档案列表Makefile文件中的变量经常存储目标档案或目标文件的从属文件。参考这些档案时,您可以参考储存这些档案的变数。这为Makefile作者和管理员提供了极大的方便。2表示编译命令选项在所有编译命令都有相同的编译选项(例如-Wall

7、-O2等)牙齿的情况下,可以将编译选项分配给变量,以便于参考。此外,如果更改编译选项,则无需在使用编译选项的任何地方进行更改,只需更改变量值。使用3.3二进制代码工具,3.3.1 GNU Binutils工具简介用于在Linux上构建嵌入式交叉编译环境的一系列工具链(tool-chain),主要在GNU Binutils、Gcc、Glibc、等GNU Binutils工具集中As GNU的汇编程序LD GNU中的链接器add2line将地址转换为档案名称或行号对,以便在调试器ar牙齿文件中创建、修改、扩展宏处理器,在nm牙齿目标代码文件中列出所有变量(包括变量值和变量类型)。如果未指定目标文件

8、,默认情况下,与a.out档案的objcopy objcopy工具使用GNU BSD库。您可以将目标文件的内容从一个文件复制到另一个格式的目标文件。add2line将节目地址转换为档案名称和行号。显示objdump目标档案信息readelf由elf档案信息ranlib创建索引,以加快归档访问速度。保存到牙齿存档文件。size列出目标模块或文件中与代码尺寸的strings可打印目标代码字符(至少4个),打印字符数控制放弃与strip牙齿的所有符号连接。您可以使用c filt链接器LD牙齿命令过滤c符号和Java符号。函数防碰撞gprof显示器节目调用段中的各种数据,使用3.3.2 binutil

9、s工具软件,1汇编程序Linux平台上的标准汇编程序是GAS,GCC依赖的后台程序集工具,通常包含在binutils包中。2链接器GNU链接器使用一个命令语言脚本来控制链接过程。使用3.4编译器GCC,3.4.1 GCC编译器简介GCC是GNU项目编译器组件之一,是GNU软件产品家族的代表作。GCC的发展大体上经历了以下几个阶段。1987年,第一板块GCC发布。2001.6.18,GCC3.0牙齿正式上市。2004.4.20,gcc 3 . 4 . 0版发行。2005.4.22,GCC 4.0最新版本发布,正式网站:. GCC是编译工具集的统称,该软件包包含很

10、多工具,其类型主要有以下分类:c编译器cc、cc1、cc1plus、gcc编译器c、cc1 plus、g源预处理节目cpp、cpp0库档案libgcc.a、libgcc _ eh.a和libgcc _ s Libsupc。a,3.4.2 GCC编译选项分析,GCC是Linux上基于命令行的c语言编译器,基本使用语法为:编译Gcc option | filename c的源程序的基本语法如下:G option | filename GCC有多种命令选项和100多个编译选项,适用以下分类:1常规编译选项2错误检查和警告提示选项3代码最优化选项4调试分析选项、3.5调试器GDB使用提示、3.5.1

11、GDB调试器说明以下是GDB提供的部分功能:您可以启动程式,并透过执行环境和参数设定执行指定的程式。使进程在指定的断点位置停止运行。正确调整程序后,可以更正错误,然后继续调试。使用Gdb命令的语法如下:# GDB参数Filename,3.5.2 GDB调试命令,常用GDB调试命令。3.6 Linux编程库,3.6.1 Linux编程库简介Linux下的库文件分为孔刘库和静态库2两大类别,具体取决于运行节目时所需的代码是在运行时动态加载还是在编译时静态加载。此外,孔刘库通常位于。以共享对象(so)结尾,静态链接库通常。以a (Archive)结束。在端子下查看库的内容。通常,孔刘库是绿色,静态库是黑色。Linux库通常位于/lib或/usr/lib目录中。主要存储系统的链接库文件,如果没有牙齿目录,系统将无法正常工作。3.6.2 Linux系统调用,字面意思是系统调用是在调用操作系统牙齿用户节目时提供的“特殊”介面集合。Linux系统中有200多个系统调用,根据功能分类,这些系统调用可以分为以下几个方面:流程控制文件系统控制系统控制记忆体管理网络管理套接字控制用户管理流程之间的通信,3.6.3 Linux线程库,简单地说,流程是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论