版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程目標(biāo)課程目標(biāo):本課程將嵌入式系統(tǒng)中經(jīng)常用到的本課程將嵌入式系統(tǒng)中經(jīng)常用到的C C編編程技巧與概念介紹給大家,并且能在程技巧與概念介紹給大家,并且能在Linux下使用下使用C語言編寫一些實(shí)際的應(yīng)用程序語言編寫一些實(shí)際的應(yīng)用程序先修課程:先修課程:C C語言編程(我們假設(shè)同學(xué)門已經(jīng)了解語言編程(我們假設(shè)同學(xué)門已經(jīng)了解基本的基本的C C語法,并至少在一個編譯器環(huán)境中編寫過語法,并至少在一個編譯器環(huán)境中編寫過C C語言,雖然我們在課程中有語言,雖然我們在課程中有4 4個小時左右的個小時左右的C C語言復(fù)語言復(fù)習(xí))習(xí))學(xué)時分配:學(xué)時分配:總學(xué)時總學(xué)時4848小時,小時,其中授課其中授課2424小時,
2、實(shí)驗(yàn)(小時,實(shí)驗(yàn)(ProjectProject)2424小時小時 要求學(xué)生獨(dú)立完成一個中等規(guī)模的要求學(xué)生獨(dú)立完成一個中等規(guī)模的C C語言項(xiàng)目。語言項(xiàng)目。 (1)C C程式設(shè)計語言程式設(shè)計語言 (The C Programming Language )(The C Programming Language ) 作者:作者:Brian W.Kernighan, Dennis M.RitchieBrian W.Kernighan, Dennis M.Ritchie 簡介:本書是由簡介:本書是由C C語言的設(shè)計者語言的設(shè)計者Brian W. KernighanBrian W. Kernighan和和D
3、ennis M. Dennis M. RitchieRitchie編寫的一部介紹標(biāo)準(zhǔn)編寫的一部介紹標(biāo)準(zhǔn)C C語言及其程式設(shè)計方法的權(quán)威性經(jīng)典著作。一語言及其程式設(shè)計方法的權(quán)威性經(jīng)典著作。一本必讀的程式設(shè)計語言方面的參考書。本必讀的程式設(shè)計語言方面的參考書。 (2)C Primer PlusC Primer Plus中文版中文版(C Primer Plus)(C Primer Plus) 作者:作者:Stephen PrataStephen Prata 簡介:作為核心計算機(jī)技術(shù)成熟、完整的參考書籍,簡介:作為核心計算機(jī)技術(shù)成熟、完整的參考書籍,Primer PlusPrimer Plus系列系列
4、歷經(jīng)十?dāng)?shù)年不衰,通過學(xué)習(xí)歷經(jīng)十?dāng)?shù)年不衰,通過學(xué)習(xí)C Primer Plus(C Primer Plus(第五版第五版) )中文版中文版,你將奠定,你將奠定堅實(shí)的堅實(shí)的C C編程基礎(chǔ)。編程基礎(chǔ)。 (3)C C和指針和指針(Pointers on C)(Pointers on C) 作者:作者:Kenneth A.ReekKenneth A.Reek 簡介:本書提供和簡介:本書提供和C C語言編程相關(guān)的全方面資源和深入討論。全書覆蓋語言編程相關(guān)的全方面資源和深入討論。全書覆蓋了數(shù)據(jù)、語句、操作符和表達(dá)式、指針、函數(shù)、數(shù)組、字符串、結(jié)構(gòu)和聯(lián)合了數(shù)據(jù)、語句、操作符和表達(dá)式、指針、函數(shù)、數(shù)組、字符串、結(jié)
5、構(gòu)和聯(lián)合等幾乎所有重要的等幾乎所有重要的C C編程話題。書中給出了非常多編程技巧和提示。編程話題。書中給出了非常多編程技巧和提示。參考書籍和資料參考書籍和資料- C語言語言初級初級教材教材 (1)C C陷阱和缺陷陷阱和缺陷(C Traps and Pitfalls)(C Traps and Pitfalls) 作者:作者:Andrew Koenig Andrew Koenig 簡介:作者以自己簡介:作者以自己19851985年在年在BellBell實(shí)驗(yàn)室時發(fā)表的一篇論文為基礎(chǔ),結(jié)實(shí)驗(yàn)室時發(fā)表的一篇論文為基礎(chǔ),結(jié)合自己的工作經(jīng)驗(yàn)擴(kuò)展成為這本對合自己的工作經(jīng)驗(yàn)擴(kuò)展成為這本對C C程式員具有珍貴價值
6、的經(jīng)典著作。本書程式員具有珍貴價值的經(jīng)典著作。本書的出發(fā)點(diǎn)不是要批判的出發(fā)點(diǎn)不是要批判C C語言,而是要幫助語言,而是要幫助C C程式員繞過編程過程中的陷阱和程式員繞過編程過程中的陷阱和障礙。障礙。 (2)C C專家編程專家編程(Expert C Programming )(Expert C Programming ) 作者:作者:Perter Van Der LinDenPerter Van Der LinDen 簡介:展示了最優(yōu)秀的簡介:展示了最優(yōu)秀的C C程式員所使用的編碼技巧。程式員所使用的編碼技巧。 書中書中C C的歷史、語的歷史、語言特性、聲明、數(shù)組、指針、鏈接、運(yùn)行時、內(nèi)存及怎么
7、進(jìn)一步學(xué)習(xí)言特性、聲明、數(shù)組、指針、鏈接、運(yùn)行時、內(nèi)存及怎么進(jìn)一步學(xué)習(xí)C+C+等等問題進(jìn)行了細(xì)致的講解和深入的分析。全書擷取幾十個實(shí)例進(jìn)行講解,對問題進(jìn)行了細(xì)致的講解和深入的分析。全書擷取幾十個實(shí)例進(jìn)行講解,對C C程式員具有非常高的實(shí)用價值程式員具有非常高的實(shí)用價值。 (3)C C語言編程常見問題解答語言編程常見問題解答(C Programming : Just the Faqs(C Programming : Just the Faqs ) ) 作者:作者:Paul S.R.ChisholmPaul S.R.Chisholm 等等 簡介:這是一本專門解答簡介:這是一本專門解答c c語言編程
8、常見問題的著作。書中所覆蓋的內(nèi)語言編程常見問題的著作。書中所覆蓋的內(nèi)容相當(dāng)廣泛,并附有大量鮮明的例子容相當(dāng)廣泛,并附有大量鮮明的例子。參考書籍和資料參考書籍和資料- C語言語言進(jìn)階進(jìn)階書籍書籍 (1)(1) C/C+C/C+嵌入式系統(tǒng)編程嵌入式系統(tǒng)編程(Programming Embedded Systems in C (Programming Embedded Systems in C and C+)and C+) 作者:作者:Michael Barr Michael Barr 簡介:本書中的技術(shù)和范例代碼均可直接應(yīng)用于各種實(shí)際的嵌入式系統(tǒng)簡介:本書中的技術(shù)和范例代碼均可直接應(yīng)用于各種實(shí)際的
9、嵌入式系統(tǒng)項(xiàng)目。有過嵌入式系統(tǒng)研發(fā)經(jīng)驗(yàn)的讀者,也將從中獲益匪淺。項(xiàng)目。有過嵌入式系統(tǒng)研發(fā)經(jīng)驗(yàn)的讀者,也將從中獲益匪淺。 (2) (2) 嵌入式實(shí)時操作系統(tǒng)嵌入式實(shí)時操作系統(tǒng)C/OS-IIC/OS-II(MicroC/OS-II(MicroC/OS-II The Real-Time The Real-Time Kernel)Kernel) 作者:作者:Jean J.LabrosseJean J.Labrosse 簡介:簡介:CC/OSII/OSII是源碼公開的實(shí)時內(nèi)核,是專為嵌入式應(yīng)用設(shè)計的。通是源碼公開的實(shí)時內(nèi)核,是專為嵌入式應(yīng)用設(shè)計的。通過對過對CC/OSII/OSII原始碼的分析和描述,講
10、述了多任務(wù)實(shí)時的基本概念、競爭和原始碼的分析和描述,講述了多任務(wù)實(shí)時的基本概念、競爭和調(diào)度算法、任務(wù)間同步和通信、存儲和定時的管理及怎么處理優(yōu)先級反轉(zhuǎn)問調(diào)度算法、任務(wù)間同步和通信、存儲和定時的管理及怎么處理優(yōu)先級反轉(zhuǎn)問題;介紹怎么將題;介紹怎么將CC/OSII/OSII移植到不同移植到不同CPUCPU上,怎么調(diào)試移植代碼。上,怎么調(diào)試移植代碼。 (3) (3) 嵌入式系統(tǒng)構(gòu)件嵌入式系統(tǒng)構(gòu)件(Embedded Systems Building Blocks )(Embedded Systems Building Blocks ) 作者:作者: Jean J.LabrosseJean J.Labr
11、osse 簡介:本書介紹了構(gòu)建嵌入式系統(tǒng)的一些通用模塊,如鍵盤掃描器、顯簡介:本書介紹了構(gòu)建嵌入式系統(tǒng)的一些通用模塊,如鍵盤掃描器、顯示器接口、計量器和輸入示器接口、計量器和輸入/ /輸出。大部分代碼都是用可移植的輸出。大部分代碼都是用可移植的C C語言編寫。語言編寫。參考書籍和資料參考書籍和資料-嵌入式編程書籍嵌入式編程書籍1. 1. 會會C C語法與會用語法與會用C C語言寫程序是兩個概念語言寫程序是兩個概念2. C2. C的靈活性以及由此而產(chǎn)生的陷阱非常非常多的靈活性以及由此而產(chǎn)生的陷阱非常非常多3. The Most Beautiful Language and Most 3. The
12、 Most Beautiful Language and Most Dangerous Language in the Programming World!Dangerous Language in the Programming World!學(xué)習(xí)學(xué)習(xí)C C語言的誤區(qū)語言的誤區(qū)第第1章章 嵌入式嵌入式Linux C語言開發(fā)工具語言開發(fā)工具本章內(nèi)容本章內(nèi)容1.1 嵌入式嵌入式Linux下下C語言概述語言概述1.2 嵌入式嵌入式Linux編輯器編輯器vi的使用的使用1.3 嵌入式嵌入式Linux編譯器編譯器GCC的使用的使用 1.4 嵌入式嵌入式Linux調(diào)試器調(diào)試器GDB的使用的使用 1.5 m
13、ake工程管理器工程管理器 1.6 Eclipse集成開發(fā)環(huán)境集成開發(fā)環(huán)境 本章小結(jié)本章小結(jié)1.1 嵌入式嵌入式Linux下下C語言概述語言概述 1.1.1 C語言簡史語言簡史 1.1.2 C語言特點(diǎn)語言特點(diǎn) 1.1.3 嵌入式嵌入式Linux C語言編程環(huán)境語言編程環(huán)境 1.1.1 C語言簡史語言簡史 C語言語言最初最初是美國貝爾實(shí)驗(yàn)室的是美國貝爾實(shí)驗(yàn)室的D.M.Ritchie在在B語言的基礎(chǔ)上設(shè)計出來語言的基礎(chǔ)上設(shè)計出來的,此時的的,此時的C語言只是為了描述和實(shí)現(xiàn)語言只是為了描述和實(shí)現(xiàn)UNIX操作系統(tǒng)的一種工作語言。在操作系統(tǒng)的一種工作語言。在一段時間里,一段時間里,C語言還只在貝爾實(shí)驗(yàn)室
14、內(nèi)部使用。語言還只在貝爾實(shí)驗(yàn)室內(nèi)部使用。1975年年,UNIX第第6版公布后,版公布后,C語言突出的優(yōu)點(diǎn)引起人們的普遍注意。語言突出的優(yōu)點(diǎn)引起人們的普遍注意。1977年年出現(xiàn)了可移植的出現(xiàn)了可移植的C語言。語言。1978年年UNIX第第7版的版的C語言成為后來被廣泛使用的語言成為后來被廣泛使用的C語言版本的基礎(chǔ),被語言版本的基礎(chǔ),被稱為標(biāo)準(zhǔn)稱為標(biāo)準(zhǔn)C語言。語言。1983年年,美國國家標(biāo)準(zhǔn)化協(xié)會(,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI)根據(jù))根據(jù)C語言問世以來的各種版本,語言問世以來的各種版本,對對C語言進(jìn)行發(fā)展和擴(kuò)充,并制定了新的標(biāo)準(zhǔn),稱為語言進(jìn)行發(fā)展和擴(kuò)充,并制定了新的標(biāo)準(zhǔn),稱為ANSI C。199
15、0年年,國際標(biāo)準(zhǔn)化組織,國際標(biāo)準(zhǔn)化組織ISO制定了制定了ISO C標(biāo)準(zhǔn),目前流行的標(biāo)準(zhǔn),目前流行的C語言編譯系語言編譯系統(tǒng)都是以它為標(biāo)準(zhǔn)的。統(tǒng)都是以它為標(biāo)準(zhǔn)的。1.1.2 C語言特點(diǎn)語言特點(diǎn)C語言是結(jié)構(gòu)化的語言語言是結(jié)構(gòu)化的語言 采用代碼及數(shù)據(jù)分隔的方式,使程序的各部分獨(dú)立采用代碼及數(shù)據(jù)分隔的方式,使程序的各部分獨(dú)立以函數(shù)的形式提供給用戶,方便調(diào)用以函數(shù)的形式提供給用戶,方便調(diào)用C語言是模塊化的語言語言是模塊化的語言 減少重復(fù)編程,減少勞動量,提高編程效率減少重復(fù)編程,減少勞動量,提高編程效率程序可移植性好程序可移植性好 不同機(jī)器上的編譯程序大約有不同機(jī)器上的編譯程序大約有80%的代碼是公共的
16、的代碼是公共的 C語言運(yùn)算符豐富、代碼效率高語言運(yùn)算符豐富、代碼效率高C語言共有語言共有34種運(yùn)算符,使用各種運(yùn)算符可以實(shí)現(xiàn)在其他高級語言中種運(yùn)算符,使用各種運(yùn)算符可以實(shí)現(xiàn)在其他高級語言中難以實(shí)現(xiàn)的運(yùn)算。難以實(shí)現(xiàn)的運(yùn)算。 1.1.3 嵌入式嵌入式Linux C語言編程環(huán)境語言編程環(huán)境 編輯器編輯器 常用的編輯器有常用的編輯器有vi(vim)和)和Emacs 編譯鏈接器編譯鏈接器 常用的編譯器是常用的編譯器是GCC編譯器編譯器 調(diào)試器調(diào)試器 GDB 項(xiàng)目管理器項(xiàng)目管理器 項(xiàng)目管理器項(xiàng)目管理器make1.2 嵌入式嵌入式Linux編輯器編輯器vi的使用的使用 1.2.1 vi的基本模式的基本模式
17、1.2.2 vi的基本操作的基本操作 1.2.3 vi的使用實(shí)例分析的使用實(shí)例分析1.2.1 vi (vim)的基本模式的基本模式 命令行模式(命令行模式(Command Mode) 在該模式下用戶可以輸入命令來控制屏幕光標(biāo)的移動,在該模式下用戶可以輸入命令來控制屏幕光標(biāo)的移動,字符、單詞或行的刪除,移動復(fù)制某區(qū)段,也可以進(jìn)入字符、單詞或行的刪除,移動復(fù)制某區(qū)段,也可以進(jìn)入到底行模式或者插入模式下。到底行模式或者插入模式下。 插入模式(插入模式(Insert Mode) 用戶只有在插入模式下才可以進(jìn)行字符輸入,用戶按用戶只有在插入模式下才可以進(jìn)行字符輸入,用戶按Esc鍵可回到命令行模式下。鍵可
18、回到命令行模式下。 底行模式(底行模式(Last Line Mode) 在該模式下,用戶可以將文件保存或退出在該模式下,用戶可以將文件保存或退出vi,也可以設(shè),也可以設(shè)置編輯環(huán)境,如尋找字符串、顯示行號等。這一模式下置編輯環(huán)境,如尋找字符串、顯示行號等。這一模式下的命令都是以的命令都是以“:”開始。開始。 1.2.2 vi (vim)的基本操作的基本操作 進(jìn)入與離開進(jìn)入與離開 進(jìn)入進(jìn)入vi可以直接在系統(tǒng)提示符下鍵入可以直接在系統(tǒng)提示符下鍵入vi 文檔名稱,文檔名稱,vi可以自動載入所要編輯的文檔或是創(chuàng)建一個新的文檔??梢宰詣虞d入所要編輯的文檔或是創(chuàng)建一個新的文檔。如在如在shell中鍵入中鍵入
19、vi hello.c(新建文檔)即可進(jìn)入(新建文檔)即可進(jìn)入vi畫面畫面. 進(jìn)入進(jìn)入vi后屏幕最左邊會出現(xiàn)波浪符號,凡是有該符號就后屏幕最左邊會出現(xiàn)波浪符號,凡是有該符號就代表該行目前是空的。此時進(jìn)入的是命令行模式。代表該行目前是空的。此時進(jìn)入的是命令行模式。 要離開要離開vi可以在底行模式下鍵入可以在底行模式下鍵入“:q”(不保存離開),(不保存離開),“:wq”(保存離開)則是存檔后再離開(注意冒號)。(保存離開)則是存檔后再離開(注意冒號)。 在vi中打開/新建文檔171.2.2 vi (vim)的基本操作的基本操作 在vi中退出文檔 1.2.2 vi (vim)的基本操作的基本操作 v
20、i中中3種模式的切換種模式的切換 (1)命令行模式、底行模式轉(zhuǎn)為插入模式)命令行模式、底行模式轉(zhuǎn)為插入模式特特 征征命令命令作作 用用新增新增a從光標(biāo)所在位置后面開始新增資料,光標(biāo)后的從光標(biāo)所在位置后面開始新增資料,光標(biāo)后的資料隨新增資料向后移動資料隨新增資料向后移動A從光標(biāo)所在列最后面的地方開始新增資料從光標(biāo)所在列最后面的地方開始新增資料插入插入i從光標(biāo)所在位置前面開始插入資料,游標(biāo)后的從光標(biāo)所在位置前面開始插入資料,游標(biāo)后的資料隨新增資料向后移動資料隨新增資料向后移動I從光標(biāo)所在列的第一個非空白字元前面開始插從光標(biāo)所在列的第一個非空白字元前面開始插入資料入資料開始開始o(jì)在光標(biāo)所在列下方新增
21、一列,并進(jìn)入插入模式在光標(biāo)所在列下方新增一列,并進(jìn)入插入模式O在光標(biāo)所在列上方新增一列,并進(jìn)入插入模式在光標(biāo)所在列上方新增一列,并進(jìn)入插入模式 vi中中3種模式的切換種模式的切換 (續(xù))(續(xù)) (2)插入模式轉(zhuǎn)為命令行模式、底行模式)插入模式轉(zhuǎn)為命令行模式、底行模式從插入模式轉(zhuǎn)為命令行模式、底行模式從插入模式轉(zhuǎn)為命令行模式、底行模式比較簡單,只需使用比較簡單,只需使用Esc鍵即可。鍵即可。 (3)命令行模式與底行模式轉(zhuǎn)換)命令行模式與底行模式轉(zhuǎn)換命令行模式與底行模式間的轉(zhuǎn)換不需要命令行模式與底行模式間的轉(zhuǎn)換不需要其他特別的命令,而只需要直接鍵入相應(yīng)模其他特別的命令,而只需要直接鍵入相應(yīng)模式中的
22、命令鍵即可。式中的命令鍵即可。1.2.2 vi (vim)的基本操作的基本操作 vi的刪除、修改與復(fù)制的刪除、修改與復(fù)制 特特 征征ARM作作 用用刪除刪除x x刪除光標(biāo)所在的字符刪除光標(biāo)所在的字符dddd刪除光標(biāo)所在的行刪除光標(biāo)所在的行s s刪除光標(biāo)所在的字符,并進(jìn)入輸入模式刪除光標(biāo)所在的字符,并進(jìn)入輸入模式S S刪除光標(biāo)所在的行,并進(jìn)入輸入模式刪除光標(biāo)所在的行,并進(jìn)入輸入模式修改修改r r 待修改字待修改字符符修改光標(biāo)所在的字符,鍵入修改光標(biāo)所在的字符,鍵入r后直接鍵入待修改后直接鍵入待修改字符字符R R進(jìn)入取代狀態(tài),可移動光標(biāo)鍵入所指位置的修改進(jìn)入取代狀態(tài),可移動光標(biāo)鍵入所指位置的修改字
23、符,該取代狀態(tài)直到按字符,該取代狀態(tài)直到按Esc才結(jié)束才結(jié)束復(fù)制復(fù)制yyyy復(fù)制光標(biāo)所在的行復(fù)制光標(biāo)所在的行nyynyy復(fù)制光標(biāo)所在的行向下復(fù)制光標(biāo)所在的行向下n行行p p將緩沖區(qū)內(nèi)的字符粘貼到光標(biāo)所在位置將緩沖區(qū)內(nèi)的字符粘貼到光標(biāo)所在位置1.2.2 vi (vim)的基本操作的基本操作 vi的光標(biāo)移動的光標(biāo)移動 指指 令令作作 用用0移動到光標(biāo)所在行的最前面移動到光標(biāo)所在行的最前面$移動到光標(biāo)所在行的最后面移動到光標(biāo)所在行的最后面Ctrld光標(biāo)向下移動半頁光標(biāo)向下移動半頁Ctrlf光標(biāo)向下移動一頁光標(biāo)向下移動一頁H光標(biāo)移動到當(dāng)前屏幕的第一行第一列光標(biāo)移動到當(dāng)前屏幕的第一行第一列M光標(biāo)移動到當(dāng)
24、前屏幕的中間行第一列光標(biāo)移動到當(dāng)前屏幕的中間行第一列L光標(biāo)移動到當(dāng)前屏幕的最后行第一列光標(biāo)移動到當(dāng)前屏幕的最后行第一列b移動到上一個字的第一個字母移動到上一個字的第一個字母w移動到下一個字的第一個字母移動到下一個字的第一個字母e移動到下一個字的最后一個字母移動到下一個字的最后一個字母移動到光標(biāo)所在行的第一個非空白字符移動到光標(biāo)所在行的第一個非空白字符n-向上移動向上移動n行行n+向下移動向下移動n行行nG移動到第移動到第n行行1.2.2 vi (vim)的基本操作的基本操作 vi的查找與替換的查找與替換 特特 征征ARM作作 用用查找查找/向下查找要查找的字符向下查找要查找的字符?向上查找要查
25、找的字符向上查找要查找的字符替換替換:0,$s/string1/string2/g0,$:替換范圍從第:替換范圍從第0行到最后行到最后一行一行s:轉(zhuǎn)入替換模式:轉(zhuǎn)入替換模式string1/string2:把所有把所有string1替換為替換為string2g:強(qiáng)制替換而不提示:強(qiáng)制替換而不提示1.2.2 vi (vim)的基本操作的基本操作 vi的文件操作指令的文件操作指令 指指 令令作作 用用:q結(jié)束編輯,退出結(jié)束編輯,退出vi:q!不保存編輯過的文檔不保存編輯過的文檔:w保存文檔,其后可加要保存的文件名保存文檔,其后可加要保存的文件名:wq保存文檔并退出保存文檔并退出:zz功能與功能與“:
26、wq”相同相同:x功能與功能與“:wq”相同相同1.2.2 vi (vim)的基本操作的基本操作1.2.3 vi (vim)的使用實(shí)例分析的使用實(shí)例分析 vi使用實(shí)例內(nèi)容使用實(shí)例內(nèi)容 (1)在)在/root目錄下建一個名為目錄下建一個名為vi的目錄。的目錄。(2)進(jìn)入)進(jìn)入vi目錄。目錄。(3)將文件)將文件/etc/inittab復(fù)制到當(dāng)前目錄復(fù)制到當(dāng)前目錄下。下。(4)使用)使用vi編輯當(dāng)前目錄下的編輯當(dāng)前目錄下的inittab。(5)將光標(biāo)移到該行。)將光標(biāo)移到該行。(6)復(fù)制該行內(nèi)容。)復(fù)制該行內(nèi)容。(7)將光標(biāo)移到最后一行行首。)將光標(biāo)移到最后一行行首。(8)粘貼復(fù)制行的內(nèi)容。)粘貼
27、復(fù)制行的內(nèi)容。(9)撤銷第)撤銷第9步的動作。步的動作。(10)將光標(biāo)移動到最后一行的行尾。)將光標(biāo)移動到最后一行的行尾。(11)粘貼復(fù)制行的內(nèi)容。)粘貼復(fù)制行的內(nèi)容。(12)光標(biāo)移到)光標(biāo)移到“si:sysinit:/etc/rc.d/rc.sysinit”。(13)刪除該行。)刪除該行。(14)存盤但不退出。)存盤但不退出。(15)將光標(biāo)移到首行。)將光標(biāo)移到首行。(16)插入模式下輸入)插入模式下輸入“Hello,this is vi world!”。(17)返回命令行模式。)返回命令行模式。(18)向下查找字符串)向下查找字符串“0:wait”。(19)再向上查找字符串)再向上查找字符
28、串“halt”。(20)強(qiáng)制退出)強(qiáng)制退出vi,不存盤。,不存盤。 vi使用實(shí)例解析使用實(shí)例解析(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!(底行模式
29、)(底行模式)1.2.3 vi (vim)的使用實(shí)例分析的使用實(shí)例分析1.3嵌入式嵌入式Linux編譯器編譯器GCC的使用的使用 1.3.1 GCC概述概述 1.3.2 GCC編譯流程分析編譯流程分析 1.3.3 GCC警告提示警告提示 1.3.4 GCC使用庫函數(shù)使用庫函數(shù) 1.3.5 GCC代碼優(yōu)化代碼優(yōu)化1.3.1 GCC概述概述 GCC除了能支持除了能支持C語言外,語言外,目前還支持目前還支持Ada語言、語言、C+語言、語言、Java語言、語言、Objective C語言、語言、PASCAL語言、語言、COBOL語言,以及支語言,以及支持函數(shù)式編程和邏輯編程的持函數(shù)式編程和邏輯編程的M
30、ercury語言等語言等 GCC的編譯流程分為了的編譯流程分為了4個個步驟,分別為步驟,分別為 預(yù)處理(預(yù)處理(Pre-Processing) 編譯(編譯(Compiling) 匯編(匯編(Assembling) 鏈接(鏈接(Linking)后綴名后綴名所對應(yīng)的語言所對應(yīng)的語言編編 譯譯 流流 程程.cC原始程序原始程序預(yù)處理、編譯、預(yù)處理、編譯、匯編匯編.C .cc.cxxC+原始程序原始程序預(yù)處理、編譯、預(yù)處理、編譯、匯編匯編.mObjective-C原始原始程序程序預(yù)處理、編譯、預(yù)處理、編譯、匯編匯編.i已經(jīng)過預(yù)處理的已經(jīng)過預(yù)處理的C原始程序原始程序編譯、匯編編譯、匯編.ii已經(jīng)過預(yù)處理
31、的已經(jīng)過預(yù)處理的C+原始程序原始程序編譯、匯編編譯、匯編.s .S匯編語言原始程序匯編語言原始程序匯編匯編.h預(yù)處理文件(頭文預(yù)處理文件(頭文件)件)(不常出現(xiàn)在指(不常出現(xiàn)在指令行)令行).o目標(biāo)文件目標(biāo)文件鏈接鏈接.a/.so編譯后的庫文件編譯后的庫文件鏈接鏈接1.3.2 GCC編譯流程分析編譯流程分析 GCC使用的基本語法為:使用的基本語法為: gcc option | filename 預(yù)處理階段預(yù)處理階段 gcc E o 目標(biāo)文件目標(biāo)文件 編譯文件編譯文件 選項(xiàng)選項(xiàng)“-E”可以使編譯器在預(yù)處理結(jié)束時就停止編譯可以使編譯器在預(yù)處理結(jié)束時就停止編譯 選項(xiàng)選項(xiàng)“-o”是指定是指定GCC輸出
32、的結(jié)果。輸出的結(jié)果。 編譯階段編譯階段 gcc S o hello.s hello.i 選項(xiàng)選項(xiàng)“-S”能使編譯器在進(jìn)行完編譯之后就停止能使編譯器在進(jìn)行完編譯之后就停止 匯編階段匯編階段 gcc c hello.s o hello.o 選項(xiàng)選項(xiàng)“-c”把編譯階段生成的把編譯階段生成的“.s”文件生成目標(biāo)文文件生成目標(biāo)文件件 “.o” 鏈接階段鏈接階段 gcc hello.o o hello 可以生成可執(zhí)行文件可以生成可執(zhí)行文件 1.3.2 GCC編譯流程分析編譯流程分析1.3.3 GCC警告提示警告提示 Wall類警告提示類警告提示 選選 項(xiàng)項(xiàng)作作 用用-Wall打開所有類型語法警告,建議讀者
33、養(yǎng)成使用該選項(xiàng)的習(xí)慣打開所有類型語法警告,建議讀者養(yǎng)成使用該選項(xiàng)的習(xí)慣-Wchar-subscripts如果數(shù)組使用如果數(shù)組使用char類型變量做為下標(biāo)值的話,則發(fā)出警告。類型變量做為下標(biāo)值的話,則發(fā)出警告。因?yàn)樵谀承┢脚_上可能默認(rèn)為因?yàn)樵谀承┢脚_上可能默認(rèn)為signed char,一旦溢出,一旦溢出,就可能導(dǎo)致某些意外的結(jié)果就可能導(dǎo)致某些意外的結(jié)果-Wcomment當(dāng)當(dāng)/*出現(xiàn)在出現(xiàn)在 /* . */注釋中,或者注釋中,或者出現(xiàn)在出現(xiàn)在/ .注釋結(jié)尾注釋結(jié)尾處時,使用處時,使用-Wcomment會給出警告,它很可能會影響會給出警告,它很可能會影響程序的運(yùn)行結(jié)果程序的運(yùn)行結(jié)果-Wformat檢
34、查檢查printf和和scanf等格式化輸入輸出函數(shù)的格式字符串與等格式化輸入輸出函數(shù)的格式字符串與參數(shù)類型的匹配情況,如果發(fā)現(xiàn)不匹配則發(fā)出警告。某參數(shù)類型的匹配情況,如果發(fā)現(xiàn)不匹配則發(fā)出警告。某些時候格式字符串與參數(shù)類型的不匹配會導(dǎo)致程序運(yùn)行些時候格式字符串與參數(shù)類型的不匹配會導(dǎo)致程序運(yùn)行錯誤,所以這是個很有用的警告選項(xiàng)錯誤,所以這是個很有用的警告選項(xiàng)-Wimplicit該警告選項(xiàng)實(shí)際上是該警告選項(xiàng)實(shí)際上是-Wimplicit-int和和-Wimplicit-function-declaration兩個警告選項(xiàng)的集合。前者在聲兩個警告選項(xiàng)的集合。前者在聲明函數(shù)卻未指明函數(shù)返回類型時給出警告,
35、后者則是在明函數(shù)卻未指明函數(shù)返回類型時給出警告,后者則是在函數(shù)聲明前調(diào)用該函數(shù)時給出警告函數(shù)聲明前調(diào)用該函數(shù)時給出警告1.3.3 GCC警告提示警告提示 Wall類警告提示類警告提示 選選 項(xiàng)項(xiàng)作作 用用-Wmissing-braces當(dāng)聚合類型或者數(shù)組變量的初始化表達(dá)式?jīng)]有充分用括號當(dāng)聚合類型或者數(shù)組變量的初始化表達(dá)式?jīng)]有充分用括號括起時,給出警告括起時,給出警告-Wparentheses這是一個很有用的警告選項(xiàng),它能幫助用戶從那些看起來這是一個很有用的警告選項(xiàng),它能幫助用戶從那些看起來語法正確但卻由于操作符優(yōu)先級或者代碼結(jié)構(gòu)語法正確但卻由于操作符優(yōu)先級或者代碼結(jié)構(gòu)“障眼障眼”而導(dǎo)致錯誤運(yùn)行
36、的代碼中解脫出來而導(dǎo)致錯誤運(yùn)行的代碼中解脫出來-Wsequence-point關(guān)于順序點(diǎn)(關(guān)于順序點(diǎn)(sequence point),在),在C標(biāo)準(zhǔn)中有解釋,不標(biāo)準(zhǔn)中有解釋,不過很晦澀。我們在平時編碼中盡量避免寫出與實(shí)現(xiàn)相關(guān)、過很晦澀。我們在平時編碼中盡量避免寫出與實(shí)現(xiàn)相關(guān)、受實(shí)現(xiàn)影響的代碼便是了。而受實(shí)現(xiàn)影響的代碼便是了。而-Wsequence-point選項(xiàng)選項(xiàng)恰恰可以幫我們這個忙,它可以幫我們查出這樣的代碼恰恰可以幫我們這個忙,它可以幫我們查出這樣的代碼來,并給出其警告來,并給出其警告-Wswitch這個選項(xiàng)的功能淺顯易懂,通過文字描述也可以清晰地說這個選項(xiàng)的功能淺顯易懂,通過文字描述也
37、可以清晰地說明。當(dāng)以一個枚舉類型(明。當(dāng)以一個枚舉類型(enum)作為)作為switch語句的索語句的索引時但卻沒有處理引時但卻沒有處理default情況,或者沒有處理所有枚舉情況,或者沒有處理所有枚舉類型定義范圍內(nèi)的情況時,該選項(xiàng)會給出警告類型定義范圍內(nèi)的情況時,該選項(xiàng)會給出警告1.3.3 GCC警告提示警告提示 Wall類警告提示類警告提示 選選 項(xiàng)項(xiàng)作作 用用-Wunused-function警告存在一個未使用的警告存在一個未使用的static函數(shù)的定義或者存在一個只函數(shù)的定義或者存在一個只聲明卻未定義的聲明卻未定義的static函數(shù)函數(shù)-Wunused-label用來警告存在一個使用了
38、卻未定義或者存在一個定義了卻用來警告存在一個使用了卻未定義或者存在一個定義了卻未使用的未使用的label-Wunused-variable用來警告存在一個定義了卻未使用的局部變量或者非常量用來警告存在一個定義了卻未使用的局部變量或者非常量static變量變量-Wunused-value用來警告一個顯式計算表達(dá)式的結(jié)果未被使用用來警告一個顯式計算表達(dá)式的結(jié)果未被使用-Wunused-parameter用來警告一個函數(shù)的參數(shù)在函數(shù)的實(shí)現(xiàn)中并未被用到用來警告一個函數(shù)的參數(shù)在函數(shù)的實(shí)現(xiàn)中并未被用到-Wuninitialized該警告選項(xiàng)用于檢查一個局部自動變量在使用之前是否已該警告選項(xiàng)用于檢查一個局部
39、自動變量在使用之前是否已經(jīng)初始化了或者在一個經(jīng)初始化了或者在一個longjmp調(diào)用可能修改一個調(diào)用可能修改一個non-volatile automatic variable時給出警告時給出警告非非Wall類警告提示類警告提示 (1)“-ansi” 該選項(xiàng)強(qiáng)制該選項(xiàng)強(qiáng)制GCC生成標(biāo)準(zhǔn)語法所要求的告警信息,盡管生成標(biāo)準(zhǔn)語法所要求的告警信息,盡管這還并不能保證所有沒有警告的程序都是符合這還并不能保證所有沒有警告的程序都是符合ANSI C標(biāo)標(biāo)準(zhǔn)的。準(zhǔn)的。 (2)“-pedantic” 該選項(xiàng)允許發(fā)出該選項(xiàng)允許發(fā)出ANSI C標(biāo)準(zhǔn)所列的全部警告信息,同樣標(biāo)準(zhǔn)所列的全部警告信息,同樣也不能保證所有沒有警告
40、的程序都是符合也不能保證所有沒有警告的程序都是符合ANSI C標(biāo)準(zhǔn)的。標(biāo)準(zhǔn)的。 1.3.3 GCC警告提示警告提示 Linux函數(shù)庫介紹函數(shù)庫介紹 Linux中函數(shù)庫包括兩類:靜態(tài)庫和共享庫。中函數(shù)庫包括兩類:靜態(tài)庫和共享庫。 靜態(tài)庫的代碼在編譯時就已連接到開發(fā)人員開靜態(tài)庫的代碼在編譯時就已連接到開發(fā)人員開發(fā)的應(yīng)用程序中,而共享庫是在程序開始運(yùn)行發(fā)的應(yīng)用程序中,而共享庫是在程序開始運(yùn)行時被加載。時被加載。 系統(tǒng)中可用的庫都安裝在系統(tǒng)中可用的庫都安裝在/usr/lib和和/lib目錄下。目錄下。庫文件名由前綴庫文件名由前綴lib和庫名以及后綴組成。根據(jù)和庫名以及后綴組成。根據(jù)庫的類型不同,后綴名
41、也不一樣。庫的類型不同,后綴名也不一樣。1.3.4 GCC使用庫函數(shù)使用庫函數(shù) 相關(guān)路徑選項(xiàng)相關(guān)路徑選項(xiàng) (1)“-I ” GCC使用缺省的路徑來搜索頭文件,如果想要改變搜索使用缺省的路徑來搜索頭文件,如果想要改變搜索路徑,用戶可以使用路徑,用戶可以使用“-I”選項(xiàng)。選項(xiàng)。“-I”選項(xiàng)可以在選項(xiàng)可以在頭文件的搜索路徑列表中添加頭文件的搜索路徑列表中添加目錄。這樣,目錄。這樣,GCC就會到指定的目錄去查找相應(yīng)的頭文件。就會到指定的目錄去查找相應(yīng)的頭文件。 (2)“-L ” 選項(xiàng)選項(xiàng)“-L ”的功能與的功能與“-I ”類似,其區(qū)別就在類似,其區(qū)別就在于于“-L”選項(xiàng)是用于指明庫文件的路徑。選項(xiàng)是用
42、于指明庫文件的路徑。 gcc hello_sq.c L/root/workspace/gcc/lib lsunq o hello_sq 1.3.4 GCC使用庫函數(shù)使用庫函數(shù) 使用不同類型鏈接庫使用不同類型鏈接庫 使用不同類型的鏈接庫的方法很相似,都是使用使用不同類型的鏈接庫的方法很相似,都是使用選項(xiàng)是選項(xiàng)是“-l”(注意這里是小寫的(注意這里是小寫的“L”)。該選項(xiàng))。該選項(xiàng)是用于指明具體使用的庫文件。由于在是用于指明具體使用的庫文件。由于在Linux中函中函數(shù)庫的命名規(guī)則都是以數(shù)庫的命名規(guī)則都是以“l(fā)ib”開頭的,因此,這里開頭的,因此,這里的庫文件只需填寫的庫文件只需填寫lib之后的內(nèi)容
43、即可。之后的內(nèi)容即可。 gcc -o dynamic -L /root/lq/testc/lib/dynamic.o -lmydynamic1.3.4 GCC使用庫函數(shù)使用庫函數(shù)1.3.5 GCC代碼優(yōu)化代碼優(yōu)化 GCC可以對代碼進(jìn)行優(yōu)化,它通過編譯選項(xiàng)可以對代碼進(jìn)行優(yōu)化,它通過編譯選項(xiàng)-On來控制優(yōu)化代碼的生成,其中來控制優(yōu)化代碼的生成,其中n是一個代表優(yōu)化級是一個代表優(yōu)化級別的整數(shù)。別的整數(shù)。 雖然優(yōu)化選項(xiàng)可以加快代碼的運(yùn)行速度,但對于雖然優(yōu)化選項(xiàng)可以加快代碼的運(yùn)行速度,但對于調(diào)試而言將是一個很大的挑戰(zhàn)。因?yàn)榇a在經(jīng)過調(diào)試而言將是一個很大的挑戰(zhàn)。因?yàn)榇a在經(jīng)過優(yōu)化之后,原先在源程序中聲明和
44、使用的變量很優(yōu)化之后,原先在源程序中聲明和使用的變量很可能不再使用,控制流也可能會突然跳轉(zhuǎn)到其他可能不再使用,控制流也可能會突然跳轉(zhuǎn)到其他的地方,循環(huán)語句也有可能因?yàn)檠h(huán)展開而變得的地方,循環(huán)語句也有可能因?yàn)檠h(huán)展開而變得到處都有,所有這些都將使調(diào)試工作異常艱難。到處都有,所有這些都將使調(diào)試工作異常艱難。1.4 嵌入式嵌入式Linux調(diào)試器調(diào)試器GDB的使用的使用 1.4.1 GDB使用實(shí)例使用實(shí)例 1.4.2設(shè)置設(shè)置/刪除斷點(diǎn)刪除斷點(diǎn) 1.4.3數(shù)據(jù)相關(guān)命令數(shù)據(jù)相關(guān)命令 1.4.4調(diào)試運(yùn)行環(huán)境相關(guān)命令調(diào)試運(yùn)行環(huán)境相關(guān)命令 1.4.5堆棧相關(guān)命令堆棧相關(guān)命令 1.4.1 GDB使用實(shí)例使用實(shí)例
45、 進(jìn)入進(jìn)入GDB gdb test 查看文件查看文件l 設(shè)置斷點(diǎn)設(shè)置斷點(diǎn) b 6 查看斷點(diǎn)處情況查看斷點(diǎn)處情況 info b 運(yùn)行代碼運(yùn)行代碼 r 查看變量值查看變量值 p n / p i 觀察變量觀察變量 watch n 單步運(yùn)行單步運(yùn)行 n 程序繼續(xù)運(yùn)行程序繼續(xù)運(yùn)行 c 退出退出GDB q1.4.2設(shè)置設(shè)置/刪除斷點(diǎn)刪除斷點(diǎn)命命 令令 格格 式式作作 用用break+設(shè)置斷點(diǎn)設(shè)置斷點(diǎn)的行號的行號用于在程序中對應(yīng)行設(shè)置斷點(diǎn)用于在程序中對應(yīng)行設(shè)置斷點(diǎn)tbreak+行號或函數(shù)名行號或函數(shù)名設(shè)置臨時斷點(diǎn),到達(dá)后被自動刪除設(shè)置臨時斷點(diǎn),到達(dá)后被自動刪除break+filename+行號行號用于在指定
46、文件的對應(yīng)行設(shè)置斷點(diǎn)用于在指定文件的對應(yīng)行設(shè)置斷點(diǎn)break+用于在內(nèi)存某一位置處暫停用于在內(nèi)存某一位置處暫停break+行號行號+if+條件條件用于設(shè)置條件斷點(diǎn),在循環(huán)中使用非常方便用于設(shè)置條件斷點(diǎn),在循環(huán)中使用非常方便info breakpointswatchpoints查看斷點(diǎn)查看斷點(diǎn)/觀察點(diǎn)的情況觀察點(diǎn)的情況clear+要清除要清除斷點(diǎn)的行號斷點(diǎn)的行號用于清除對應(yīng)行的斷點(diǎn)用于清除對應(yīng)行的斷點(diǎn)1.4.2 設(shè)置設(shè)置/刪除斷點(diǎn)刪除斷點(diǎn)命命 令令 格格 式式作作 用用delete+要清除要清除斷點(diǎn)的編號斷點(diǎn)的編號用于清除斷點(diǎn)和自動顯示的表達(dá)式的命令。與用于清除斷點(diǎn)和自動顯示的表達(dá)式的命令。與c
47、lear的不同之處:的不同之處:clear要給出斷點(diǎn)的行號,要給出斷點(diǎn)的行號,delete要要給出斷點(diǎn)的編號。用給出斷點(diǎn)的編號。用clear命令清除斷點(diǎn)時命令清除斷點(diǎn)時GDB會會給出提示,而用給出提示,而用delete清除斷點(diǎn)時清除斷點(diǎn)時GDB不會給出不會給出任何提示任何提示disable+斷點(diǎn)編號斷點(diǎn)編號讓所設(shè)斷點(diǎn)暫時失效。如果要讓多個編號處的斷點(diǎn)讓所設(shè)斷點(diǎn)暫時失效。如果要讓多個編號處的斷點(diǎn)失效可將編號之間用空格隔開失效可將編號之間用空格隔開enable+斷點(diǎn)編號斷點(diǎn)編號與與disable相反相反awatch+變量變量設(shè)置一個觀察點(diǎn),當(dāng)變量被讀出或?qū)懭霑r程序被暫設(shè)置一個觀察點(diǎn),當(dāng)變量被讀出或
48、寫入時程序被暫停停rwatch+變量變量設(shè)置一個觀察點(diǎn),當(dāng)變量被程序讀時,程序被暫停設(shè)置一個觀察點(diǎn),當(dāng)變量被程序讀時,程序被暫停watch+變量變量同同awatch1.4.3 數(shù)據(jù)相關(guān)命令數(shù)據(jù)相關(guān)命令命命 令令 格格 式式作作 用用 display+表達(dá)式表達(dá)式該命令用于顯示表達(dá)式的值,使用了該命令后,該命令用于顯示表達(dá)式的值,使用了該命令后,每當(dāng)程序運(yùn)行到斷點(diǎn)處都會顯示表達(dá)式的值每當(dāng)程序運(yùn)行到斷點(diǎn)處都會顯示表達(dá)式的值 info display用于顯示當(dāng)前所有要顯示值的表達(dá)式的有關(guān)情用于顯示當(dāng)前所有要顯示值的表達(dá)式的有關(guān)情況況 delete+display編號編號用于刪除一個要顯示值的表達(dá)式,
49、調(diào)用這個命用于刪除一個要顯示值的表達(dá)式,調(diào)用這個命令刪除一個表達(dá)式后,被刪除的表達(dá)式將不被令刪除一個表達(dá)式后,被刪除的表達(dá)式將不被顯示顯示 disable+display編號編號使一個要顯示的表達(dá)式暫時無效使一個要顯示的表達(dá)式暫時無效 enable+display編號編號disable diplay的反操作的反操作 1.4.3 數(shù)據(jù)相關(guān)命令數(shù)據(jù)相關(guān)命令命命 令令 格格 式式作作 用用 undisplay+display編號編號用于結(jié)束某個表達(dá)式值的顯示用于結(jié)束某個表達(dá)式值的顯示 whatis+變量變量顯示某個表達(dá)式的數(shù)據(jù)類型顯示某個表達(dá)式的數(shù)據(jù)類型 print(p)+變量或表達(dá)式變量或表達(dá)式用
50、于打印變量或表達(dá)式的值用于打印變量或表達(dá)式的值 set+變量變量變量值變量值改變程序中一個變量的值改變程序中一個變量的值 1.4.4調(diào)試運(yùn)行環(huán)境相關(guān)命令調(diào)試運(yùn)行環(huán)境相關(guān)命令命命 令令 格格 式式作作 用用set args設(shè)置運(yùn)行參數(shù)設(shè)置運(yùn)行參數(shù)show args參看運(yùn)行參數(shù)參看運(yùn)行參數(shù)set width+數(shù)目數(shù)目設(shè)置設(shè)置GDB的行寬的行寬cd+工作目錄工作目錄切換工作目錄切換工作目錄run程序開始執(zhí)行程序開始執(zhí)行step(s)進(jìn)入式(會進(jìn)入到所調(diào)用的子函數(shù)中)單步執(zhí)行進(jìn)入式(會進(jìn)入到所調(diào)用的子函數(shù)中)單步執(zhí)行next(n)非進(jìn)入式(不會進(jìn)入到所調(diào)用的子函數(shù)中)單步執(zhí)行非進(jìn)入式(不會進(jìn)入到所調(diào)用的子函數(shù)中)單步執(zhí)行finish一直運(yùn)行到函數(shù)返回一直運(yùn)行到函數(shù)返回until+行數(shù)行數(shù)運(yùn)行到函數(shù)某一行運(yùn)行到函數(shù)某一行continue(c)執(zhí)行到下一個斷點(diǎn)或程序結(jié)束執(zhí)行到下一個斷點(diǎn)或程序結(jié)束return改變程序流程,直接結(jié)束當(dāng)前函數(shù),并將指定值返回改變程序流程,直接結(jié)束當(dāng)前函數(shù),并將指定值返回call+函數(shù)函數(shù)在當(dāng)前位置執(zhí)行所要運(yùn)行的函數(shù)在當(dāng)前位置執(zhí)行所要運(yùn)行的函數(shù)1.4.5堆棧相關(guān)命令堆棧相關(guān)命令命命 令令 格格 式式作作 用用backtrace或或bt用來打印棧偵指針,也可以在該命令后加上用來打印棧
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度醫(yī)院醫(yī)療廢物處理設(shè)施建設(shè)合同4篇
- 2025年度個人創(chuàng)業(yè)貸款合同示范文本8篇
- 二零二五年度美容院美容護(hù)膚品生產(chǎn)股份合作合同4篇
- 二零二五版木質(zhì)家具定制設(shè)計與生產(chǎn)加工合同3篇
- 二零二五年度電子商務(wù)平臺標(biāo)志設(shè)計及用戶體驗(yàn)合同3篇
- 二零二五年度托盤租賃與供應(yīng)鏈金融結(jié)合合同范本3篇
- 二零二五年度昌平區(qū)食堂員工激勵與績效考核合同3篇
- 2025年度汽車租賃與品牌合作推廣合同范本3篇
- 二零二五年度城市綠化工程承包合同14篇
- 2025年度線上線下聯(lián)動大型促銷活動合作合同3篇
- 邊防通行證委托書
- 《浸沒式液冷冷卻液選型要求》
- 我的消防文員職業(yè)規(guī)劃
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數(shù)字化施工組”賽項(xiàng)考試題庫
- 介紹蝴蝶蘭課件
- CSC資助出國博士聯(lián)合培養(yǎng)研修計劃英文-research-plan
- 《環(huán)境管理學(xué)》教案
- 《阻燃材料與技術(shù)》課件 第5講 阻燃塑料材料
- 2025年蛇年年度營銷日歷營銷建議【2025營銷日歷】
- (一模)寧波市2024學(xué)年第一學(xué)期高考模擬考試 數(shù)學(xué)試卷(含答案)
- 金蛇納瑞企業(yè)2025年會慶典
評論
0/150
提交評論