嵌入式Linux C语言开发 教学课件 ppt 华清远见嵌入式学院 曾宏安 第1章 嵌入式linuxC语言开发工具

上传人:E**** 文档编号:89404475 上传时间:2019-05-24 格式:PPT 页数:66 大小:3.76MB
返回 下载 相关 举报
嵌入式Linux C语言开发 教学课件 ppt 华清远见嵌入式学院 曾宏安 第1章 嵌入式linuxC语言开发工具_第1页
第1页 / 共66页
嵌入式Linux C语言开发 教学课件 ppt 华清远见嵌入式学院 曾宏安 第1章 嵌入式linuxC语言开发工具_第2页
第2页 / 共66页
嵌入式Linux C语言开发 教学课件 ppt 华清远见嵌入式学院 曾宏安 第1章 嵌入式linuxC语言开发工具_第3页
第3页 / 共66页
嵌入式Linux C语言开发 教学课件 ppt 华清远见嵌入式学院 曾宏安 第1章 嵌入式linuxC语言开发工具_第4页
第4页 / 共66页
嵌入式Linux C语言开发 教学课件 ppt 华清远见嵌入式学院 曾宏安 第1章 嵌入式linuxC语言开发工具_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《嵌入式Linux C语言开发 教学课件 ppt 华清远见嵌入式学院 曾宏安 第1章 嵌入式linuxC语言开发工具》由会员分享,可在线阅读,更多相关《嵌入式Linux C语言开发 教学课件 ppt 华清远见嵌入式学院 曾宏安 第1章 嵌入式linuxC语言开发工具(66页珍藏版)》请在金锄头文库上搜索。

1、,嵌入式LinuxC语言开发工具,www.embedu.org,课程目标,C语言产生的历史背景 嵌入式Linux下C语言的开发环境 嵌入式Linux下的编辑器vi 嵌入式Linux下的编译器GCC 嵌入式Linux下的调试器GDB 嵌入式Linux下的工程管理器make Eclipse集成开发环境,www.embedu.org,本章内容,1.1 嵌入式Linux下C语言概述 1.2 嵌入式Linux编辑器vi的使用 1.3 嵌入式Linux编译器GCC的使用 1.4 嵌入式Linux调试器GDB的使用 1.5 make工程管理器 1.6 Eclipse集成开发环境 本章小结,www.embed

2、u.org,1.1嵌入式Linux下C语言概述,1.1.1 C语言简史 1.1.2 C语言特点 1.1.3 嵌入式Linux C语言编程环境,www.embedu.org,1.1.1 C语言简史,C语言最初是美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出来的,此时的C语言只是为了描述和实现UNIX操作系统的一种工作语言。在一段时间里,C语言还只在贝尔实验室内部使用。 1975年,UNIX第6版公布后,C语言突出的优点引起人们的普遍注意。 1977年出现了可移植的C语言。 1978年UNIX第7版的C语言成为后来被广泛使用的C语言版本的基础,被称为标准C语言。 1983年,美国国家

3、标准化协会(ANSI)根据C语言问世以来的各种版本,对C语言进行发展和扩充,并制定了新的标准,称为ANSI C。 1990年,国际标准化组织ISO制定了ISO C标准,目前流行的C语言编译系统都是以它为标准的。,www.embedu.org,1.1.2 C语言特点,C语言是结构化的语言 采用代码及数据分隔的方式,使程序的各部分独立 以函数的形式提供给用户,方便调用 C语言是模块化的语言 减少重复编程,减少劳动量,提高编程效率 程序可移植性好 不同机器上的编译程序大约有80%的代码是公共的 C语言运算符丰富、代码效率高 C语言共有34种运算符,使用各种运算符可以实现在其他高级语言中难以实现的运算

4、。,www.embedu.org,1.1.3 嵌入式Linux C语言编程环境,编辑器 常用的编辑器有vi(vim)和Emacs 编译链接器 常用的编译器是GCC编译器 调试器 GDB 项目管理器 项目管理器make,www.embedu.org,1.2 嵌入式Linux编辑器vi的使用,1.2.1 vi的基本模式 1.2.2 vi的基本操作 1.2.3 vi的使用实例分析,www.embedu.org,1.2.1 vi的基本模式,命令行模式(Command Mode) 在该模式下用户可以输入命令来控制屏幕光标的移动,字符、单词或行的删除,移动复制某区段,也可以进入到底行模式或者插入模式下。

