欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    嵌入式开发精选PPT.ppt

    • 资源ID:77739749       资源大小:1.65MB        全文页数:35页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式开发精选PPT.ppt

    嵌入式开发嵌入式开发第1页,此课件共35页哦3.1 3.1 开发环境和常用开发工具开发环境和常用开发工具第2页,此课件共35页哦VI 简介简介n nUnix 下的全屏幕可视化编辑器n n由于其源代码不可获得,衍生了许多克隆版本nvi、elvis、vile、VIM.第3页,此课件共35页哦vi的操作模式图2-2 vi编辑器的三种工作模式第4页,此课件共35页哦vi的常用命令的常用命令命令说明功能键h向左移一个字符向左移一个字符 I向右移一个字符向右移一个字符 J向上移一个字符向上移一个字符 k向下移一个字符向下移一个字符 0移至该行之首 Home$移至该行之末 End 第5页,此课件共35页哦n n H 移至窗口的第一行 M 移至窗口的中间那行 L 移至窗口的最后一行 G 移至该文件的最后一行 nG 移至该文件的第 n 行 Ctrl+f 向后翻一页 PageDown Ctrl+b 向前翻一页 PageUp 移至该行的第一个非空白字符处 第6页,此课件共35页哦n n 命令 说明 功能键 x 删除光标后的字符 Delete X 删除光标前的字符 dd 删除光标所在的行 ndd 删除包括光标所在行的n行文本 r 修改光标所在字符 第7页,此课件共35页哦R 进入替换状态,直到按Esc回到命令模式为止 Insert s 删除光标所在字符,并进入输入模式 S 删除光标所在的行,并进入输入模式 u 恢复刚才被修改的文本 U 恢复光标所在行的所有修改.重复上一次命令的操作 第8页,此课件共35页哦命令命令 说明说明 Y Y 复制当前行至编辑缓冲区复制当前行至编辑缓冲区 nY nY 复制当前行开始的复制当前行开始的n n行至编辑缓冲区行至编辑缓冲区 p p 将编辑缓冲区的内容粘贴到光标后的一行将编辑缓冲区的内容粘贴到光标后的一行 P P 将编辑缓冲区的内容粘贴到光标前的一行将编辑缓冲区的内容粘贴到光标前的一行 a a 从光标所在位置后面开始新增文本从光标所在位置后面开始新增文本 第9页,此课件共35页哦命令命令 命令说明命令说明A A 从光标所在行最后面的地方开始新增文本从光标所在行最后面的地方开始新增文本 i i 从光标所在位置前面开始插入文本从光标所在位置前面开始插入文本 I I 从光标所在列的第一个非空白字元前面开始从光标所在列的第一个非空白字元前面开始插入文本插入文本 o o 在光标所在列下新增一行并进入输入模式在光标所在列下新增一行并进入输入模式 O O 在光标所在列上方新增一行并进入输入模式在光标所在列上方新增一行并进入输入模式 第10页,此课件共35页哦命令命令 说明说明 :q:q 结束编辑结束编辑 :q!:q!强制离开强制离开vivi,放弃存盘,放弃存盘 :w:w 存盘存盘 :w filename:w filename 将编辑内容保存为名为将编辑内容保存为名为filenamefilename的文件的文件 :wq:wq 存盘并退出存盘并退出 第11页,此课件共35页哦GCCn n功能:n n高级语言(.c、.cpp、.F)汇编语言(.s)n n用户界面,驱动各工具的执行n n组成:一组可执行程序+一组库一组库n ncpp、gcc、g+、g77 n ncpp0、cc1、cc1plus、f771 n nlibgcc.a、crtbegin.o、crtend.o n n支持多种语言和目标机第12页,此课件共35页哦GNU工具链的组成工具链的组成n nGCCGNU Compiler Collectionn nBinutilsGNU binary utilitiesn nGlibcGNU C Library软件开发的基本工具集合第13页,此课件共35页哦Binutilsn n功能:n n汇编语言(.s)目标文件可执行程序n n查看二进制文件信息n n组成:一组可执行程序一组可执行程序n nas、ldn nobjdump、readelf、ar n n支持多种目标机第14页,此课件共35页哦Glibcn n功能:n n提供语言和操作系统的标准库函数n n组成:若干可执行程序+大量库大量库n nldd、iconv、localen nISO C、POSIX、UNIX、GNUn n绝大部分与目标机无关第15页,此课件共35页哦编译工具链的基本工作流程编译工具链的基本工作流程Pre-processor(cpp/Gcc-E)Compiler(cc1/Gcc-S)Assembler(as/Gcc-c)Linker(ld)hello.c(text)hello.i(text)hello.s(text)hello.o(binary)hello(binary)printf.o(binary)一个“hello world”程序的演变历程第16页,此课件共35页哦n ngccgcc最基本的用法是最基本的用法是 gcc options filenamesgcc options filenames基本参数说明:基本参数说明:-E-E:只进行预处理:只进行预处理 -S-S:只进行编译;产生汇编代码:只进行编译;产生汇编代码 -c-c:只编译、汇编,不连接成为可执行文件,编译器只是由:只编译、汇编,不连接成为可执行文件,编译器只是由输入的输入的.c.c等源代码文件生成等源代码文件生成.o.o为后缀的目标文件,通常用于编译为后缀的目标文件,通常用于编译不包含主程序的子程序文件不包含主程序的子程序文件-ooutput_filename-ooutput_filename:确定输出文件的名称为:确定输出文件的名称为output_filenameoutput_filename,同时这个名称不能和源文件同名。如果不给出这个选项,同时这个名称不能和源文件同名。如果不给出这个选项,gccgcc就给就给出预设的可执行文件出预设的可执行文件a.outa.out -v -v:打印程序的编译过程,以及编译器的版本:打印程序的编译过程,以及编译器的版本 -g-g:产生符号调试工具:产生符号调试工具(GNU(GNU的的gdb)gdb)所必要的符号资讯,要所必要的符号资讯,要想对源代码进行调试,必须加入这个选项想对源代码进行调试,必须加入这个选项 -o-o:对程序进行优化编译、连接:对程序进行优化编译、连接 -O2-O2:比:比-O-O更好的优化更好的优化-Dmacro-Dmacro或或-Dmacro=defn-Dmacro=defn其作用类似于源程序里的其作用类似于源程序里的#define#define。第17页,此课件共35页哦-Idirname-Idirname:将:将dirnamedirname所指出的目录加入到程序头文件目录列表中,是在预编所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数译过程中使用的参数.C C程序中的头文件包含两种情况程序中的头文件包含两种情况 A)#include A)#include B)#include“myinc.h”B)#include“myinc.h”其中,其中,A A类使用尖括号类使用尖括号()(),B B类使用双引号类使用双引号(“”)(“”)。对于。对于A A类,预处理程序类,预处理程序cppcpp在系统预设包含文件目录在系统预设包含文件目录(如如/usr/include)/usr/include)中搜寻相应的文件,而对于中搜寻相应的文件,而对于B B类,类,cppcpp在当前目录中搜寻头文件,这个选项的作用是告诉在当前目录中搜寻头文件,这个选项的作用是告诉cppcpp,如果在当前目,如果在当前目录中没有找到需要的文件,就到指定的录中没有找到需要的文件,就到指定的dirnamedirname目录中去寻找。在程序设计中,目录中去寻找。在程序设计中,如果我们需要的这种包含文件分别分布在不同的目录中,就需要逐个使用如果我们需要的这种包含文件分别分布在不同的目录中,就需要逐个使用-I-I选项给出搜索路径选项给出搜索路径 -Ldirname-Ldirname:将:将dirnamedirname所指出的目录加入到程序函数档案库文件的目录列表中,所指出的目录加入到程序函数档案库文件的目录列表中,是在连接过程中使用的参数。在预设状态下,连接程序是在连接过程中使用的参数。在预设状态下,连接程序ld ld在系统的预设路径中在系统的预设路径中(如如/usr/lib)/usr/lib)寻找所需要的档案库文件,这个选项告诉连接程序,首先到寻找所需要的档案库文件,这个选项告诉连接程序,首先到-L-L指定的目录中去寻找,然后到系统预设路径中寻找,如果函数库存放在指定的目录中去寻找,然后到系统预设路径中寻找,如果函数库存放在多个目录下,就需要依次使用这个选项,给出相应的存放目录多个目录下,就需要依次使用这个选项,给出相应的存放目录 -lname-lname:在连接时,装载名字为:在连接时,装载名字为“libname.a”libname.a”的函数库,该函数库位于系统预设的函数库,该函数库位于系统预设的目录或者由的目录或者由-L-L选项确定的目录下。例如,选项确定的目录下。例如,-lm-lm表示连接名为表示连接名为“libm.a”libm.a”的数学函的数学函数库数库第18页,此课件共35页哦gcc 常用方式常用方式n ngcc 选项 源文件 目标文件n n$gcc hello.c o hellon n$gcc c hello.cpp o hello.on n$gcc myapp.c L/home/silver/lib I/home/silver/include lnew o myapp第19页,此课件共35页哦GDB调试器调试器第20页,此课件共35页哦还可以用下面的方式来运行还可以用下面的方式来运行gdb:gdb:gdb filenamegdb filename其其中中,filenamefilename是是要要调调试试的的可可执执行行文文件件。用用这这种种方方式式运运行行gdbgdb可可以以直直接接指指定定想想要要调调试试的的程程序序。这这和和启启动动gdbgdb后后执执行行file file filenamefilename命命令令效效果果完完全全一一样样。也也可可以以用用gdbgdb去去检检查查一一个个因因程程序序异异常常终终止止而而产产生生的的corecore文文件件,或或者者与与一一个个正正在运行的程序相连。在运行的程序相连。第21页,此课件共35页哦gdb支持很多的命令且能实现不同的功能。这些命令支持很多的命令且能实现不同的功能。这些命令从简单的文件装入到允许你检查所调用的堆栈内容的复杂从简单的文件装入到允许你检查所调用的堆栈内容的复杂命令命令,下面列出了在使用gdb 调试时会用到的一些命令。n n1)file命令:装入想要调试的可执行文件。n n2 2)cd命令:改变工作目录。命令:改变工作目录。n n3)pwd命令:返回当前工作日录。n n4)runrun命令:执行当前被调试的程序。命令:执行当前被调试的程序。n n5 5)killkill命令:停止正在调试的应用程序。命令:停止正在调试的应用程序。第22页,此课件共35页哦6)list命令:列出正在调试的应用程序的源代码。命令:列出正在调试的应用程序的源代码。7)break命令:设置断点。命令:设置断点。8)Tbreak命令;设置临时断点。它的语法与命令;设置临时断点。它的语法与break相同。相同。区别在于用区别在于用tbreak设置的断点执行一次之后立即消失。设置的断点执行一次之后立即消失。9)watch命令:设置监视点,监视表达式的变化。命令:设置监视点,监视表达式的变化。10)awatch命令:设置读写监视点。当要监视的表达命令:设置读写监视点。当要监视的表达式被读或写时将应用程序挂起。它的语法与式被读或写时将应用程序挂起。它的语法与watch命令命令相同。相同。11)rwatch命令:设置读监视点,当监视表达式被读时将命令:设置读监视点,当监视表达式被读时将程序挂起,等侍调试。此命令的语法与程序挂起,等侍调试。此命令的语法与watch相同。相同。第23页,此课件共35页哦n n12)next命令:执行下一条源代码,但是不进入函数内命令:执行下一条源代码,但是不进入函数内命令:执行下一条源代码,但是不进入函数内命令:执行下一条源代码,但是不进入函数内部。也就是说,将一条函数调用作为一条语句执行。执行部。也就是说,将一条函数调用作为一条语句执行。执行部。也就是说,将一条函数调用作为一条语句执行。执行部。也就是说,将一条函数调用作为一条语句执行。执行这个命令的前提是已经这个命令的前提是已经这个命令的前提是已经这个命令的前提是已经run,开始了代码的执行。,开始了代码的执行。,开始了代码的执行。,开始了代码的执行。n n13)stepstep命令:执行下一条源代码,进入函数内部。命令:执行下一条源代码,进入函数内部。如果调用了某个函数,会跳到函数所在的代码中等如果调用了某个函数,会跳到函数所在的代码中等候一步步执行。执行这个命令的前提是已经用候一步步执行。执行这个命令的前提是已经用run开始执行代码。开始执行代码。n n1414)displaydisplay命令:在应用程序每次停止运行时显示表达式命令:在应用程序每次停止运行时显示表达式命令:在应用程序每次停止运行时显示表达式命令:在应用程序每次停止运行时显示表达式的值。的值。的值。的值。n n1515)info break命令:显示当前断点列表,包括每个命令:显示当前断点列表,包括每个断点到达的次数。断点到达的次数。第24页,此课件共35页哦n n16)info filesinfo files命令:显示调试文件的信息。命令:显示调试文件的信息。n n1717)info func命令:显示所有的函数名。命令:显示所有的函数名。命令:显示所有的函数名。命令:显示所有的函数名。n n1818)info local命令:显示当前函数的所有局部变量的命令:显示当前函数的所有局部变量的信息。信息。n n19)info proginfo prog命令:显示调试程序的执行状态。命令:显示调试程序的执行状态。命令:显示调试程序的执行状态。命令:显示调试程序的执行状态。n n20)printprint命令;显示表达式的值。命令;显示表达式的值。命令;显示表达式的值。命令;显示表达式的值。n n2121)delete命令:删除断点。指定一个断点号码,则删命令:删除断点。指定一个断点号码,则删命令:删除断点。指定一个断点号码,则删命令:删除断点。指定一个断点号码,则删除指定断点。不指定参数则删除所有的断点。除指定断点。不指定参数则删除所有的断点。除指定断点。不指定参数则删除所有的断点。除指定断点。不指定参数则删除所有的断点。n n2222)ShellShell命令:执行命令:执行命令:执行命令:执行Linux ShellLinux Shell命令。命令。n n2323)make命令:不退出命令:不退出命令:不退出命令:不退出gdbgdb而重新编译生成可执行文件。而重新编译生成可执行文件。n n2424)QuitQuit命令:退出命令:退出gdb。第25页,此课件共35页哦3、6 Make工程管理器工程管理器n n一、一、一、一、MakefileMakefile基本结构基本结构基本结构基本结构一个一个一个一个MakefileMakefile文件主要含有一系列的规则,每条规则包含以下文件主要含有一系列的规则,每条规则包含以下文件主要含有一系列的规则,每条规则包含以下文件主要含有一系列的规则,每条规则包含以下内容。内容。内容。内容。n n一个目标(一个目标(一个目标(一个目标(targettarget),即),即),即),即makemake最终需要创建的文件,如可执行文件和目标最终需要创建的文件,如可执行文件和目标最终需要创建的文件,如可执行文件和目标最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如文件;目标也可以是要执行的动作,如文件;目标也可以是要执行的动作,如文件;目标也可以是要执行的动作,如“clean”clean”。n n一个或多个依赖文件(一个或多个依赖文件(一个或多个依赖文件(一个或多个依赖文件(dependencydependency)列表,通常是编译目标文件所需要的其)列表,通常是编译目标文件所需要的其)列表,通常是编译目标文件所需要的其)列表,通常是编译目标文件所需要的其他文件。他文件。他文件。他文件。n n 一系列命今一系列命今一系列命今一系列命今(command)(command),是,是,是,是makemake执行的动作,通常是把指定的相关文件执行的动作,通常是把指定的相关文件执行的动作,通常是把指定的相关文件执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,且每个命令行的起始字编译成目标文件的编译命令,每个命令占一行,且每个命令行的起始字编译成目标文件的编译命令,每个命令占一行,且每个命令行的起始字编译成目标文件的编译命令,每个命令占一行,且每个命令行的起始字符必须为符必须为符必须为符必须为TABTAB字符。字符。字符。字符。第26页,此课件共35页哦n nMakefile规则的一般形式如下:target:dependency dependency(tab)第27页,此课件共35页哦n n例如有两个文件hello.c和hello.h:/*hello.c*/int main()printf(firstn);return 0;/*hello.h*/#include 创建的目标为可执行程序创建的目标为可执行程序hello,则对应的,则对应的Makefike写为:写为:hello:hello.c hello.hgcc hello.c -o hello第28页,此课件共35页哦n n二、Makefile变量例如,有以下的Makefile文件:test:prog.o code.ogcc o test prog.o code.oprog.o:prog.c prog.h code.hgcc c prog.c o prog.ocode.o:code.c code.hgcc c code.c o code.oclean:rm f*.o 第29页,此课件共35页哦n n变量的主要作用如下:变量的主要作用如下:n n n n保存文件名列表。保存文件名列表。n n保存可执行命令名。保存可执行命令名。n n保存编译器的参数。保存编译器的参数。n n定义变量的语法:VARNAME=stringn n使用时,把变量用括号括起来,并在前面加上使用时,把变量用括号括起来,并在前面加上$符号,就可以引用变量的值:$VARNAME$VARNAME第30页,此课件共35页哦n n现在利用变量把前面的Makefile重写一遍:OBJS=prog.o code.oCC=gcctest:$OBJS$CC o test$OBJS prog.o:prog.c prog.h code.h$CC c prog.c o prog.ocode.o:code.c code.h$CC c code.c o code.oclean:rm f*.o 第31页,此课件共35页哦Makefile中还有一些预定义变量和自动变量,但是看起来并不像自定义变量那样直观。P89表3.15给出了常见的自动变量。除了自动变量外,Makefile中还有一些预定义的内部变量,用于定义编译命令名、编译参数等,如表3.14所示第32页,此课件共35页哦n n现在利用自动变量把前面的现在利用自动变量把前面的MakefileMakefile重写一遍:重写一遍:OBJS=prog.o code.oOBJS=prog.o code.oCC=gccCC=gcctesttest:$OBJS$OBJS$CC o test$OBJS$CC o test$OBJS prog.oprog.o:prog.c prog.h code.hprog.c prog.h code.h$CC c prog.c o prog.o$CC c prog.c o prog.ocode.ocode.o:code.c code.hcode.c code.h$CC c code.c o code.o$CC c code.c o code.ocleanclean:rm f*.o rm f*.o OBJS=prog.o code.oCC=gcctest:$OBJS$CC o$prog.o:prog.c prog.h code.h$CC c$o$code.o:code.c code.h$CC c$o$clean:rm f*.o 第33页,此课件共35页哦三、三、Makefile的隐规则的隐规则n nmake知道一些默认的动作,它有一些称作隐含规则的内置的规则,这些规则告诉make当用户没有完整地给出某些命令的时候,应该怎样执行。n n这样用户就不必指定详细而又负责的具体细节,只用写出目标文件就可以了。第34页,此课件共35页哦n n在上面的例子中,利用隐含规则,可以简化为:OBJS=prog.o code.oCC=gcctest:$OBJS$CC o$prog.o:prog.c prog.h code.hcode.o:code.c code.hclean:rm f*.o 第35页,此课件共35页哦

    注意事项

    本文(嵌入式开发精选PPT.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开