版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统原理与应用电子与电气工程学院第一章绪论正大气象厚德载物MinnanUniversityofScienceandTechnology绪论CONTENTS01.嵌入式系统简介02.嵌入式微处理器03.嵌入式系统04.
开发软件安装05.如何学好嵌入式Linux正大气象厚德载物MinnanUniversityofScienceandTechnology01PARTONE嵌入式系统简介正大气象厚德载物MinnanUniversityofScienceandTechnology1、嵌入式系统定义正大气象厚德载物MinnanUniversityofScienceandTechnology一、嵌入式系统简介
嵌入式产品???1、嵌入式系统定义正大气象厚德载物MinnanUniversityofScienceandTechnology一、嵌入式系统简介5
实例展示-嵌入式产品嵌入式产品1、嵌入式系统定义正大气象厚德载物MinnanUniversityofScienceandTechnology一、嵌入式系统简介6什么是嵌入式系统?1、嵌入式系统定义正大气象厚德载物MinnanUniversityofScienceandTechnology一、嵌入式系统简介77嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁减,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。健康码人脸识别测温一体机立式人脸识别测温一体机_捷易科技2、嵌入式系统的结构正大气象厚德载物MinnanUniversityofScienceandTechnology(1)硬件:一、嵌入式系统简介微处理器外围电路外部设备2、嵌入式系统的结构正大气象厚德载物MinnanUniversityofScienceandTechnology(2)软件:一、嵌入式系统简介应用程序(ApplicationProgram)应用程序接口(ApplicationProgrammableInterface,API)实时操作系统(RealTimeOperationSystem,RTOS)板级支持包(BoardSupportPacket,BSP)3、嵌入式系统的特点正大气象厚德载物MinnanUniversityofScienceandTechnology(1)嵌入式系统是面向特定应用(2)嵌入式系统涉及先进的计算机技术、半导体技术、电子技术、通信和软件等各行业。(3)嵌入式系统的硬件和软件都必须具备高度可定制性(可裁剪、移植、优化)。(4)运行环境差异大。(5)高实时性。(6)多任务的操作系统。(7)专门的开发工具和环境。一、嵌入式系统简介3、嵌入式系统的特点正大气象厚德载物MinnanUniversityofScienceandTechnology嵌入式系统与一般PC(PersonalComputer)系统有何区别?一、嵌入式系统简介3、嵌入式系统的特点正大气象厚德载物MinnanUniversityofScienceandTechnology一、嵌入式系统简介嵌入式系统专用于特定的应用,而PC是通用计算机。使用多种类型的处理器和处理器体系结构。关注成本。大多有功耗约束。经常在极端的环境下运行。系统资源比PC少的多。需要专用工具和方法进行开发设计。嵌入式系统的数量远远超过PC。1、无操作系统阶段2、简单操作系统阶段简单的进程调度、内存管理、根文件系统、shell3、实时操作系统阶段多任务,处理能被区分优先次序的进程线、文件和目录管理、设备管理、多任务、网络、图形用户界面(GUI)MinnanUniversityofScienceandTechnology正大气象厚德载物4、嵌入式系统的发展一、嵌入式系统简介4、面向Internet阶段2024/12/1114嵌入式软硬件系统架构
软硬件系统架构
02PARTTWO嵌入式微处理器正大气象厚德载物MinnanUniversityofScienceandTechnology正大气象厚德载物MinnanUniversityofScienceandTechnology二、嵌入式微处理器1、嵌入式微控制器(MicroControllerUnit,MCU)2、嵌入式微处理器(MicroProcessorUnit,MPU)3、嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)4、嵌入式片上系统(SystemonChip,SoC)嵌入式处理器的分类正大气象厚德载物MinnanUniversityofScienceandTechnology二、嵌入式微处理器1、Intel公司MCS-51系列微控制器2、Microchip公司PIC系列微控制器3、Freescale公司08系列微控制器4、TI公司TMS320系列DSP5、ARM公司ARM系列微处理器典型的嵌入式处理器正大气象厚德载物MinnanUniversityofScienceandTechnology二、嵌入式微处理器
ARMARM,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,ARM技术正在逐步渗入到我们生活的各个方面。正大气象厚德载物MinnanUniversityofScienceandTechnology二、嵌入式微处理器ARM分类正大气象厚德载物MinnanUniversityofScienceandTechnology二、嵌入式微处理器MIPS系列微处理器最初是在上世纪80年代由美国斯坦福大学Hennessy教授领导的研究小组研制出来的,目前其使用率仅次于ARM。MIPS应用领域覆盖游戏机、路由器、掌上电脑等各个方面。MIPS的系统结构及设计理念比较先进,在设计理念上MIPS强调软硬件协同提高性能,同时简化硬件设计。MIPS正大气象厚德载物MinnanUniversityofScienceandTechnology二、嵌入式微处理器PowerPCPowerPC处理器品种很多,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备,无所不包。(Motorola)
贵03PARTTHERE嵌入式操作系统正大气象厚德载物MinnanUniversityofScienceandTechnology正大气象厚德载物MinnanUniversityofScienceandTechnology三、嵌入式操作系统嵌入式操作系统是嵌入式应用软件的基础和开发平台。嵌入式系统具有操作系统的最基本功能:进程调度进程间通信v内存管理v设备管理v文件管理v操作系统接口(API调用)嵌入式操作系统具有的特点:v可裁减,可配置。v有一定的实时性。正大气象厚德载物MinnanUniversityofScienceandTechnology三、嵌入式操作系统vVxworks:
美国WindRiver公司于1983年开发,具有可靠、实时、 可裁减特性。vWindowsCE:
支持具有丰富应用程序和服务的32位嵌入式系统。v嵌入式Linux:
近年来,Linux在嵌入式领域异军突起。贵贵04PARTFOUR开发软件的安装正大气象厚德载物MinnanUniversityofScienceandTechnology四、开发软件的安装1、安装Vmware2、安装Ubuntu正大气象厚德载物MinnanUniversityofScienceandTechnology资料包在code第一章中05PARTFIVE如何学好嵌入式Linux正大气象厚德载物MinnanUniversityofScienceandTechnology1、为什么要学习嵌入式?2、如何学好嵌入式?五、如何学好嵌入式Linux1、兴趣2、职业发展3、高收入正大气象厚德载物MinnanUniversityofScienceandTechnology思考学习的目的1、硬件资源2、做中学、学中做3、动手做怎么学1、裸机程序开发2、系统管理3、应用程序开发4、驱动程序开发5、内核开发与系统移植学什么注意事项4231学习一定要按计划,由简入深,系统进行。初学阶段,资料做到少而精,坚持看。多做实验多思考,必修实验必须做。多做多思考正大气象厚德载物MinnanUniversityofScienceandTechnology作业1342简述嵌入式系统的定义简述常见的嵌入式操作系统采用虚拟机的方法安装Ubuntu简述常见的嵌入式微处理器正大气象厚德载物MinnanUniversityofScienceandTechnology2024/12/1131GEC6818实验箱2024/12/1132GEC6818实验箱2024/12/1133软件安装1、安装Vmware虚拟机
2、安装Ubuntu/qq_39557270/article/details/1029262823、安装vmtools
嵌入式系统原理与应用第二章Linux基本操作正大气象厚德载物MinnanUniversityofScienceandTechnologyLinux基本操作CONTENTS01.Linux常用命令02.vi编辑器、gcc编译器、gdb调试器03.make工程管理器04.开发环境搭建正大气象厚德载物MinnanUniversityofScienceandTechnology01PARTONELinux常用命令正大气象厚德载物MinnanUniversityofScienceandTechnology
目录结构命令详解作业总结Linux基础命令正大气象厚德载物MinnanUniversityofScienceandTechnology正大气象厚德载物MinnanUniversityofScienceandTechnology/bin:存放常用命令的可执行文件/boot:存放启动程序/dev:存放设备文件,字符设备(键盘、lcd,usb)/etc:存放启动,关闭,配置程序与文件/home:用户工作根目录/lib:存放共享链接库/root:超级用户的工作目录/sbin:系统管理员的常用管理程序/tmp:存放临时文件/lost+found:系统出现异常时,用于保存部分资料目录结构/根目录~主目录(家目录)或/home/用户名正大气象厚德载物MinnanUniversityofScienceandTechnology/misc:一些实用工具/mnt:光驱、硬盘等的挂载点/media:光驱的自动挂载点/proc:操作系统的实时信息/sys:系统中的硬件设备信息/srv:服务启动后需要提取的信息/var:主要存放系统日志/usr:存放用户程序/tftpboot:tftp服务器的服务目录/selinux:redhat提供的selinux安全程序目录结构正大气象厚德载物MinnanUniversityofScienceandTechnology进入Linux系统,必须输入用户的账号,在系统安装过程中可以创建以下两种帐号:1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。
一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统,影响系统的正常运行。用户登录分两步:第一步,输入用户的登录名,
第二步,输入用户的口令;当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:[root@loclhost/root]#
这时就可以对系统做各种操作了。超级用户的提示符是“#”,其他用户的提示符是“$”。命令详解cd(changedirectory)1、作用:改变当前工作路径2、用法:
cddir/==>将当前工作路径改为dir/cd-==>将当前工作路径改为刚刚去过的目录
cd~==>将当前工作路径改为家目录一些特殊的文件:. 当前目录.. 上一级目录../.. 上上级目录
根目录~ 家目录、主目录/home/用户名正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解ls(list)1、作用:列出指定目录下的文件信息2、用法:
ls ==>列出当前目录中的文件名
lsdir/ ==>列出指定目录dir/中的文件名
ls-l ==>列出当前目录中的文件的详细信息
ls-a ==>列出当前目录中的文件名(包括以.开头的隐藏文件)pwd1、作用:显示当前所在路径正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解mkdir(mkdir)1、作用:创建新的目录2、用法:
mkdirdir ==>在当前目录中创建dir目录
mkdir-ptest2/test22==>在当前目录中创建test22目录(不存在也创建)
mkdir–m777test3 ==>在当前目录中创建权限为test3目录touch1、作用:创建新的文件2、用法:
touchmain.c ==>在当前目录中创建main.c正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解cp(copy)1、作用:复制指定的文件/目录2、用法:
cpfile1file2 ==>将file1复制一份,并命名为file2cpdir1/dir2/-r ==>将dir1/递归地复制一份,并命名为dir2/正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解rm(remove)1、作用:删除指定的文件/目录2、用法:
rmfile ==>删除文件filermdir/-r ==>递归地删除目录dir/正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解
mv(move)1、作用:将一个指定的文件/目录移动到另一个地方给一个文件/目录重命名2、用法:
mvfiledir/ ==>将文件file移动到dir/中
mvfile1file2 ==>将文件file1,重命名为file2mvdir1/dir2/ ==>将目录dir1/,重命名为dir2/(dir2/当前不存在)
mvdir1/dir2/ ==>将目录dir1/移动到dir2/中(dir2/当前已存在)注:当mv的第二个参数是一个合法的已存在的目录时,那么就是移动,否则就是重命名。正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解cat/more/less1、作用:显示文本文件内容/分屏显示文件内容2、用法:catfilemorefilelessfilehead/tail1、作用:查看一个文件的开头/结尾的若干行2、用法:
headfile-n10==>查看文件file的头10行
tailfile-n20==>查看文件file的末20行正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解find1、作用:查找文件2、用法:
finddir/-name"xxx"==>在dir/查找名字为xxx的文件
finddir/-name"*.c"==>在dir/查找后缀名是.c的文件grep1、作用:查找字符串2、用法:
grep"apple"dir/-Hrnw==>在dir/中,递归地(r)按照全字匹配(w)查找"apple"这个字符串,并且找到之后打印出其所在文件名字(H)以及行号(n)正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解tar1、作用:解压、压缩2、用法:
tarczvfexample.tar.gzfile1file2dir1/dir2/ ==>将file1file2dir1/dir2/统统按照gzip格式压缩成example.tar.gztar-tfexample.tar.gz ==>查看压缩包example.tar.gz中有哪些文件
tarxzvfexample.tar.gz ==>将example.tar.gz中的文件解压到当前目录
tarxzvfexample.tar.gz-Cdir ==>将example.tar.gz中的文件解压到dir/注:将以上命令中的'z'改成'j',那就是针对bzip2格式的命令,bzip2格式的压缩包的后缀是:
example.tar.bz2tarcjvfexample.tar.bz2file1file2dir1/dir2/正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解man(manual)1、作用:对相应的条目查找帮助2、用法:
manls ==>查找关于ls的默认的帮助条目
man-fread ==>列出所有关于read的帮助手册
man3posixread ==>查找在第三册手册中的关于read的帮助信息注:下载完整的man帮助文档
sudoapt-getinstallmanpages-posixmanpages-posix-devmanpages-dev正大气象厚德载物MinnanUniversityofScienceandTechnology命令详解1、在家目录中新建一个目录,名为学号_姓名2、切换到新建的目录(学号_姓名)中3、新建文件名为姓名.c(touch姓名.c)4、将姓名.c拷贝到/usr中5、切换到/usr中6、更改名字为:学号.c7、将学号.c拷贝到新建的目录(学号_姓名)8、将目录(学号_姓名)中的姓名.c和学号.c压缩为学号.tar.gz9、将学号.tar.gz拷贝到共享文件夹/mnt/hgfs/share中,进行解压。10、配置IP为192.168.班级.xx,xx为学号最好两位,192033101为,192033201为。作业正大气象厚德载物MinnanUniversityofScienceandTechnology1、目录结构2、常用命令cd,ls,mkdir,touch,cp,rm,mv,cat/more/less,head/tail,find,grep,echo,tar,man3、思政:《道德经》“天下难事必做于易,天下大事必做于细”。再难的事,也要从容易开始;再大的事,也要从细处着手。Linux系统是个大的工程,包含很多功能,它为了实现整个系统功能,首先按需求分类,然后在各个分类下再细化具体实现,采用分而治之、模块化的思想设计了满足需求的各种命令。蚂蚁精神。蚂蚁具有永不放弃、竭尽所能、团结协作的精神。
Linux命令通常只实现单一功能,但绝大多数命令会提供设置选项,以此尽可能满足用户各种需求。首先从容易的事情做起,理解Linux命令,当需要实现复杂功能时,对不同命令进行组合,合力实现所需功能。
总结正大气象厚德载物MinnanUniversityofScienceandTechnologyTHANKYOU!1、mkdir
101_cw2、cd
101_cw3、touch
cw.c4、cp
cw.c
/usr5、cd
/usr6、mv
cw.c
192033100.c7、cp
192033100.c
~/101_cw8、tar
czvf
192033100.tar.gz
cw.c
192033100.c9、cp192033100.tar.gz/mnt/hgfs
tarxzvf192033100.tar.gz正大气象厚德载物MinnanUniversityofScienceandTechnology编辑器vi编译链接器gcc调试器gdb项目管理器makeLinux下C语言编程基础重点内容正大气象厚德载物MinnanUniversityofScienceandTechnology02PARTTWOvi、gcc、gdb正大气象厚德载物MinnanUniversityofScienceandTechnology
文本编辑器vi使用
gcc编译器gdb调试器作业正大气象厚德载物MinnanUniversityofScienceandTechnologyvi是Linux系统的第一个全屏幕交互式编辑器。vi有3种工作模式,分别是命令行模式、插入模式、底行模式。命令行模式:最初进入的一般模式,该模式下可以移动光标进行浏览,整行删除,但无法编辑文字。插入模式:只有在该模式下,用户才能进行文字的编辑输入,用户可以使用[ESC]键回到命令行模式。底行模式:该模式下,光标位于屏幕底行,用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号。文本编辑器vi使用1.vihello.c2.键入i进入插入模式3.编辑自己的程序4.键入[Esc]退回到命令行模式5.键入:wq保存退出文本编辑器vi使用命令行模式插入模式底行模式输入i/a/o按下Esc输入:wq回车:q!
命令行模式功能键:yy:复制当前光标所在行[n]yy:n为数字,复制当前光标开始的n行p:粘贴复制的内容到光标所在行dd:删除当前光标所在行[n]dd:删除当前光标所在行开始的n行/name:查找光标之后的名为“name”的字符串G:
光标移动到文件尾(注意是大写)u: 取消前一个动作(注意是小写)文本编辑器vi使用底行模式功能键::w 保存:q 退出vi(系统会提示保存修改):q! 强行退出(对修改不做保存):wq 保存后退出:w[filename]另存为filename的文件:setnu 显示行号:setnonu 取消行号文本编辑器vi使用Linux系统下的gcc(GNUCCompiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作之一。gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%。GCC编译器能将C、C++语言源程序、汇编程序编译、链接成可执行文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。使用GCC编译程序时,编译过程可以被细分为四个阶段:(1)预处理(Pre-Processing):对头文件、宏定义展开.i(2)编译(Compiling):检查代码规范性、语法,无误后翻译成汇编语句.s(3)汇编(Assembling):将汇编文件(.S)转化为目标文件(.o).o(4)链接(Linking):动态链接、静态链接成二进制可执行文件gcc编译器hello.c(二进制)可执行文件gcc通过后缀来区别输入文件的类别:gcc编译器.c为后缀的文件C语言源代码文件.a为后缀的文件由目标文件构成的库文件.C,.cc或.cxx为后缀的文件C++源代码文件.h为后缀的文件头文件.i为后缀的文件已经预处理过的C源代码文件.ii为后缀的文件已经预处理过的C++源代码文件.o为后缀的文件编译后的目标文件.s为后缀的文件汇编语言源代码文件.S为后缀的文件经过预编译的汇编语言源代码文件。gcc编译器操作1:a.c内容如下#include<stdio.h>intmain(void){ printf(Helloworld!\n); return0;}编译和运行这段程序:gcca.c-ohello./a输出:Helloworld!gcc编译器gcc最基本的用法是∶
gcc[options]filenameoptions:编译器所需要的编译选项,编译选项约有100多个,只介绍常用的参数filenames:要编译的文件名。(1)-ooutput_filename:确定可执行文件的名称output_filename。如果不给出这个选项,gcc就给出预设的可执行文件a.out。(演示)(2)-c:只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件。(3)-g:产生调试工具(GNU的gdb)所必要的符号信息,要想对编译出的程序进行调试,就必须加入这个选项。gcc编译器的基本用法#include<stdio.h>intmain(void){
doublecounter; doubleresult; doubletemp; for(counter=0;counter<2000.0*2000.0*2000.0/20.0+2020; counter+=(5-1)/4){ temp=counter/1979; result=counter; } printf(“Resultis%lf\n”,result); return0;}(4)-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。(5)-O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。操作2(optimize.c)gccoptimize.c-ooptimizetime./optimizegcc–Ooptimize.c-ooptimizetime./optimize对比两次执行的输出结果不难看出,程序的性能的确得到了很大幅度的改善gcc编译器的基本用法(6)-Idirname:将dirname所指出的目录加入到程序头文件目录列表中。#include<A.h>#include“B.h”
对于<>,预处理程序cpp在系统预设的头文件目录(如/usr/include)中搜寻相应的文件;而对于””,cpp在当前目录中搜寻头文件。此选项的作用是告诉cpp,如果在当前目录中没有找到需要的文件,就到指定dirname目录中去寻找。例:gccfoo.c–I/home/include-ofoogcc编译器的基本用法(7)-Ldirname:将dirname所指出的目录加入到库文件的目录列表中。在默认状态下,连接程序ld在系统的预设路径中(如/usr/lib)寻找所需要的库文件,这个选项告诉连接程序,首先到-L指定的目录中去寻找,然后再到系统预设路径中寻找。(8)-lname:在连接时,装载名字为“libname.a”的函数库,该函数库位于系统预设的目录或者由-L选项确定的目录下。例如,-lm表示连接名为libm.a”的数学函数库。例:gcctest.c-L/home/lib–lfoo-otestgcc编译器的基本用法操作3,演示-Idirname,-Ldirname,-lname。
gcc编译器的基本用法main.ca.cgcc-ca.carrcsvlibmylib.aa.ogccmain.c–omain–I./include–L./lib-lmylib(9)-static:静态链接库文件例:gcc–statichello.c-ohello
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。 例如:libhello.solibhello.a。当使用静态库时,连接器找出程序所需的函数,然后将它们拷贝到可执行文件,一旦连接成功,静态程序库也就不再需要了。然而,对动态库而言,就不是这样,动态库会在执行程序内留下一个标记‘指明当程序执行时,首先必须载入这个库。由于动态库节省空间,linux下进行连接的缺省操作是首先连接动态库。演示:静态链接与动态链接可执行文件大小比较。gcca.c–oagcc–statica.c–oals-lllgcc编译器的基本用法(10)-Wall:生成所有警告信息(11)-w:不生成任何警告信息(12)-DMACRO:定义MACRO宏,等效于在程序中使用#defineMACROgcc编译器的基本用法简介GDB是GNU发布的一款功能强大的程序调试工具。GDB主要完成下面三个方面的功能:1、启动被调试程序。2、让被调试的程序在指定的位置停住。3、当程序被停住时,可以检查程序状态(如变量值)。gdb调试器操作1:vitest.c#include<stdio.h>voidmain(){ inti; longresult=0; for(i=1;i<=100;i++) { result+=i; } printf("result=%d\n",result);}gdb调试器gcc-gtest.c-otest//编译生成可执行文件gdbtest //启动GDBlist//查看程序breakmain//在main函数处设置断点run//运行程序next //单步运行continue //继续运行q//退出gdbGDB命令启动GDB(1)gdb调试程序名
例:gdbhelloworld(2)gdb file调试程序名list(l)查看程序break(b)函数名
在某函数入口处添加断点break(b)行号
在指定行添加断点break(b)文件名:行号
在指定文件的指定行添加断点break(b)行号if条件
当条件为真时,指定行号处断点生效.gdb调试器例b5ifi=10 当i等于10时第5行断点生效infobreak 查看所有设置的断点delete断点编号
删除断点run(r) 开始运行程序next(n) 单步运行程序(不进入子函数)step(s) 单步运行程序(进入子函数)continue(c) 继续运行程序print(p)变量名
查看指定变量值finish 运行程序,直到当前函数结束watch变量名
对指定变量进行监控quit(q) 退出gdb操作2gdbfiletestl //bmain //b8 //btest.c:10 //b8ifi=10 //infob //d1 //d2 //d4 //gdb调试器runprintinextnnprintiprintresultstepb3continueqTHANKYOU!总结与作业总结1、vim的使用(命令行模式、插入模式、底行模式)2、gcc的使用(gccxxx.c–oxxx)3、gdb的使用作业1、使用vi新建姓名.c,此源程序功能实现打印输出姓名和学号。2、对姓名.c进行编译3、执行查看结果正大气象厚德载物MinnanUniversityofScienceandTechnologyMian.c主程序main函数调用其他.c里面的函数main.cadc.cdiaplay.ciic.csub.cdiv.c…..Gccmax.c–omax.o–cGccmin.c–omin.o–c…Gccmain.omax.o…div.o-omain采用make管理器make正大气象厚德载物MinnanUniversityofScienceandTechnology03PARTTHERE正大气象厚德载物MinnanUniversityofScienceandTechnologymake工程管理器系统论哲学思想,系统论认为,系统是一个由若干要素以一定结构组成并具有某种功能的有机整体。运用系统论,就要从整体出发分析系统结构,理清系统构成的要素以及要素与要素、结构与要素之间的相互关系,以此确定系统在整体上达到最优的方案。
Linux软件工程通常包含多个功能文件,在构建工程目标时,就要理清目标文件与源文件之间、目标文件与目标文件之间的依赖关系,并将这种相互依赖的关系集中体现在Makefile文件中,交由工程管理器管理。正大气象厚德载物MinnanUniversityofScienceandTechnologymake概述Makefile语法及执行Makefile变量总结与作业make工程管理器正大气象厚德载物MinnanUniversityofScienceandTechnologyGNUmake是一种代码维护工具;make工具会根据Makefile文件定义的规则和步骤完成整个软件项目的代码维护工作;一般用来简化编译工作,可以极大地提高软件开发的效率;Windows下一般由集成环境自动生成;Linux下需要由自己按照语法编写;make是个命令,是个可执行程序,用来解析Makefile文件的命令,此命令存放在/usr/bin中;Makefile是个文件,此文件中描述了程序的编译规则,执行make命令时,make命令会在当前目录中找Makefile文件,根据Makefile文件里的规则编译程序;Makefile的好处
简化编译程序时输入的命令,编译时只需要输入make;
节省编译时间,提高编译效率make概述Makefile语法及执行(1)目标:是要产生的文件名称,目标可以使可执行文件、其他obj文件或动作的名称(2)依赖文件:用来输入从而产生目标的文件,一个目标通常有几个依赖文件(可以没有)(3)命令:make执行的动作,一个规则可以含有几个命令(可以没有),多个命令时,每个命令占一行。(4)make命令,名字不为Makefile或makefile,使用:make–f文件名目标:依赖文件列表<tab>命令列表Makefile语法及执行例题1:main.cmain.hmain.cmain.hmakefileC语言有很多函数(scanf/printf/…)/usr/include“”Makefile语法及执行操作1:main.chead.hsub.csum.cmain.cmakefilehead.hsum.csub.cMakefile语法及执行操作1:main.chead.hsub.csum.c,编写Makefile文件。Makefile运行结果Makefile变量变量作用:保存文件名列表、文件目录列表、编译器名、编译参数、编译输出。可以是目标体、依赖文件、命令以及Makefile文件中其他部分。分类: 1、自定义变量 2、预定义变量和自动变量main:main.o
sub.o
sum.o
gcc
main.o
sub.o
sum.o-omain思考1:如果需要添加一个依赖,例如div.o,该如何修改???Makefile变量自定义变量:大小写区分、在Makefile头部定义,几乎可在任何地方使用。
(1)定义变量变量名=变量值
CC=gcc
(2)引用变量$(变量名)或${变量名}$(CC)gcc操作2:详见Makefile2文件Makefile变量预定义变量和自动变量预定义
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年个人过桥贷款协议3篇
- 构建企业文化与员工关系的重要性计划
- 绩效考核与财务挂钩方案计划
- 城市绿化景观设计改造维护合同
- 2024年度酒店企业客户服务协议范本一
- 2024年专业工程返点合同6篇
- 授权代理协议书
- 2024年Copyright保护协议:作品授权合同3篇
- 2024年度标准防汛沙袋采购协议范本版B版
- 2024年康复器材订购协议2篇
- 二人英语对话3分钟关于环境保护
- 《鲁迅的简介》课件
- 迪拜介绍课件
- 医疗器械使用寿命标准
- MATLAB-simulink-通信系统建模与仿真-第四章部分习题答案
- 三级安全教育登记卡(新)
- 重症肺炎并呼吸衰竭个案护理查房
- 北京市海淀区101中学2024届七年级数学第一学期期末综合测试模拟试题含解析
- 多联机安装施工方案
- 提高SMW工法桩施工质量合格率-【获奖QC 成果发布】
- 政府采购基础知识培训(最终稿)
评论
0/150
提交评论