5、插入模式(Insert Mode) 用户只有在插入模式下才可以进行字符输入,用户按Esc键可回到命令行模式下。 底行模式(Last Line Mode) 在该模式下,用户可以将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、显示行号等。这一模式下的命令都是以“:”开始。,www.embedu.org,1.2.2 vi的基本操作,进入与离开 进入vi可以直接在系统提示符下键入vi 文档名称,vi可以自动载入所要编辑的文档或是创建一个新的文档。如在shell中键入vi hello.c(新建文档)即可进入vi画面. 进入vi后屏幕最左边会出现波浪符号,凡是有该符号就代表该行目前是空的。此时进入

6、的是命令行模式。 要离开vi可以在底行模式下键入“:q”(不保存离开),“:wq”(保存离开)则是存档后再离开(注意冒号)。,www.embedu.org,11,1.2.2 vi的基本操作,在vi中打开/新建文档,在vi中退出文档,www.embedu.org,1.2.2 vi的基本操作,vi中3种模式的切换 (1)命令行模式、底行模式转为插入模式,www.embedu.org,1.2.2 vi的基本操作,vi中3种模式的切换 (续) (2)插入模式转为命令行模式、底行模式 从插入模式转为命令行模式、底行模式比较简单,只需使用Esc键即可。 (3)命令行模式与底行模式转换 命令行模式与底行模式

7、间的转换不需要其他特别的命令,而只需要直接键入相应模式中的命令键即可。,www.embedu.org,1.2.2 vi的基本操作,vi的删除、修改与复制,www.embedu.org,1.2.2 vi的基本操作,vi的光标移动,www.embedu.org,1.2.2 vi的基本操作,vi的查找与替换,www.embedu.org,1.2.2 vi的基本操作,vi的文件操作指令,www.embedu.org,1.2.3 vi的使用实例分析,vi使用实例内容,(1)在/root目录下建一个名为vi的目录。 (2)进入vi目录。 (3)将文件/etc/inittab复制到当前目录下。 (4)使用v

8、i编辑当前目录下的inittab。 (5)将光标移到该行。 (6)复制该行内容。 (7)将光标移到最后一行行首。 (8)粘贴复制行的内容。 (9)撤销第9步的动作。 (10)将光标移动到最后一行的行尾。,(11)粘贴复制行的内容。 (12)光标移到“si:sysinit:/etc/rc.d/rc.sysinit”。 (13)删除该行。 (14)存盘但不退出。 (15)将光标移到首行。 (16)插入模式下输入“Hello,this is vi world!”。 (17)返回命令行模式。 (18)向下查找字符串“0:wait”。 (19)再向上查找字符串“halt”。 (20)强制退出vi,不存盘

9、。,www.embedu.org,1.2.3 vi的使用实例分析,vi使用实例解析,(1)mkdir /root/vi (2)cd /root/vi (3)cp /etc/inittab ./ (4)vi ./inittab (5)17(命令行模式) (6)yy (7)G (8)p (9)u (10)$,(11)p (12)21G (13)dd (14):w(底行模式) (15)1G (16)i 并输入“Hello,this is vi world!”(插入模式) (17)Esc (18)/0:wait(命令行模式) (19)?halt (20):q!(底行模式),www.embedu.org

10、,1.3嵌入式Linux编译器GCC的使用,1.3.1 GCC概述 1.3.2 GCC编译流程分析 1.3.3 GCC警告提示 1.3.4 GCC使用库函数 1.3.5 GCC代码优化,www.embedu.org,1.3.1 GCC概述,GCC除了能支持C语言外,目前还支持Ada语言、C+语言、Java语言、Objective C语言、PASCAL语言、COBOL语言,以及支持函数式编程和逻辑编程的Mercury语言等 GCC的编译流程分为了4个步骤,分别为 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking),www.em

