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