版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)原理與應(yīng)用電子與電氣工程學(xué)院第一章緒論正大氣象厚德載物MinnanUniversityofScienceandTechnology緒論CONTENTS01.嵌入式系統(tǒng)簡(jiǎn)介02.嵌入式微處理器03.嵌入式系統(tǒng)04.
開(kāi)發(fā)軟件安裝05.如何學(xué)好嵌入式Linux正大氣象厚德載物MinnanUniversityofScienceandTechnology01PARTONE嵌入式系統(tǒng)簡(jiǎn)介正大氣象厚德載物MinnanUniversityofScienceandTechnology1、嵌入式系統(tǒng)定義正大氣象厚德載物MinnanUniversityofScienceandTechnology一、嵌入式系統(tǒng)簡(jiǎn)介
嵌入式產(chǎn)品???1、嵌入式系統(tǒng)定義正大氣象厚德載物MinnanUniversityofScienceandTechnology一、嵌入式系統(tǒng)簡(jiǎn)介5
實(shí)例展示-嵌入式產(chǎn)品嵌入式產(chǎn)品1、嵌入式系統(tǒng)定義正大氣象厚德載物MinnanUniversityofScienceandTechnology一、嵌入式系統(tǒng)簡(jiǎn)介6什么是嵌入式系統(tǒng)?1、嵌入式系統(tǒng)定義正大氣象厚德載物MinnanUniversityofScienceandTechnology一、嵌入式系統(tǒng)簡(jiǎn)介77嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁減,對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。健康碼人臉識(shí)別測(cè)溫一體機(jī)立式人臉識(shí)別測(cè)溫一體機(jī)_捷易科技2、嵌入式系統(tǒng)的結(jié)構(gòu)正大氣象厚德載物MinnanUniversityofScienceandTechnology(1)硬件:一、嵌入式系統(tǒng)簡(jiǎn)介微處理器外圍電路外部設(shè)備2、嵌入式系統(tǒng)的結(jié)構(gòu)正大氣象厚德載物MinnanUniversityofScienceandTechnology(2)軟件:一、嵌入式系統(tǒng)簡(jiǎn)介應(yīng)用程序(ApplicationProgram)應(yīng)用程序接口(ApplicationProgrammableInterface,API)實(shí)時(shí)操作系統(tǒng)(RealTimeOperationSystem,RTOS)板級(jí)支持包(BoardSupportPacket,BSP)3、嵌入式系統(tǒng)的特點(diǎn)正大氣象厚德載物MinnanUniversityofScienceandTechnology(1)嵌入式系統(tǒng)是面向特定應(yīng)用(2)嵌入式系統(tǒng)涉及先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)、通信和軟件等各行業(yè)。(3)嵌入式系統(tǒng)的硬件和軟件都必須具備高度可定制性(可裁剪、移植、優(yōu)化)。(4)運(yùn)行環(huán)境差異大。(5)高實(shí)時(shí)性。(6)多任務(wù)的操作系統(tǒng)。(7)專門(mén)的開(kāi)發(fā)工具和環(huán)境。一、嵌入式系統(tǒng)簡(jiǎn)介3、嵌入式系統(tǒng)的特點(diǎn)正大氣象厚德載物MinnanUniversityofScienceandTechnology嵌入式系統(tǒng)與一般PC(PersonalComputer)系統(tǒng)有何區(qū)別?一、嵌入式系統(tǒng)簡(jiǎn)介3、嵌入式系統(tǒng)的特點(diǎn)正大氣象厚德載物MinnanUniversityofScienceandTechnology一、嵌入式系統(tǒng)簡(jiǎn)介嵌入式系統(tǒng)專用于特定的應(yīng)用,而PC是通用計(jì)算機(jī)。使用多種類型的處理器和處理器體系結(jié)構(gòu)。關(guān)注成本。大多有功耗約束。經(jīng)常在極端的環(huán)境下運(yùn)行。系統(tǒng)資源比PC少的多。需要專用工具和方法進(jìn)行開(kāi)發(fā)設(shè)計(jì)。嵌入式系統(tǒng)的數(shù)量遠(yuǎn)遠(yuǎn)超過(guò)PC。1、無(wú)操作系統(tǒng)階段2、簡(jiǎn)單操作系統(tǒng)階段簡(jiǎn)單的進(jìn)程調(diào)度、內(nèi)存管理、根文件系統(tǒng)、shell3、實(shí)時(shí)操作系統(tǒng)階段多任務(wù),處理能被區(qū)分優(yōu)先次序的進(jìn)程線、文件和目錄管理、設(shè)備管理、多任務(wù)、網(wǎng)絡(luò)、圖形用戶界面(GUI)MinnanUniversityofScienceandTechnology正大氣象厚德載物4、嵌入式系統(tǒng)的發(fā)展一、嵌入式系統(tǒng)簡(jiǎn)介4、面向Internet階段2024/12/1114嵌入式軟硬件系統(tǒng)架構(gòu)
軟硬件系統(tǒng)架構(gòu)
02PARTTWO嵌入式微處理器正大氣象厚德載物MinnanUniversityofScienceandTechnology正大氣象厚德載物MinnanUniversityofScienceandTechnology二、嵌入式微處理器1、嵌入式微控制器(MicroControllerUnit,MCU)2、嵌入式微處理器(MicroProcessorUnit,MPU)3、嵌入式DSP處理器(EmbeddedDigitalSignalProcessor,EDSP)4、嵌入式片上系統(tǒng)(SystemonChip,SoC)嵌入式處理器的分類正大氣象厚德載物MinnanUniversityofScienceandTechnology二、嵌入式微處理器1、Intel公司MCS-51系列微控制器2、Microchip公司PIC系列微控制器3、Freescale公司08系列微控制器4、TI公司TMS320系列DSP5、ARM公司ARM系列微處理器典型的嵌入式處理器正大氣象厚德載物MinnanUniversityofScienceandTechnology二、嵌入式微處理器
ARMARM,既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。1991年ARM公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前ARM微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無(wú)線系統(tǒng)等各類產(chǎn)品市場(chǎng),ARM技術(shù)正在逐步滲入到我們生活的各個(gè)方面。正大氣象厚德載物MinnanUniversityofScienceandTechnology二、嵌入式微處理器ARM分類正大氣象厚德載物MinnanUniversityofScienceandTechnology二、嵌入式微處理器MIPS系列微處理器最初是在上世紀(jì)80年代由美國(guó)斯坦福大學(xué)Hennessy教授領(lǐng)導(dǎo)的研究小組研制出來(lái)的,目前其使用率僅次于ARM。MIPS應(yīng)用領(lǐng)域覆蓋游戲機(jī)、路由器、掌上電腦等各個(gè)方面。MIPS的系統(tǒng)結(jié)構(gòu)及設(shè)計(jì)理念比較先進(jìn),在設(shè)計(jì)理念上MIPS強(qiáng)調(diào)軟硬件協(xié)同提高性能,同時(shí)簡(jiǎn)化硬件設(shè)計(jì)。MIPS正大氣象厚德載物MinnanUniversityofScienceandTechnology二、嵌入式微處理器PowerPCPowerPC處理器品種很多,應(yīng)用范圍非常廣泛,從高端的工作站、服務(wù)器到桌面計(jì)算機(jī)系統(tǒng),從消費(fèi)類電子產(chǎn)品到大型通信設(shè)備,無(wú)所不包。(Motorola)
貴03PARTTHERE嵌入式操作系統(tǒng)正大氣象厚德載物MinnanUniversityofScienceandTechnology正大氣象厚德載物MinnanUniversityofScienceandTechnology三、嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)是嵌入式應(yīng)用軟件的基礎(chǔ)和開(kāi)發(fā)平臺(tái)。嵌入式系統(tǒng)具有操作系統(tǒng)的最基本功能:進(jìn)程調(diào)度進(jìn)程間通信v內(nèi)存管理v設(shè)備管理v文件管理v操作系統(tǒng)接口(API調(diào)用)嵌入式操作系統(tǒng)具有的特點(diǎn):v可裁減,可配置。v有一定的實(shí)時(shí)性。正大氣象厚德載物MinnanUniversityofScienceandTechnology三、嵌入式操作系統(tǒng)vVxworks:
美國(guó)WindRiver公司于1983年開(kāi)發(fā),具有可靠、實(shí)時(shí)、 可裁減特性。vWindowsCE:
支持具有豐富應(yīng)用程序和服務(wù)的32位嵌入式系統(tǒng)。v嵌入式Linux:
近年來(lái),Linux在嵌入式領(lǐng)域異軍突起。貴貴04PARTFOUR開(kāi)發(fā)軟件的安裝正大氣象厚德載物MinnanUniversityofScienceandTechnology四、開(kāi)發(fā)軟件的安裝1、安裝Vmware2、安裝Ubuntu正大氣象厚德載物MinnanUniversityofScienceandTechnology資料包在code第一章中05PARTFIVE如何學(xué)好嵌入式Linux正大氣象厚德載物MinnanUniversityofScienceandTechnology1、為什么要學(xué)習(xí)嵌入式?2、如何學(xué)好嵌入式?五、如何學(xué)好嵌入式Linux1、興趣2、職業(yè)發(fā)展3、高收入正大氣象厚德載物MinnanUniversityofScienceandTechnology思考學(xué)習(xí)的目的1、硬件資源2、做中學(xué)、學(xué)中做3、動(dòng)手做怎么學(xué)1、裸機(jī)程序開(kāi)發(fā)2、系統(tǒng)管理3、應(yīng)用程序開(kāi)發(fā)4、驅(qū)動(dòng)程序開(kāi)發(fā)5、內(nèi)核開(kāi)發(fā)與系統(tǒng)移植學(xué)什么注意事項(xiàng)4231學(xué)習(xí)一定要按計(jì)劃,由簡(jiǎn)入深,系統(tǒng)進(jìn)行。初學(xué)階段,資料做到少而精,堅(jiān)持看。多做實(shí)驗(yàn)多思考,必修實(shí)驗(yàn)必須做。多做多思考正大氣象厚德載物MinnanUniversityofScienceandTechnology作業(yè)1342簡(jiǎn)述嵌入式系統(tǒng)的定義簡(jiǎn)述常見(jiàn)的嵌入式操作系統(tǒng)采用虛擬機(jī)的方法安裝Ubuntu簡(jiǎn)述常見(jiàn)的嵌入式微處理器正大氣象厚德載物MinnanUniversityofScienceandTechnology2024/12/1131GEC6818實(shí)驗(yàn)箱2024/12/1132GEC6818實(shí)驗(yàn)箱2024/12/1133軟件安裝1、安裝Vmware虛擬機(jī)
2、安裝Ubuntu/qq_39557270/article/details/1029262823、安裝vmtools
嵌入式系統(tǒng)原理與應(yīng)用第二章Linux基本操作正大氣象厚德載物MinnanUniversityofScienceandTechnologyLinux基本操作CONTENTS01.Linux常用命令02.vi編輯器、gcc編譯器、gdb調(diào)試器03.make工程管理器04.開(kāi)發(fā)環(huán)境搭建正大氣象厚德載物MinnanUniversityofScienceandTechnology01PARTONELinux常用命令正大氣象厚德載物MinnanUniversityofScienceandTechnology
目錄結(jié)構(gòu)命令詳解作業(yè)總結(jié)Linux基礎(chǔ)命令正大氣象厚德載物MinnanUniversityofScienceandTechnology正大氣象厚德載物MinnanUniversityofScienceandTechnology/bin:存放常用命令的可執(zhí)行文件/boot:存放啟動(dòng)程序/dev:存放設(shè)備文件,字符設(shè)備(鍵盤(pán)、lcd,usb)/etc:存放啟動(dòng),關(guān)閉,配置程序與文件/home:用戶工作根目錄/lib:存放共享鏈接庫(kù)/root:超級(jí)用戶的工作目錄/sbin:系統(tǒng)管理員的常用管理程序/tmp:存放臨時(shí)文件/lost+found:系統(tǒng)出現(xiàn)異常時(shí),用于保存部分資料目錄結(jié)構(gòu)/根目錄~主目錄(家目錄)或/home/用戶名正大氣象厚德載物MinnanUniversityofScienceandTechnology/misc:一些實(shí)用工具/mnt:光驅(qū)、硬盤(pán)等的掛載點(diǎn)/media:光驅(qū)的自動(dòng)掛載點(diǎn)/proc:操作系統(tǒng)的實(shí)時(shí)信息/sys:系統(tǒng)中的硬件設(shè)備信息/srv:服務(wù)啟動(dòng)后需要提取的信息/var:主要存放系統(tǒng)日志/usr:存放用戶程序/tftpboot:tftp服務(wù)器的服務(wù)目錄/selinux:redhat提供的selinux安全程序目錄結(jié)構(gòu)正大氣象厚德載物MinnanUniversityofScienceandTechnology進(jìn)入Linux系統(tǒng),必須輸入用戶的賬號(hào),在系統(tǒng)安裝過(guò)程中可以創(chuàng)建以下兩種帳號(hào):1.root--超級(jí)用戶帳號(hào)(系統(tǒng)管理員),使用這個(gè)帳號(hào)可以在系統(tǒng)中做任何事情。2.普通用戶--這個(gè)帳號(hào)供普通用戶使用,可以進(jìn)行有限的操作。
一般的Linux使用者均為普通用戶,而系統(tǒng)管理員一般使用超級(jí)用戶帳號(hào)完成一些系統(tǒng)管理的工作。如果只需要完成一些由普通帳號(hào)就能完成的任務(wù),建議不要使用超級(jí)用戶帳號(hào),以免無(wú)意中破壞系統(tǒng),影響系統(tǒng)的正常運(yùn)行。用戶登錄分兩步:第一步,輸入用戶的登錄名,
第二步,輸入用戶的口令;當(dāng)用戶正確地輸入用戶名和口令后,就能合法地進(jìn)入系統(tǒng)。屏幕顯示:[root@loclhost/root]#
這時(shí)就可以對(duì)系統(tǒng)做各種操作了。超級(jí)用戶的提示符是“#”,其他用戶的提示符是“$”。命令詳解cd(changedirectory)1、作用:改變當(dāng)前工作路徑2、用法:
cddir/==>將當(dāng)前工作路徑改為dir/cd-==>將當(dāng)前工作路徑改為剛剛?cè)ミ^(guò)的目錄
cd~==>將當(dāng)前工作路徑改為家目錄一些特殊的文件:. 當(dāng)前目錄.. 上一級(jí)目錄../.. 上上級(jí)目錄
根目錄~ 家目錄、主目錄/home/用戶名正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解ls(list)1、作用:列出指定目錄下的文件信息2、用法:
ls ==>列出當(dāng)前目錄中的文件名
lsdir/ ==>列出指定目錄dir/中的文件名
ls-l ==>列出當(dāng)前目錄中的文件的詳細(xì)信息
ls-a ==>列出當(dāng)前目錄中的文件名(包括以.開(kāi)頭的隱藏文件)pwd1、作用:顯示當(dāng)前所在路徑正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解mkdir(mkdir)1、作用:創(chuàng)建新的目錄2、用法:
mkdirdir ==>在當(dāng)前目錄中創(chuàng)建dir目錄
mkdir-ptest2/test22==>在當(dāng)前目錄中創(chuàng)建test22目錄(不存在也創(chuàng)建)
mkdir–m777test3 ==>在當(dāng)前目錄中創(chuàng)建權(quán)限為test3目錄touch1、作用:創(chuàng)建新的文件2、用法:
touchmain.c ==>在當(dāng)前目錄中創(chuàng)建main.c正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解cp(copy)1、作用:復(fù)制指定的文件/目錄2、用法:
cpfile1file2 ==>將file1復(fù)制一份,并命名為file2cpdir1/dir2/-r ==>將dir1/遞歸地復(fù)制一份,并命名為dir2/正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解rm(remove)1、作用:刪除指定的文件/目錄2、用法:
rmfile ==>刪除文件filermdir/-r ==>遞歸地刪除目錄dir/正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解
mv(move)1、作用:將一個(gè)指定的文件/目錄移動(dòng)到另一個(gè)地方給一個(gè)文件/目錄重命名2、用法:
mvfiledir/ ==>將文件file移動(dòng)到dir/中
mvfile1file2 ==>將文件file1,重命名為file2mvdir1/dir2/ ==>將目錄dir1/,重命名為dir2/(dir2/當(dāng)前不存在)
mvdir1/dir2/ ==>將目錄dir1/移動(dòng)到dir2/中(dir2/當(dāng)前已存在)注:當(dāng)mv的第二個(gè)參數(shù)是一個(gè)合法的已存在的目錄時(shí),那么就是移動(dòng),否則就是重命名。正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解cat/more/less1、作用:顯示文本文件內(nèi)容/分屏顯示文件內(nèi)容2、用法:catfilemorefilelessfilehead/tail1、作用:查看一個(gè)文件的開(kāi)頭/結(jié)尾的若干行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"這個(gè)字符串,并且找到之后打印出其所在文件名字(H)以及行號(hào)(n)正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解tar1、作用:解壓、壓縮2、用法:
tarczvfexample.tar.gzfile1file2dir1/dir2/ ==>將file1file2dir1/dir2/統(tǒng)統(tǒng)按照gzip格式壓縮成example.tar.gztar-tfexample.tar.gz ==>查看壓縮包example.tar.gz中有哪些文件
tarxzvfexample.tar.gz ==>將example.tar.gz中的文件解壓到當(dāng)前目錄
tarxzvfexample.tar.gz-Cdir ==>將example.tar.gz中的文件解壓到dir/注:將以上命令中的'z'改成'j',那就是針對(duì)bzip2格式的命令,bzip2格式的壓縮包的后綴是:
example.tar.bz2tarcjvfexample.tar.bz2file1file2dir1/dir2/正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解man(manual)1、作用:對(duì)相應(yīng)的條目查找?guī)椭?、用法:
manls ==>查找關(guān)于ls的默認(rèn)的幫助條目
man-fread ==>列出所有關(guān)于read的幫助手冊(cè)
man3posixread ==>查找在第三冊(cè)手冊(cè)中的關(guān)于read的幫助信息注:下載完整的man幫助文檔
sudoapt-getinstallmanpages-posixmanpages-posix-devmanpages-dev正大氣象厚德載物MinnanUniversityofScienceandTechnology命令詳解1、在家目錄中新建一個(gè)目錄,名為學(xué)號(hào)_姓名2、切換到新建的目錄(學(xué)號(hào)_姓名)中3、新建文件名為姓名.c(touch姓名.c)4、將姓名.c拷貝到/usr中5、切換到/usr中6、更改名字為:學(xué)號(hào).c7、將學(xué)號(hào).c拷貝到新建的目錄(學(xué)號(hào)_姓名)8、將目錄(學(xué)號(hào)_姓名)中的姓名.c和學(xué)號(hào).c壓縮為學(xué)號(hào).tar.gz9、將學(xué)號(hào).tar.gz拷貝到共享文件夾/mnt/hgfs/share中,進(jìn)行解壓。10、配置IP為192.168.班級(jí).xx,xx為學(xué)號(hào)最好兩位,192033101為,192033201為。作業(yè)正大氣象厚德載物MinnanUniversityofScienceandTechnology1、目錄結(jié)構(gòu)2、常用命令cd,ls,mkdir,touch,cp,rm,mv,cat/more/less,head/tail,find,grep,echo,tar,man3、思政:《道德經(jīng)》“天下難事必做于易,天下大事必做于細(xì)”。再難的事,也要從容易開(kāi)始;再大的事,也要從細(xì)處著手。Linux系統(tǒng)是個(gè)大的工程,包含很多功能,它為了實(shí)現(xiàn)整個(gè)系統(tǒng)功能,首先按需求分類,然后在各個(gè)分類下再細(xì)化具體實(shí)現(xiàn),采用分而治之、模塊化的思想設(shè)計(jì)了滿足需求的各種命令。螞蟻精神。螞蟻具有永不放棄、竭盡所能、團(tuán)結(jié)協(xié)作的精神。
Linux命令通常只實(shí)現(xiàn)單一功能,但絕大多數(shù)命令會(huì)提供設(shè)置選項(xiàng),以此盡可能滿足用戶各種需求。首先從容易的事情做起,理解Linux命令,當(dāng)需要實(shí)現(xiàn)復(fù)雜功能時(shí),對(duì)不同命令進(jìn)行組合,合力實(shí)現(xiàn)所需功能。
總結(jié)正大氣象厚德載物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調(diào)試器gdb項(xiàng)目管理器makeLinux下C語(yǔ)言編程基礎(chǔ)重點(diǎn)內(nèi)容正大氣象厚德載物MinnanUniversityofScienceandTechnology02PARTTWOvi、gcc、gdb正大氣象厚德載物MinnanUniversityofScienceandTechnology
文本編輯器vi使用
gcc編譯器gdb調(diào)試器作業(yè)正大氣象厚德載物MinnanUniversityofScienceandTechnologyvi是Linux系統(tǒng)的第一個(gè)全屏幕交互式編輯器。vi有3種工作模式,分別是命令行模式、插入模式、底行模式。命令行模式:最初進(jìn)入的一般模式,該模式下可以移動(dòng)光標(biāo)進(jìn)行瀏覽,整行刪除,但無(wú)法編輯文字。插入模式:只有在該模式下,用戶才能進(jìn)行文字的編輯輸入,用戶可以使用[ESC]鍵回到命令行模式。底行模式:該模式下,光標(biāo)位于屏幕底行,用戶可以進(jìn)行文件保存或退出操作,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號(hào)。文本編輯器vi使用1.vihello.c2.鍵入i進(jìn)入插入模式3.編輯自己的程序4.鍵入[Esc]退回到命令行模式5.鍵入:wq保存退出文本編輯器vi使用命令行模式插入模式底行模式輸入i/a/o按下Esc輸入:wq回車(chē):q!
命令行模式功能鍵:yy:復(fù)制當(dāng)前光標(biāo)所在行[n]yy:n為數(shù)字,復(fù)制當(dāng)前光標(biāo)開(kāi)始的n行p:粘貼復(fù)制的內(nèi)容到光標(biāo)所在行dd:刪除當(dāng)前光標(biāo)所在行[n]dd:刪除當(dāng)前光標(biāo)所在行開(kāi)始的n行/name:查找光標(biāo)之后的名為“name”的字符串G:
光標(biāo)移動(dòng)到文件尾(注意是大寫(xiě))u: 取消前一個(gè)動(dòng)作(注意是小寫(xiě))文本編輯器vi使用底行模式功能鍵::w 保存:q 退出vi(系統(tǒng)會(huì)提示保存修改):q! 強(qiáng)行退出(對(duì)修改不做保存):wq 保存后退出:w[filename]另存為filename的文件:setnu 顯示行號(hào):setnonu 取消行號(hào)文本編輯器vi使用Linux系統(tǒng)下的gcc(GNUCCompiler)是GNU推出的功能強(qiáng)大、性能優(yōu)越的多平臺(tái)編譯器,是GNU的代表作之一。gcc可以在多種硬體平臺(tái)上編譯出可執(zhí)行程序,其執(zhí)行效率與一般的編譯器相比平均效率要高20%~30%。GCC編譯器能將C、C++語(yǔ)言源程序、匯編程序編譯、鏈接成可執(zhí)行文件。在Linux系統(tǒng)中,可執(zhí)行文件沒(méi)有統(tǒng)一的后綴,系統(tǒng)從文件的屬性來(lái)區(qū)分可執(zhí)行文件和不可執(zhí)行文件。使用GCC編譯程序時(shí),編譯過(guò)程可以被細(xì)分為四個(gè)階段:(1)預(yù)處理(Pre-Processing):對(duì)頭文件、宏定義展開(kāi).i(2)編譯(Compiling):檢查代碼規(guī)范性、語(yǔ)法,無(wú)誤后翻譯成匯編語(yǔ)句.s(3)匯編(Assembling):將匯編文件(.S)轉(zhuǎn)化為目標(biāo)文件(.o).o(4)鏈接(Linking):動(dòng)態(tài)鏈接、靜態(tài)鏈接成二進(jìn)制可執(zhí)行文件gcc編譯器hello.c(二進(jìn)制)可執(zhí)行文件gcc通過(guò)后綴來(lái)區(qū)別輸入文件的類別:gcc編譯器.c為后綴的文件C語(yǔ)言源代碼文件.a為后綴的文件由目標(biāo)文件構(gòu)成的庫(kù)文件.C,.cc或.cxx為后綴的文件C++源代碼文件.h為后綴的文件頭文件.i為后綴的文件已經(jīng)預(yù)處理過(guò)的C源代碼文件.ii為后綴的文件已經(jīng)預(yù)處理過(guò)的C++源代碼文件.o為后綴的文件編譯后的目標(biāo)文件.s為后綴的文件匯編語(yǔ)言源代碼文件.S為后綴的文件經(jīng)過(guò)預(yù)編譯的匯編語(yǔ)言源代碼文件。gcc編譯器操作1:a.c內(nèi)容如下#include<stdio.h>intmain(void){ printf(Helloworld!\n); return0;}編譯和運(yùn)行這段程序:gcca.c-ohello./a輸出:Helloworld!gcc編譯器gcc最基本的用法是∶
gcc[options]filenameoptions:編譯器所需要的編譯選項(xiàng),編譯選項(xiàng)約有100多個(gè),只介紹常用的參數(shù)filenames:要編譯的文件名。(1)-ooutput_filename:確定可執(zhí)行文件的名稱output_filename。如果不給出這個(gè)選項(xiàng),gcc就給出預(yù)設(shè)的可執(zhí)行文件a.out。(演示)(2)-c:只編譯,不連接成為可執(zhí)行文件,編譯器只是由輸入的.c等源代碼文件生成.o為后綴的目標(biāo)文件。(3)-g:產(chǎn)生調(diào)試工具(GNU的gdb)所必要的符號(hào)信息,要想對(duì)編譯出的程序進(jìn)行調(diào)試,就必須加入這個(gè)選項(xiàng)。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,對(duì)程序進(jìn)行優(yōu)化編譯、鏈接,采用這個(gè)選項(xiàng),整個(gè)源代碼會(huì)在編譯、連接過(guò)程中進(jìn)行優(yōu)化處理,這樣產(chǎn)生的可執(zhí)行文件的執(zhí)行效率可以提高,但是,編譯、連接的速度就相應(yīng)地要慢一些。(5)-O2,比-O更好的優(yōu)化編譯、連接,當(dāng)然整個(gè)編譯、連接過(guò)程會(huì)更慢。操作2(optimize.c)gccoptimize.c-ooptimizetime./optimizegcc–Ooptimize.c-ooptimizetime./optimize對(duì)比兩次執(zhí)行的輸出結(jié)果不難看出,程序的性能的確得到了很大幅度的改善gcc編譯器的基本用法(6)-Idirname:將dirname所指出的目錄加入到程序頭文件目錄列表中。#include<A.h>#include“B.h”
對(duì)于<>,預(yù)處理程序cpp在系統(tǒng)預(yù)設(shè)的頭文件目錄(如/usr/include)中搜尋相應(yīng)的文件;而對(duì)于””,cpp在當(dāng)前目錄中搜尋頭文件。此選項(xiàng)的作用是告訴cpp,如果在當(dāng)前目錄中沒(méi)有找到需要的文件,就到指定dirname目錄中去尋找。例:gccfoo.c–I/home/include-ofoogcc編譯器的基本用法(7)-Ldirname:將dirname所指出的目錄加入到庫(kù)文件的目錄列表中。在默認(rèn)狀態(tài)下,連接程序ld在系統(tǒng)的預(yù)設(shè)路徑中(如/usr/lib)尋找所需要的庫(kù)文件,這個(gè)選項(xiàng)告訴連接程序,首先到-L指定的目錄中去尋找,然后再到系統(tǒng)預(yù)設(shè)路徑中尋找。(8)-lname:在連接時(shí),裝載名字為“l(fā)ibname.a”的函數(shù)庫(kù),該函數(shù)庫(kù)位于系統(tǒng)預(yù)設(shè)的目錄或者由-L選項(xiàng)確定的目錄下。例如,-lm表示連接名為libm.a”的數(shù)學(xué)函數(shù)庫(kù)。例: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:靜態(tài)鏈接庫(kù)文件例:gcc–statichello.c-ohello
庫(kù)有動(dòng)態(tài)與靜態(tài)兩種,動(dòng)態(tài)通常用.so為后綴,靜態(tài)用.a為后綴。 例如:libhello.solibhello.a。當(dāng)使用靜態(tài)庫(kù)時(shí),連接器找出程序所需的函數(shù),然后將它們拷貝到可執(zhí)行文件,一旦連接成功,靜態(tài)程序庫(kù)也就不再需要了。然而,對(duì)動(dòng)態(tài)庫(kù)而言,就不是這樣,動(dòng)態(tài)庫(kù)會(huì)在執(zhí)行程序內(nèi)留下一個(gè)標(biāo)記‘指明當(dāng)程序執(zhí)行時(shí),首先必須載入這個(gè)庫(kù)。由于動(dòng)態(tài)庫(kù)節(jié)省空間,linux下進(jìn)行連接的缺省操作是首先連接動(dòng)態(tài)庫(kù)。演示:靜態(tài)鏈接與動(dòng)態(tài)鏈接可執(zhí)行文件大小比較。gcca.c–oagcc–statica.c–oals-lllgcc編譯器的基本用法(10)-Wall:生成所有警告信息(11)-w:不生成任何警告信息(12)-DMACRO:定義MACRO宏,等效于在程序中使用#defineMACROgcc編譯器的基本用法簡(jiǎn)介GDB是GNU發(fā)布的一款功能強(qiáng)大的程序調(diào)試工具。GDB主要完成下面三個(gè)方面的功能:1、啟動(dòng)被調(diào)試程序。2、讓被調(diào)試的程序在指定的位置停住。3、當(dāng)程序被停住時(shí),可以檢查程序狀態(tài)(如變量值)。gdb調(diào)試器操作1:vitest.c#include<stdio.h>voidmain(){ inti; longresult=0; for(i=1;i<=100;i++) { result+=i; } printf("result=%d\n",result);}gdb調(diào)試器gcc-gtest.c-otest//編譯生成可執(zhí)行文件gdbtest //啟動(dòng)GDBlist//查看程序breakmain//在main函數(shù)處設(shè)置斷點(diǎn)run//運(yùn)行程序next //單步運(yùn)行continue //繼續(xù)運(yùn)行q//退出gdbGDB命令啟動(dòng)GDB(1)gdb調(diào)試程序名
例:gdbhelloworld(2)gdb file調(diào)試程序名list(l)查看程序break(b)函數(shù)名
在某函數(shù)入口處添加斷點(diǎn)break(b)行號(hào)
在指定行添加斷點(diǎn)break(b)文件名:行號(hào)
在指定文件的指定行添加斷點(diǎn)break(b)行號(hào)if條件
當(dāng)條件為真時(shí),指定行號(hào)處斷點(diǎn)生效.gdb調(diào)試器例b5ifi=10 當(dāng)i等于10時(shí)第5行斷點(diǎn)生效infobreak 查看所有設(shè)置的斷點(diǎn)delete斷點(diǎn)編號(hào)
刪除斷點(diǎn)run(r) 開(kāi)始運(yùn)行程序next(n) 單步運(yùn)行程序(不進(jìn)入子函數(shù))step(s) 單步運(yùn)行程序(進(jìn)入子函數(shù))continue(c) 繼續(xù)運(yùn)行程序print(p)變量名
查看指定變量值finish 運(yùn)行程序,直到當(dāng)前函數(shù)結(jié)束watch變量名
對(duì)指定變量進(jìn)行監(jiān)控quit(q) 退出gdb操作2gdbfiletestl //bmain //b8 //btest.c:10 //b8ifi=10 //infob //d1 //d2 //d4 //gdb調(diào)試器runprintinextnnprintiprintresultstepb3continueqTHANKYOU!總結(jié)與作業(yè)總結(jié)1、vim的使用(命令行模式、插入模式、底行模式)2、gcc的使用(gccxxx.c–oxxx)3、gdb的使用作業(yè)1、使用vi新建姓名.c,此源程序功能實(shí)現(xiàn)打印輸出姓名和學(xué)號(hào)。2、對(duì)姓名.c進(jìn)行編譯3、執(zhí)行查看結(jié)果正大氣象厚德載物MinnanUniversityofScienceandTechnologyMian.c主程序main函數(shù)調(diào)用其他.c里面的函數(shù)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工程管理器系統(tǒng)論哲學(xué)思想,系統(tǒng)論認(rèn)為,系統(tǒng)是一個(gè)由若干要素以一定結(jié)構(gòu)組成并具有某種功能的有機(jī)整體。運(yùn)用系統(tǒng)論,就要從整體出發(fā)分析系統(tǒng)結(jié)構(gòu),理清系統(tǒng)構(gòu)成的要素以及要素與要素、結(jié)構(gòu)與要素之間的相互關(guān)系,以此確定系統(tǒng)在整體上達(dá)到最優(yōu)的方案。
Linux軟件工程通常包含多個(gè)功能文件,在構(gòu)建工程目標(biāo)時(shí),就要理清目標(biāo)文件與源文件之間、目標(biāo)文件與目標(biāo)文件之間的依賴關(guān)系,并將這種相互依賴的關(guān)系集中體現(xiàn)在Makefile文件中,交由工程管理器管理。正大氣象厚德載物MinnanUniversityofScienceandTechnologymake概述Makefile語(yǔ)法及執(zhí)行Makefile變量總結(jié)與作業(yè)make工程管理器正大氣象厚德載物MinnanUniversityofScienceandTechnologyGNUmake是一種代碼維護(hù)工具;make工具會(huì)根據(jù)Makefile文件定義的規(guī)則和步驟完成整個(gè)軟件項(xiàng)目的代碼維護(hù)工作;一般用來(lái)簡(jiǎn)化編譯工作,可以極大地提高軟件開(kāi)發(fā)的效率;Windows下一般由集成環(huán)境自動(dòng)生成;Linux下需要由自己按照語(yǔ)法編寫(xiě);make是個(gè)命令,是個(gè)可執(zhí)行程序,用來(lái)解析Makefile文件的命令,此命令存放在/usr/bin中;Makefile是個(gè)文件,此文件中描述了程序的編譯規(guī)則,執(zhí)行make命令時(shí),make命令會(huì)在當(dāng)前目錄中找Makefile文件,根據(jù)Makefile文件里的規(guī)則編譯程序;Makefile的好處
簡(jiǎn)化編譯程序時(shí)輸入的命令,編譯時(shí)只需要輸入make;
節(jié)省編譯時(shí)間,提高編譯效率make概述Makefile語(yǔ)法及執(zhí)行(1)目標(biāo):是要產(chǎn)生的文件名稱,目標(biāo)可以使可執(zhí)行文件、其他obj文件或動(dòng)作的名稱(2)依賴文件:用來(lái)輸入從而產(chǎn)生目標(biāo)的文件,一個(gè)目標(biāo)通常有幾個(gè)依賴文件(可以沒(méi)有)(3)命令:make執(zhí)行的動(dòng)作,一個(gè)規(guī)則可以含有幾個(gè)命令(可以沒(méi)有),多個(gè)命令時(shí),每個(gè)命令占一行。(4)make命令,名字不為Makefile或makefile,使用:make–f文件名目標(biāo):依賴文件列表<tab>命令列表Makefile語(yǔ)法及執(zhí)行例題1:main.cmain.hmain.cmain.hmakefileC語(yǔ)言有很多函數(shù)(scanf/printf/…)/usr/include“”Makefile語(yǔ)法及執(zhí)行操作1:main.chead.hsub.csum.cmain.cmakefilehead.hsum.csub.cMakefile語(yǔ)法及執(zhí)行操作1:main.chead.hsub.csum.c,編寫(xiě)Makefile文件。Makefile運(yùn)行結(jié)果Makefile變量變量作用:保存文件名列表、文件目錄列表、編譯器名、編譯參數(shù)、編譯輸出??梢允悄繕?biāo)體、依賴文件、命令以及Makefile文件中其他部分。分類: 1、自定義變量 2、預(yù)定義變量和自動(dòng)變量main:main.o
sub.o
sum.o
gcc
main.o
sub.o
sum.o-omain思考1:如果需要添加一個(gè)依賴,例如div.o,該如何修改???Makefile變量自定義變量:大小寫(xiě)區(qū)分、在Makefile頭部定義,幾乎可在任何地方使用。
(1)定義變量變量名=變量值
CC=gcc
(2)引用變量$(變量名)或${變量名}$(CC)gcc操作2:詳見(jiàn)Makefile2文件Makefile變量預(yù)定義變量和自動(dòng)變量預(yù)定義
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甜品課程設(shè)計(jì)中班數(shù)學(xué)
- 2024年消防安全檢查與整改合同匯編6篇
- 種草類拍攝課程設(shè)計(jì)
- 甜點(diǎn)面包烘焙課程設(shè)計(jì)
- 吃豆子課程設(shè)計(jì)
- 愛(ài)立方圖形組合課程設(shè)計(jì)
- 洋蔥種植勞動(dòng)課程設(shè)計(jì)
- 2024年企業(yè)職工食堂承包運(yùn)營(yíng)合同3篇
- 2024年甲乙雙方關(guān)于租賃攝像設(shè)備的合同
- 2024年新能源光伏組件性能檢測(cè)技術(shù)服務(wù)合同3篇
- 老年人合理用藥新進(jìn)展課件
- 工程經(jīng)濟(jì)學(xué)案例分析課程設(shè)計(jì)
- 公司投產(chǎn)慶典策劃方案
- 服務(wù)管理的價(jià)值創(chuàng)造
- 內(nèi)科醫(yī)生如何與患者建立有效的溝通
- 植物生長(zhǎng)與環(huán)境課程教案
- 歌廳消防安全管理制度
- 獨(dú)立基礎(chǔ)計(jì)算(帶公式)
- 基站電力維護(hù)管理制度
- 《雪地尋蹤》選擇題及答案
- 2023年NPI產(chǎn)品工程師年度總結(jié)及下年工作展望
評(píng)論
0/150
提交評(píng)論