11、bedu.org,1.3.2 GCC编译流程分析,GCC使用的基本语法为: gcc option | filename 预处理阶段 gcc E o 目标文件 编译文件 选项“-E”可以使编译器在预处理结束时就停止编译 选项“-o”是指定GCC输出的结果。 编译阶段 gcc S o hello.s hello.i 选项“-S”能使编译器在进行完编译之后就停止,www.embedu.org,1.3.2 GCC编译流程分析,GCC使用的基本语法为: gcc option | filename 汇编阶段 gcc c hello.s o hello.o 选项“-c”把编译阶段生成的“.s”文件生成目标文

12、件 “.o” 链接阶段 gcc hello.o o hello 可以生成可执行文件,www.embedu.org,1.3.3 GCC警告提示,Wall类警告提示,www.embedu.org,1.3.3 GCC警告提示,非Wall类警告提示 (1)“-ansi” 该选项强制GCC生成标准语法所要求的告警信息,尽管这还并不能保证所有没有警告的程序都是符合ANSI C标准的。 (2)“-pedantic” 该选项允许发出ANSI C标准所列的全部警告信息,同样也保证所有没有警告的程序都是符合ANSI C标准的。,www.embedu.org,1.3.4 GCC使用库函数,Linux函数库介绍 Li

13、nux中函数库包括两类:静态库和共享库。 静态库的代码在编译时就已连接到开发人员开发的应用程序中,而共享库是在程序开始运行时被加载。 系统中可用的库都安装在/usr/lib和/lib目录下。库文件名由前缀lib和库名以及后缀组成。根据库的类型不同,后缀名也不一样。,www.embedu.org,1.3.4 GCC使用库函数,相关路径选项 (1)“-I ” GCC使用缺省的路径来搜索头文件,如果想要改变搜索路径,用户可以使用“-I”选项。“-I”选项可以在头文件的搜索路径列表中添加目录。这样,GCC就会到指定的目录去查找相应的头文件。 (2)“-L ” 选项“-L ”的功能与“-I ”类似,其区

14、别就在于“-L”选项是用于指明库文件的路径。 gcc hello_sq.c L/root/workspace/gcc/lib lsunq o hello_sq,www.embedu.org,1.3.4 GCC使用库函数,使用不同类型链接库 使用不同类型的链接库的方法很相似,都是使用选项是“-l”(注意这里是小写的“L”)。该选项是用于指明具体使用的库文件。由于在Linux中函数库的命名规则都是以“lib”开头的,因此,这里的库文件只需填写lib之后的内容即可。 gcc -o dynamic -L /root/lq/testc/lib/dynamic.o -lmydynamic,www.embe

15、du.org,1.3.5 GCC代码优化,GCC可以对代码进行优化,它通过编译选项-On来控制优化代码的生成,其中n是一个代表优化级别的整数。 虽然优化选项可以加快代码的运行速度,但对于调试而言将是一个很大的挑战。因为代码在经过优化之后,原先在源程序中声明和使用的变量很可能不再使用,控制流也可能会突然跳转到其他的地方,循环语句也有可能因为循环展开而变得到处都有,所有这些都将使调试工作异常艰难。,www.embedu.org,1.4 嵌入式Linux调试器GDB的使用,1.4.1 GDB使用实例 1.4.2设置/删除断点 1.4.3数据相关命令 1.4.4调试运行环境相关命令 1.4.5堆栈相关

16、命令,www.embedu.org,1.4.1 GDB使用实例,进入GDB gdb test 查看文件l 设置断点 b 6 查看断点处情况 info b 运行代码 r 查看变量值 p n / p i 观察变量 watch n 单步运行 n 程序继续运行 c 退出GDB q,www.embedu.org,1.4.2设置/删除断点,www.embedu.org,1.4.3数据相关命令,www.embedu.org,1.4.4调试运行环境相关命令,www.embedu.org,1.4.5堆栈相关命令,www.embedu.org,1.5 make工程管理器,1.5.1 Makefile基本结构 1.5.2 Makefile变量 1.5.3 Makefile规则 1.5.4 make使用,www.embedu.org,1.5.1 Makefile基本结构,在一个Makefile中通常包含如下内容。 需要由make工具创建的目标体(target),目标体通常是目标文件、可执行文件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号