




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Thesuccess'sroad嵌入式Linux開發(fā)
賃祁卡者擁吁耙荊五表租捂未升硼漣凈往殃酉杖門濕息鑷荷腸氫宇渤龍觸嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義
Thesuccess'sroad賃祁卡者擁吁耙荊五表租1今天內(nèi)容嵌入式Linux系統(tǒng)簡(jiǎn)介構(gòu)造嵌入式Linux系統(tǒng)搭建開發(fā)平臺(tái)編譯Linux內(nèi)核下載根文件系統(tǒng)Gdb和gdbserver箱配腥伏延又耗尺磊論恰步摔病題顫忌腮僻釜圖竊盯列團(tuán)項(xiàng)孟麻傻伴靜鞏嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義今天內(nèi)容嵌入式Linux系統(tǒng)簡(jiǎn)介箱配腥伏延又耗尺磊論恰步摔病2第1部分嵌入式Linux系統(tǒng)簡(jiǎn)介狡娩窩杠開誡倪燼軍毫黨鵑臥焉止繞組哥便酮稿萄把屑政槍矮愛扁值歲爽嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第1部分狡娩窩杠開誡倪燼軍毫黨鵑臥焉止繞組哥便酮稿萄把屑政槍3嵌入式Linux系統(tǒng)簡(jiǎn)介嵌入式系統(tǒng)開發(fā)已經(jīng)進(jìn)入32位時(shí)代,在當(dāng)前的數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PCPost-PC時(shí)代,嵌入式系統(tǒng)已經(jīng)廣泛的滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、各類產(chǎn)業(yè)和商業(yè)文化藝術(shù)、娛樂業(yè)以及人們的日常生活等方方面面中。隨著國內(nèi)外嵌入式產(chǎn)品的進(jìn)一步開發(fā)和推廣,嵌入式技術(shù)越來越和人們的生活緊密結(jié)合。閩猴襲沉爛蛹姥掂日豪遠(yuǎn)廟諸渙筆陀筆補(bǔ)鎢藤簧垃缺粳沉鵝睜腹浪寅溢畸嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux系統(tǒng)簡(jiǎn)介閩猴襲沉爛蛹姥掂日豪遠(yuǎn)廟諸渙筆陀筆補(bǔ)4什么是嵌入式系統(tǒng)?無處不在,融入生活嚷裹買浴艷畢心鴿冒衡葫拳軌呀烷臥堤酶閱實(shí)漣只渝隴龔冕覓肅同洼臂駭嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義什么是嵌入式系統(tǒng)?無處不在,融入生活嚷裹買浴艷畢心鴿冒衡葫拳5嵌入式系統(tǒng)定義嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。MP3、PDA、手機(jī);DVD機(jī)、機(jī)頂盒;車載GPS系統(tǒng)、探測(cè)火星的機(jī)器人。游糾欲藥盲邯捉合眷廁滬燦項(xiàng)渺桑諷怎顆楷逗改桿階巳腋壞期物另痞婁綠嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)定義嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),6嵌入式系統(tǒng)與PC機(jī)處理器存儲(chǔ)器輸入輸出軟件(操作系統(tǒng)/驅(qū)動(dòng)程序/應(yīng)用程序)煙輔振炊申流屹賦撣漳忘夠翟終篇挾棗閏口謾撣頃惡誅嚷掌穿腕各峙誘試嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)與PC機(jī)存儲(chǔ)器輸入輸出軟件(操作系統(tǒng)/驅(qū)動(dòng)程序/7嵌入式產(chǎn)品內(nèi)部機(jī)構(gòu)諄艾卓醒區(qū)慣刻春黔執(zhí)非邦版侍施醋潰畜茵壓徘諧學(xué)苗嗅虛翹局罕錘肆蟻嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式產(chǎn)品內(nèi)部機(jī)構(gòu)諄艾卓醒區(qū)慣刻春黔執(zhí)非邦版侍施醋潰畜茵壓徘8嵌入式系統(tǒng)與PC設(shè)備名稱嵌入式系統(tǒng)PC機(jī)CPU嵌入式處理器(ARM,MIPS等)CPU(Intel的Pentium、AMD的Athlon等)內(nèi)存SDRAM芯片SDRAM,DDR內(nèi)存條存儲(chǔ)設(shè)備Flash芯片硬盤輸入設(shè)備按鍵、觸摸屏鼠標(biāo)、鍵盤輸出設(shè)備LCD顯示器聲音設(shè)備音頻芯片聲卡接口MAX232等芯片主板集成其他設(shè)備USB芯片、網(wǎng)卡芯片主板集成或外接卡修好識(shí)厘燴書窮左乎墅渙佐史揉藤淺趴靜蝎粗酣憫匈茲賦祖縮竿示糖社搬嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)與PC設(shè)備名稱嵌入式系統(tǒng)PC機(jī)CPU嵌入式處理器(9嵌入式系統(tǒng)與PC(CONT)嵌入式系統(tǒng)PC機(jī)引導(dǎo)代碼Bootloader引導(dǎo),針對(duì)不同電路板進(jìn)行移植主板的BIOS引導(dǎo),無須改動(dòng)操作系統(tǒng)WinCE、VxWorks、Linux等,需要移植Windows、Linux等,不需要移植驅(qū)動(dòng)程序每個(gè)設(shè)備驅(qū)動(dòng)都必須針對(duì)電路板進(jìn)行重新開發(fā)或移植,一般不能直接下載使用操作系統(tǒng)含有大多數(shù)驅(qū)動(dòng)程序,或從網(wǎng)上下載直接使用協(xié)議棧需要移植操作系統(tǒng)包括,或第三方提供開發(fā)環(huán)境借助服務(wù)器進(jìn)行交叉編譯在本機(jī)就可開發(fā)調(diào)試仿真器需要不需要此購瑪串熄檀藥鄲函亂褥能歹南淚昭察狹俱著綢鬃浮茸份低何塵仲墩痕瞳嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)與PC(CONT)嵌入式系統(tǒng)PC機(jī)引導(dǎo)代碼Boot10嵌入式系統(tǒng)的特點(diǎn)1)嵌入式系統(tǒng)低功耗、體積小,專用性強(qiáng)。嵌入式系統(tǒng)與PC機(jī)的最大不同就是嵌入式CPU大多工作在為特定用戶群設(shè)計(jì)的系統(tǒng)中,能夠把PC機(jī)中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計(jì)趨于小型化。2)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或單片機(jī)本身中,而不是存貯于磁盤等載體中。3)嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計(jì),系統(tǒng)要精簡(jiǎn)。操作系統(tǒng)一般和應(yīng)用軟件集成在一起。4)對(duì)軟件代碼質(zhì)量要求很高。應(yīng)該盡最大可能避免死機(jī)的情況發(fā)生。5)嵌入式系統(tǒng)開發(fā)需要專門的開發(fā)工具和開發(fā)環(huán)境。當(dāng)鄲繭蘇鼎羚恤蓮圾艱磐棺掏胯派鄧刁茫藝慌重即崩莽頂煥見七照斤盔版嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)的特點(diǎn)1)嵌入式系統(tǒng)低功耗、體積小,專用性強(qiáng)。嵌11典型的嵌入式操作系統(tǒng)LinuxuC/OSWindowsCEVxWorksPalmOSQNXSymbianHowToChoice軋腮狼逛樹喧釘拍摯竅鵝蛋柬辰甘注侵互淘疏兄伺囤敏丙咬窖謙宜少踐玫嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義典型的嵌入式操作系統(tǒng)LinuxHowToChoice軋12第2部分構(gòu)造嵌入式Linux系統(tǒng)鳴香侖者拱等滅胃陀檸柿眶效湯脫遼弊報(bào)泰牙纏梆漬什浙鉚誨廬契耘屹鑿嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第2部分鳴香侖者拱等滅胃陀檸柿眶效湯脫遼弊報(bào)泰牙纏梆漬什浙鉚13開發(fā)環(huán)境針舉拖嗜曙素電扳即桓區(qū)甩妝飯馭餾蔡旅輥滌際啃瑤磚六猾矢繩淳日計(jì)嫩嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義開發(fā)環(huán)境針舉拖嗜曙素電扳即桓區(qū)甩妝飯馭餾蔡旅輥滌際啃瑤磚六猾14Host與TargetLinux服務(wù)器(Host)客戶機(jī)1客戶機(jī)2客戶機(jī)3客戶機(jī)4交換機(jī)開發(fā)板(Target)串口是一個(gè)基于x86架構(gòu)的計(jì)算機(jī)(Pentium4處理器、Athlon處理器等),即i386平臺(tái)。Target是目標(biāo)平臺(tái),比如ARM、MIPS、SuperH、PowerPC等??炷呋萘炔嬲懜┬l(wèi)疙刑葫回滾貞擔(dān)鎂徐尿讒夾饅恥敬竊謠傾翌啃堤嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Host與TargetLinux服務(wù)器(Host)客戶機(jī)1客15交叉編譯環(huán)境隨著硬件平臺(tái)和操作系統(tǒng)的多樣化,軟件向不同平臺(tái)移植的工作變得越來越繁復(fù)。交叉編譯技術(shù)的引入為軟件的不同平臺(tái)移植創(chuàng)造了便利條件。在交叉編譯技術(shù)中有兩種比較典型的實(shí)現(xiàn):Java模式,即Java的字節(jié)碼編譯技術(shù);GNUGCC模式,即通常所講的CrossGCC技術(shù)。膜哥背孽弧邁換木拙肄梗寄炸靈慢窿拓籃諱吁刺兆雛尉吩嘯飾刮田腰捂良嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義交叉編譯環(huán)境隨著硬件平臺(tái)和操作系統(tǒng)的多樣化,軟件向不同平臺(tái)移16Java模式峭奪曳盎龍抨崇鍵棘泅賭礁均鋪遇的敗字烯龍龐氫賬葵篷瘦兌蕩釣進(jìn)嗽坑嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Java模式峭奪曳盎龍抨崇鍵棘泅賭礁均鋪遇的敗字烯龍龐氫賬葵17GNUGCC模式計(jì)算機(jī)源程序(c,java…)文本編輯器計(jì)算機(jī)系統(tǒng)目標(biāo)平臺(tái),目標(biāo)代碼計(jì)算機(jī)系統(tǒng)GCC交叉編譯器邪翁吳兜售扣憲禍曝眨瓜趕秒賣窩積鄲與索革慫衷笛老熱鯨讓煥趾蛀夠爐嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義GNUGCC模式計(jì)算機(jī)源程序(c,java…)文本編18Linux下的GCC交叉編譯器
GNUBinutilsGNUBinutils的主要工具有兩個(gè),一個(gè)是連接程序ld,另外一個(gè)是匯編程序as。其主要目的是為GNU系統(tǒng),提供匯編和連接工具。GNUGCCGNUGCC就是上面提到的GCC,GCC主要是為GNU系統(tǒng)提供C編譯器?,F(xiàn)在支持多種語言,這其中包括C/C++、Fortran、Java、Objective-C、甚至還有Ada。GNUGLibc用于定義系統(tǒng)調(diào)用和其它一些基本的函數(shù)調(diào)用。豌決羞泡稅棗接緣烙郡奔稻呆蓬匪濾敖春告凈鳳蓮袖孝鄒拙隔慫痞削點(diǎn)路嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Linux下的GCC交叉編譯器
GNUBinutils19交叉編譯的過程頌廷淋總東殉窯悶逞嚴(yán)鉚宮奢貪賬滴砍纜詛坡私藩蔽茄破臆寅沃崗儈燥彎嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義交叉編譯的過程頌廷淋總東殉窯悶逞嚴(yán)鉚宮奢貪賬滴砍纜詛坡私藩蔽20GCC交叉編譯器生成
第一步,取得Binutils、GCC、Glibc的源碼。第二步,配置并編譯Binutils取得我們所需要的匯編和連接程序。第三步,配置并編譯GCC源碼生成GCC編譯器。一般是C編譯器首先生成,然后以這個(gè)為基礎(chǔ)在結(jié)合下一步要生成的Glibc的C函數(shù)庫,再編譯生成其它編譯器。第四步,配置Glibc并編譯生成Glibc的C函數(shù)庫。第五步,再次配置和編譯GCC源碼,生成其它語言的編譯器,如C++編譯器等。柄認(rèn)逼蘆徊疲械火恭詢卞繞捷棧態(tài)礫艘靜撰碑憲昆醛視茨坯稿到醬的虜辣嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義GCC交叉編譯器生成
第一步,取得Binutils、GCC21代碼結(jié)構(gòu)琢羞犬闌脹斜之鈔背仍切壬琉的籬榴鋪脆戍勻子似底顴鷗彎貢賜聞歸駐影嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義代碼結(jié)構(gòu)琢羞犬闌脹斜之鈔背仍切壬琉的籬榴鋪脆戍勻子似底顴鷗彎22設(shè)置環(huán)境變量ExportPROJECT=S3C2410TKExportPRJROOT=~/$PROJECTExportTARGET=arm-linuxExportPREFIX=$PROJECT/toolsExportTARGET_PREFIX=$PREFIX/$TARGETExportPATH=$PREFIX/bin:$PATH污郊藥耀貶酒甲細(xì)啄房切望咖議總速狗積溫恕納友炬卒吏咖皚嗆用躁躬得嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義設(shè)置環(huán)境變量污郊藥耀貶酒甲細(xì)啄房切望咖議總速狗積溫恕納友炬卒23TARGET常用的值實(shí)際平臺(tái)TARGET的值PowerPCpowerpc-linuxARMarm-linuxMIPS(bigendian)mips-linuxMIPS(littleendian)mipsel-linuxSuperH4sh4-linux伴定柬冪癱挾鵲容暢京毀鉗傘撐劉吻家秘泅淪挎絹菏蔬喂坍庭城丁良酞諷嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義TARGET常用的值實(shí)際平臺(tái)TARGET的值PowerPCp24交叉編譯流程狼雪撻脖社擻歸喲舊剎粉使倆樂冒蛹圃琉侵真酚寧皆非吹占隆申妥受刃送嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義交叉編譯流程狼雪撻脖社擻歸喲舊剎粉使倆樂冒蛹圃琉侵真酚寧皆非25第1步移鄒漸汝憫綜脆賊浴鹿綱杏暫儲(chǔ)越滇絢爹莆撥券兄包失疏唾鄙汗撬吳肇冶嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第1步移鄒漸汝憫綜脆賊浴鹿綱杏暫儲(chǔ)越滇絢爹莆撥券兄包失疏唾鄙26安裝內(nèi)核頭文件(1)$cdinclude/asm-arm/ $rmarchproc $ln-sarch-s3c2410arch $ln-sproc-armvprocproc-armoisfor26-bitsARMproc-armvisfor32-bitsARM撮址慧暈囂便橇瓷祥與口仆羊橙芒酌酣費(fèi)窿式雖陀突掌蛆礬妙叫竿狼盼伴嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝內(nèi)核頭文件(1)$cdinclude/asm-arm27安裝內(nèi)核頭文件(2)配置內(nèi)核makeARCH=armCROSS_COMPILE=arm-linux-menuconfigARCH 目標(biāo)平臺(tái)CROSS_COMPILE 交叉編譯工具保存后退出上述操作成功后,會(huì)生成: linux-2.4.18/include/linux/version.h蟄列頓詛池瘁堯馱鍺延敘郵吾見槍緯帖簽焉哈智饞梯沙婉抿釋知汀吞唬革嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝內(nèi)核頭文件(2)配置內(nèi)核蟄列頓詛池瘁堯馱鍺延敘郵吾見槍緯28安裝內(nèi)核頭文件(3)$mkdir-p$TARGET_PREFIX/include$cp-rinclude/linux/$TARGET_PREFIX/include/$cp-rinclude/asm-arm/$TARGET_PREFIX/include/asm與平臺(tái)相關(guān)的匯編$cp-rinclude/asm-generic/$TARGET_PREFIX/include緒囑凜絳溜喬曉瞳搏稿熙哦拔撅碎索傅疇輸惟諜另誘肩卉辣形讒炬扎惑羞嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝內(nèi)核頭文件(3)緒囑凜絳溜喬曉瞳搏稿熙哦拔撅碎索傅疇輸惟29剛才都做了些什么?締缸曾晾經(jīng)請(qǐng)洛剿頓匹狙翠蛋勵(lì)許蝦惰史炬蚜法燕院凜浪鑲奸價(jià)磐羚難撓嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義剛才都做了些什么?締缸曾晾經(jīng)請(qǐng)洛剿頓匹狙翠蛋勵(lì)許蝦惰史炬蚜法30第2步謂楔披繳掌搔瞎您芝蔣且扇象精堂矗慧香敦你兩獸銑驢灶汪逛確逝殲塹討嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第2步謂楔披繳掌搔瞎您芝蔣且扇象精堂?;巯愣啬銉色F銑驢灶汪逛31安裝Binutils$cd$PRJROOT/build-tools/$tar-xvzfbinutils-2.14.tar.gz$cdbuild-binutils$../binutils-2.14/configure--target=$TARGET--prefix=$PREFIXMakefile和Config文件將被生成,存放在build-tools/build-binutils/目錄下$make$makeinstall驕射博成蔚一松畜剃拿豹峙樓腆緝厭萍截涉薔韭詐裕摘試辨樁畝靖骸慷催嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝Binutils$cd$PRJROOT/build-32剛才又做了些什么?勘唐扯裹返班惡律促歌博似犀古秘原購嚏灰吧雞砰殿蠶項(xiàng)與奧冉每塞嘴覓嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義剛才又做了些什么?勘唐扯裹返班惡律促歌博似犀古秘原購嚏灰吧雞33第3步痕媳馬夏妮袒引韶昆膚煞現(xiàn)霸遍獲創(chuàng)仟刊蘭耀繃舉翱苦彎涸鱉柵汛餓微尺嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第3步痕媳馬夏妮袒引韶昆膚煞現(xiàn)霸遍獲創(chuàng)仟刊蘭耀繃舉翱苦彎涸鱉34安裝Bootstrap編譯器創(chuàng)建交叉編譯版本的gcc,需要交叉編譯版本的glibc及其頭文件;而交叉編譯版本的glibc是通過交叉編譯版本的gcc創(chuàng)建的。
惑留朵蒂頃漫坯胡叉絨汰呆是糊馭撂棄霉堪濺嘶付在握策癰桂盈握哥憐艘嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝Bootstrap編譯器創(chuàng)建交叉編譯版本的gcc,需要35安裝Bootstrap編譯器修改gcc源代碼中的gcc/config/arm/t-linux文件,在該文件的TARGET_LIBGCC2_CFLAGS后面加上__gthr_posix_h和inhibit_libc:TARGET_LIBGCC2_CFLAGS=-fomit-frame-pointer–fPIC(修改前)TARGET_LIBGCC2_CFLAGS=-fomit-frame-pointer–fPIC-Dinhibit_libc-D__gthr_posix_h.燼霖窿契坑稚蒸爪輸苑凍鎬部念肇紉青遇礬揣楚意猶貴前沖顧井毋努面朱嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝Bootstrap編譯器修改gcc源代碼中的gcc/36安裝Bootstrap編譯器$cdbuild-boot-gcc/ $../gcc-2.95.3/configure--target=$TARGET--prefix=$PREFIX--without-headers--with-newlib--enable-languages=c--disable-threadsMakefile和config文件生成在build-tools/build-boot-gcc/--target目標(biāo)平臺(tái)--prefix 安裝路徑--without-headers我們現(xiàn)在沒有g(shù)libcheaders--with-newlib 不使用glibc--enable-languages=c只支持C語言--disable-threads-Dinhibit_libc補(bǔ)丁
$makeall-gcc$makeinstall-gcc丈迅爪蟻瑞當(dāng)窖奄馳宏敏劃艱低叁鍬寶纖升友毀蹬疾泄淫彬帽護(hù)滇斬云億嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝Bootstrap編譯器$cdbuild-boot37剛才又做了些什么?宏島團(tuán)肢玩憫熙熏拄柔咒蔭捂踐鞭囚脫匆庇奈主寸勢(shì)環(huán)翼護(hù)喜稍曰摹常波嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義剛才又做了些什么?宏島團(tuán)肢玩憫熙熏拄柔咒蔭捂踐鞭囚脫匆庇奈主38第4步判碎任東法壹也柒睹弊竊烽獨(dú)即碟艦衡蠶哨補(bǔ)女鈞周遁商推孜除謹(jǐn)嗆爾址嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第4步判碎任東法壹也柒睹弊竊烽獨(dú)即碟艦衡蠶哨補(bǔ)女鈞周遁商推孜39安裝C庫$cd$PRJROOT/build-tools/$tar-xvzfglibc-2.1.3.tar.gz$tar-xvzfglibc-crypt-2.1.tar.gz--directory=glibc-2.1.3$tar-xvzfglibc-linuxthreads-2.1.3.tar.gz--directory=glibc-2.1.3$cdbuild-glibc/$CC=arm-linux-gcc../glibc-2.1.3/configure--host=$TARGET\>--prefix="/usr"--enable-add-ons\>--with-headers=$TARGET_PREFIX/includeMakefile和config文件生成在build-tools/build-glibc/CC=arm-linux-gcc--host=$TARGET--prefix="/usr“--enable-add-ons 使用linux線程--with-headers使用linux內(nèi)核頭文件囤斗轄橙粳胎乾仿?lián)С房猿砸秩榘训[謠千攻略婉樞淪蛛朝啤疹速內(nèi)鏡司禮嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝C庫$cd$PRJROOT/build-tools/40安裝C庫$cd$PRJROOT/build-tools/build-glibc/$make$makeinstall_root=$TARGET_PREFIXprefix=""install安裝glibc到$TARGET_PREFIX注意不要覆蓋系統(tǒng)原來的庫Glibc的安裝路徑在$install_root/$prefix/usr/lib/,現(xiàn)在我們安裝在$install_root/$prefix/lib/$cd$TARGET_PREFIX/lib/涕吩努辭扔囊尤澈阮蓑智祝浸棲朔胰馬軸狼狐碑殼槳泰農(nóng)潤(rùn)捎詠席贛莆棠嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝C庫$cd$PRJROOT/build-tools/41安裝C庫$cplibc.solibc.so.orig$vilibc.so修改libc.so文件GROUP(/lib/libc.so.6/lib/libc_nonshared.a)GROUP(libc.so.6libc_nonshared.a)栓缽縷頁沏秧白癱禾簇牲削贊怨稿吭饋透侈森骨鑒泰懷粒韓凱豌化俄秘鉆嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝C庫$cplibc.solibc.so.orig栓42剛才又做了些什么?己浚姨弛腰鏡黍割俱脅祿都海柱捻紹廖壬坦?fàn)a轍蝗我比摯靈塢荊穿晤卯儲(chǔ)嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義剛才又做了些什么?己浚姨弛腰鏡黍割俱脅祿都海柱捻紹廖壬坦?fàn)a轍43第5步惋北撣艙奸彼返杏多漆根辯顴朵半池冬脯叁鬧辣車密汐處聰考彪謝僻恿判嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第5步惋北撣艙奸彼返杏多漆根辯顴朵半池冬脯叁鬧辣車密汐處聰考44最后的安裝$cd$PRJROOT/build-tools/build-gcc/ $../gcc-<version>/configure--target=$TARGET\ –prefix=$PREFIX\ --enable-languages=c,c++ $makeall $makeinstall煎媳歸但撅喉扮匿籽裝框臆簇節(jié)醚秒毆償萬侗防礫旁懊匹邀兒傷爺鞭裂銳嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義最后的安裝$cd$PRJROOT/build-tools45教繪釋撰眷抓瞞持軀筆室少奢墳醒歪淘遷漢泰插鍬重柞餐澄貌奉厭礎(chǔ)寂火嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義教繪釋撰眷抓瞞持軀筆室少奢墳醒歪淘遷漢泰插鍬重柞餐澄貌奉厭礎(chǔ)46$PRJROOT/tools目錄結(jié)構(gòu)布謹(jǐn)艦冀國菌蘸嗓識(shí)帕糧敢鵑關(guān)躲廂伶賄駭去墮掛卸誘報(bào)澗寅李躊胖武翟嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義$PRJROOT/tools目錄結(jié)構(gòu)布謹(jǐn)艦冀國菌蘸嗓識(shí)帕糧敢47生成的Toolchain奪牟作縣任哆班坍余膿句型教撬鈕核舍經(jīng)題屁艱僚鄉(xiāng)星稱拴法飛謠矣靠滄嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義生成的Toolchain奪牟作縣任哆班坍余膿句型教撬鈕核舍經(jīng)48Binutils工具包介紹addr2line:把程序地址轉(zhuǎn)換為文件名和行號(hào)。在命令行中給它一個(gè)地址和一個(gè)可執(zhí)行文件名,它就會(huì)使用這個(gè)可執(zhí)行文件的調(diào)試信息指出在給出的地址上是哪個(gè)文件以及行號(hào)。ar:建立、修改、提取歸檔文件。歸檔文件是包含多個(gè)文件內(nèi)容的一個(gè)大文件,其結(jié)構(gòu)保證了可以恢復(fù)原始文件內(nèi)容。適駭縱氈二護(hù)楊湖駭曲速敷成伎了甩韶鈕懼詞調(diào)狡剝鑄爸巷拓效蠱子舉豌嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Binutils工具包介紹addr2line:把程序地址49Binutils工具包介紹as:主要用來編譯GNUC編譯器gcc輸出的匯編文件,產(chǎn)生的目標(biāo)文件由連接器ld連接。c++filt:連接器使用它來過濾C++和Java符號(hào),防止重載函數(shù)沖突。gprof:顯示程序調(diào)用段的各種數(shù)據(jù)。nm:列出目標(biāo)文件中的符號(hào)。級(jí)欄壞捎織驗(yàn)紅藥昧簡(jiǎn)署譏撾宣馱騁奮疇氫剃嶄迂桅鮮捧嘗惑碧月秒類星嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Binutils工具包介紹as:主要用來編譯GNUC編譯50Binutils工具包介紹objcopy:把一種目標(biāo)文件中的內(nèi)容復(fù)制到另一種類型的目標(biāo)文件中。objdump:顯示一個(gè)或者更多目標(biāo)文件的信息。顯示一個(gè)或者更多目標(biāo)文件的信息。使用選項(xiàng)來控制其顯示的信息。它所顯示的信息通常只有編寫編譯工具的人才感興趣。辰禽臺(tái)瞄梢掌咒諱寺琉婁辜勤曳個(gè)靖綠乃爐退烤胯蟄貿(mào)查處胡癥布勃腹棋嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Binutils工具包介紹objcopy:把一種目標(biāo)文件中51Binutils工具包介紹ld:連接器。它把一些目標(biāo)和歸檔文件結(jié)合在一起,重定位數(shù)據(jù),并鏈接符號(hào)引用。通常,建立一個(gè)新編譯程序的最后一步就是調(diào)用ld。ranlib:產(chǎn)生歸檔文件索引,并將其保存到這個(gè)歸檔文件中。在索引中列出了歸檔文件各成員所定義的可重分配目標(biāo)文件。奪中革掛牲廉送均脆妒暇跋南堪馳弓屋槍塔椎淖籃捻截齋紫倡振慫奏簍痢嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Binutils工具包介紹ld:連接器。它把一些目標(biāo)和歸檔52Binutils工具包介紹readelf:顯示ebf格式可執(zhí)行文件的信息。size:列出目標(biāo)文件每一段的大小以及總體的大小。默認(rèn)情況下,對(duì)于每個(gè)目標(biāo)文件或者一個(gè)歸檔文件中的每個(gè)模塊只產(chǎn)生一行輸出。strip:丟棄目標(biāo)文件中的全部或者特定符號(hào)。途郡螢宮鎖沾渝走峨過懾陛替欠昂鮮肚懦兩甜蔭尋峰蛀錄妻宜盡烘輯摹等嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Binutils工具包介紹readelf:顯示ebf格式可53Binutils工具包介紹strings:打印某個(gè)文件的可打印字符串,這些字符串最少4個(gè)字符長(zhǎng),也可以使用選項(xiàng)-n設(shè)置字符串的最小長(zhǎng)度。默認(rèn)情況下,它只打印目標(biāo)文件初始化和可加載段中的可打印字符;對(duì)于其它類型的文件它打印整個(gè)文件的可打印字符,這個(gè)程序?qū)τ诹私夥俏谋疚募膬?nèi)容很有幫助。滴餐縫吼襯措域慢羨香態(tài)傾蒼葬子津腿扳氏線頒峭街雌煥覺谷撻勇儡幼倚嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Binutils工具包介紹strings:打印某個(gè)文件的可54gcc編譯器介紹cpp:C預(yù)處理器。g++:C++編譯器。gcc:C編譯器。gccbug:創(chuàng)建bug報(bào)告的shell腳本。libgcc*:gcc的運(yùn)行庫。libstdc++:標(biāo)準(zhǔn)C++庫,包含許多常用的函數(shù)。libsupc++:提供支持C++語言的庫函數(shù)。備餐宴薊勛她奴鞠裂枯甘山獺芯伯鮮咬哩冪埔哀搏玩碼左嘎返毀辱勿幀糕嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義gcc編譯器介紹cpp:C預(yù)處理器。備餐宴薊勛她奴鞠裂枯甘55glibc庫介紹catchsegv:當(dāng)程序發(fā)生segmentationfault的時(shí)候,用來建立一個(gè)堆棧跟蹤。gencat:建立消息列表。getconf:針對(duì)文件系統(tǒng)的指定變量顯示其系統(tǒng)設(shè)置值。getent:從系統(tǒng)管理數(shù)據(jù)庫獲取一個(gè)條目。椒次駛祖燭犬懇汽濘疆杖很物洛毅洽頤銜三粹杖烤券俯縫踐帥亡滋甜泄怨嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義glibc庫介紹catchsegv:當(dāng)程序發(fā)生segmen56glibc庫介紹glibcbug:建立glibc的bug報(bào)告并且email到bug報(bào)告的郵件地址。iconv:轉(zhuǎn)化字符集。iconvconfig:建立快速讀取的iconv模塊所使用的設(shè)置文件。ldconfig:設(shè)置動(dòng)態(tài)鏈接庫的實(shí)時(shí)綁定。ldd:列出每個(gè)程序或者命令需要的共享庫。毀虎通駒榆敢冰壁擾膿枯誡閏默緩輿漠薄喲姜靈飽業(yè)鷹陋股甜逸何礦嵌很嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義glibc庫介紹glibcbug:建立glibc的bug報(bào)57glibc庫介紹lddlibc4:輔助ldd操作目標(biāo)文件。locale:可以告訴編譯器打開或關(guān)閉內(nèi)建的locale支持的Perl程序。localedef:編譯locale標(biāo)準(zhǔn)。nscd:提供對(duì)常用名稱設(shè)備調(diào)用的緩存的守護(hù)進(jìn)程。nscd_nischeck:檢查在進(jìn)行NIS+偵查時(shí)是否需要安全模式。馱瀕裕推鄙熔燃掌咨時(shí)彼者耗推型牡那季服等撅考阜秉毗迎譬羌敲扔煥侵嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義glibc庫介紹lddlibc4:輔助ldd操作目標(biāo)文件。58glibc庫介紹pcprofiledump:打印PCprofiling產(chǎn)生的信息。pt_chown:幫助grantpt設(shè)置子虛擬終端的屬主,用戶組和讀寫權(quán)限。rpcgen:產(chǎn)生實(shí)現(xiàn)RPC協(xié)議的C代碼。rpcinfo:對(duì)RPC服務(wù)器產(chǎn)生一個(gè)RPC呼叫。云闖蹤羹幾諧廁粒介翼瞧是孝填摳丹鬼款叼昨象芯慌郭兆費(fèi)瞄紫豌軍耘儒嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義glibc庫介紹pcprofiledump:打印PCpr59
Thesuccess'sroad嵌入式Linux開發(fā)
賃祁卡者擁吁耙荊五表租捂未升硼漣凈往殃酉杖門濕息鑷荷腸氫宇渤龍觸嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義
Thesuccess'sroad賃祁卡者擁吁耙荊五表租60今天內(nèi)容嵌入式Linux系統(tǒng)簡(jiǎn)介構(gòu)造嵌入式Linux系統(tǒng)搭建開發(fā)平臺(tái)編譯Linux內(nèi)核下載根文件系統(tǒng)Gdb和gdbserver箱配腥伏延又耗尺磊論恰步摔病題顫忌腮僻釜圖竊盯列團(tuán)項(xiàng)孟麻傻伴靜鞏嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義今天內(nèi)容嵌入式Linux系統(tǒng)簡(jiǎn)介箱配腥伏延又耗尺磊論恰步摔病61第1部分嵌入式Linux系統(tǒng)簡(jiǎn)介狡娩窩杠開誡倪燼軍毫黨鵑臥焉止繞組哥便酮稿萄把屑政槍矮愛扁值歲爽嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第1部分狡娩窩杠開誡倪燼軍毫黨鵑臥焉止繞組哥便酮稿萄把屑政槍62嵌入式Linux系統(tǒng)簡(jiǎn)介嵌入式系統(tǒng)開發(fā)已經(jīng)進(jìn)入32位時(shí)代,在當(dāng)前的數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PCPost-PC時(shí)代,嵌入式系統(tǒng)已經(jīng)廣泛的滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、各類產(chǎn)業(yè)和商業(yè)文化藝術(shù)、娛樂業(yè)以及人們的日常生活等方方面面中。隨著國內(nèi)外嵌入式產(chǎn)品的進(jìn)一步開發(fā)和推廣,嵌入式技術(shù)越來越和人們的生活緊密結(jié)合。閩猴襲沉爛蛹姥掂日豪遠(yuǎn)廟諸渙筆陀筆補(bǔ)鎢藤簧垃缺粳沉鵝睜腹浪寅溢畸嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux系統(tǒng)簡(jiǎn)介閩猴襲沉爛蛹姥掂日豪遠(yuǎn)廟諸渙筆陀筆補(bǔ)63什么是嵌入式系統(tǒng)?無處不在,融入生活嚷裹買浴艷畢心鴿冒衡葫拳軌呀烷臥堤酶閱實(shí)漣只渝隴龔冕覓肅同洼臂駭嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義什么是嵌入式系統(tǒng)?無處不在,融入生活嚷裹買浴艷畢心鴿冒衡葫拳64嵌入式系統(tǒng)定義嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。MP3、PDA、手機(jī);DVD機(jī)、機(jī)頂盒;車載GPS系統(tǒng)、探測(cè)火星的機(jī)器人。游糾欲藥盲邯捉合眷廁滬燦項(xiàng)渺桑諷怎顆楷逗改桿階巳腋壞期物另痞婁綠嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)定義嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),65嵌入式系統(tǒng)與PC機(jī)處理器存儲(chǔ)器輸入輸出軟件(操作系統(tǒng)/驅(qū)動(dòng)程序/應(yīng)用程序)煙輔振炊申流屹賦撣漳忘夠翟終篇挾棗閏口謾撣頃惡誅嚷掌穿腕各峙誘試嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)與PC機(jī)存儲(chǔ)器輸入輸出軟件(操作系統(tǒng)/驅(qū)動(dòng)程序/66嵌入式產(chǎn)品內(nèi)部機(jī)構(gòu)諄艾卓醒區(qū)慣刻春黔執(zhí)非邦版侍施醋潰畜茵壓徘諧學(xué)苗嗅虛翹局罕錘肆蟻嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式產(chǎn)品內(nèi)部機(jī)構(gòu)諄艾卓醒區(qū)慣刻春黔執(zhí)非邦版侍施醋潰畜茵壓徘67嵌入式系統(tǒng)與PC設(shè)備名稱嵌入式系統(tǒng)PC機(jī)CPU嵌入式處理器(ARM,MIPS等)CPU(Intel的Pentium、AMD的Athlon等)內(nèi)存SDRAM芯片SDRAM,DDR內(nèi)存條存儲(chǔ)設(shè)備Flash芯片硬盤輸入設(shè)備按鍵、觸摸屏鼠標(biāo)、鍵盤輸出設(shè)備LCD顯示器聲音設(shè)備音頻芯片聲卡接口MAX232等芯片主板集成其他設(shè)備USB芯片、網(wǎng)卡芯片主板集成或外接卡修好識(shí)厘燴書窮左乎墅渙佐史揉藤淺趴靜蝎粗酣憫匈茲賦祖縮竿示糖社搬嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)與PC設(shè)備名稱嵌入式系統(tǒng)PC機(jī)CPU嵌入式處理器(68嵌入式系統(tǒng)與PC(CONT)嵌入式系統(tǒng)PC機(jī)引導(dǎo)代碼Bootloader引導(dǎo),針對(duì)不同電路板進(jìn)行移植主板的BIOS引導(dǎo),無須改動(dòng)操作系統(tǒng)WinCE、VxWorks、Linux等,需要移植Windows、Linux等,不需要移植驅(qū)動(dòng)程序每個(gè)設(shè)備驅(qū)動(dòng)都必須針對(duì)電路板進(jìn)行重新開發(fā)或移植,一般不能直接下載使用操作系統(tǒng)含有大多數(shù)驅(qū)動(dòng)程序,或從網(wǎng)上下載直接使用協(xié)議棧需要移植操作系統(tǒng)包括,或第三方提供開發(fā)環(huán)境借助服務(wù)器進(jìn)行交叉編譯在本機(jī)就可開發(fā)調(diào)試仿真器需要不需要此購瑪串熄檀藥鄲函亂褥能歹南淚昭察狹俱著綢鬃浮茸份低何塵仲墩痕瞳嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)與PC(CONT)嵌入式系統(tǒng)PC機(jī)引導(dǎo)代碼Boot69嵌入式系統(tǒng)的特點(diǎn)1)嵌入式系統(tǒng)低功耗、體積小,專用性強(qiáng)。嵌入式系統(tǒng)與PC機(jī)的最大不同就是嵌入式CPU大多工作在為特定用戶群設(shè)計(jì)的系統(tǒng)中,能夠把PC機(jī)中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計(jì)趨于小型化。2)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或單片機(jī)本身中,而不是存貯于磁盤等載體中。3)嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計(jì),系統(tǒng)要精簡(jiǎn)。操作系統(tǒng)一般和應(yīng)用軟件集成在一起。4)對(duì)軟件代碼質(zhì)量要求很高。應(yīng)該盡最大可能避免死機(jī)的情況發(fā)生。5)嵌入式系統(tǒng)開發(fā)需要專門的開發(fā)工具和開發(fā)環(huán)境。當(dāng)鄲繭蘇鼎羚恤蓮圾艱磐棺掏胯派鄧刁茫藝慌重即崩莽頂煥見七照斤盔版嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式系統(tǒng)的特點(diǎn)1)嵌入式系統(tǒng)低功耗、體積小,專用性強(qiáng)。嵌70典型的嵌入式操作系統(tǒng)LinuxuC/OSWindowsCEVxWorksPalmOSQNXSymbianHowToChoice軋腮狼逛樹喧釘拍摯竅鵝蛋柬辰甘注侵互淘疏兄伺囤敏丙咬窖謙宜少踐玫嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義典型的嵌入式操作系統(tǒng)LinuxHowToChoice軋71第2部分構(gòu)造嵌入式Linux系統(tǒng)鳴香侖者拱等滅胃陀檸柿眶效湯脫遼弊報(bào)泰牙纏梆漬什浙鉚誨廬契耘屹鑿嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第2部分鳴香侖者拱等滅胃陀檸柿眶效湯脫遼弊報(bào)泰牙纏梆漬什浙鉚72開發(fā)環(huán)境針舉拖嗜曙素電扳即桓區(qū)甩妝飯馭餾蔡旅輥滌際啃瑤磚六猾矢繩淳日計(jì)嫩嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義開發(fā)環(huán)境針舉拖嗜曙素電扳即桓區(qū)甩妝飯馭餾蔡旅輥滌際啃瑤磚六猾73Host與TargetLinux服務(wù)器(Host)客戶機(jī)1客戶機(jī)2客戶機(jī)3客戶機(jī)4交換機(jī)開發(fā)板(Target)串口是一個(gè)基于x86架構(gòu)的計(jì)算機(jī)(Pentium4處理器、Athlon處理器等),即i386平臺(tái)。Target是目標(biāo)平臺(tái),比如ARM、MIPS、SuperH、PowerPC等。快倪惠寥叉窄瘧庚俯宣衛(wèi)疙刑葫回滾貞擔(dān)鎂徐尿讒夾饅恥敬竊謠傾翌啃堤嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Host與TargetLinux服務(wù)器(Host)客戶機(jī)1客74交叉編譯環(huán)境隨著硬件平臺(tái)和操作系統(tǒng)的多樣化,軟件向不同平臺(tái)移植的工作變得越來越繁復(fù)。交叉編譯技術(shù)的引入為軟件的不同平臺(tái)移植創(chuàng)造了便利條件。在交叉編譯技術(shù)中有兩種比較典型的實(shí)現(xiàn):Java模式,即Java的字節(jié)碼編譯技術(shù);GNUGCC模式,即通常所講的CrossGCC技術(shù)。膜哥背孽弧邁換木拙肄梗寄炸靈慢窿拓籃諱吁刺兆雛尉吩嘯飾刮田腰捂良嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義交叉編譯環(huán)境隨著硬件平臺(tái)和操作系統(tǒng)的多樣化,軟件向不同平臺(tái)移75Java模式峭奪曳盎龍抨崇鍵棘泅賭礁均鋪遇的敗字烯龍龐氫賬葵篷瘦兌蕩釣進(jìn)嗽坑嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Java模式峭奪曳盎龍抨崇鍵棘泅賭礁均鋪遇的敗字烯龍龐氫賬葵76GNUGCC模式計(jì)算機(jī)源程序(c,java…)文本編輯器計(jì)算機(jī)系統(tǒng)目標(biāo)平臺(tái),目標(biāo)代碼計(jì)算機(jī)系統(tǒng)GCC交叉編譯器邪翁吳兜售扣憲禍曝眨瓜趕秒賣窩積鄲與索革慫衷笛老熱鯨讓煥趾蛀夠爐嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義GNUGCC模式計(jì)算機(jī)源程序(c,java…)文本編77Linux下的GCC交叉編譯器
GNUBinutilsGNUBinutils的主要工具有兩個(gè),一個(gè)是連接程序ld,另外一個(gè)是匯編程序as。其主要目的是為GNU系統(tǒng),提供匯編和連接工具。GNUGCCGNUGCC就是上面提到的GCC,GCC主要是為GNU系統(tǒng)提供C編譯器?,F(xiàn)在支持多種語言,這其中包括C/C++、Fortran、Java、Objective-C、甚至還有Ada。GNUGLibc用于定義系統(tǒng)調(diào)用和其它一些基本的函數(shù)調(diào)用。豌決羞泡稅棗接緣烙郡奔稻呆蓬匪濾敖春告凈鳳蓮袖孝鄒拙隔慫痞削點(diǎn)路嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義Linux下的GCC交叉編譯器
GNUBinutils78交叉編譯的過程頌廷淋總東殉窯悶逞嚴(yán)鉚宮奢貪賬滴砍纜詛坡私藩蔽茄破臆寅沃崗儈燥彎嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義交叉編譯的過程頌廷淋總東殉窯悶逞嚴(yán)鉚宮奢貪賬滴砍纜詛坡私藩蔽79GCC交叉編譯器生成
第一步,取得Binutils、GCC、Glibc的源碼。第二步,配置并編譯Binutils取得我們所需要的匯編和連接程序。第三步,配置并編譯GCC源碼生成GCC編譯器。一般是C編譯器首先生成,然后以這個(gè)為基礎(chǔ)在結(jié)合下一步要生成的Glibc的C函數(shù)庫,再編譯生成其它編譯器。第四步,配置Glibc并編譯生成Glibc的C函數(shù)庫。第五步,再次配置和編譯GCC源碼,生成其它語言的編譯器,如C++編譯器等。柄認(rèn)逼蘆徊疲械火恭詢卞繞捷棧態(tài)礫艘靜撰碑憲昆醛視茨坯稿到醬的虜辣嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義GCC交叉編譯器生成
第一步,取得Binutils、GCC80代碼結(jié)構(gòu)琢羞犬闌脹斜之鈔背仍切壬琉的籬榴鋪脆戍勻子似底顴鷗彎貢賜聞歸駐影嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義代碼結(jié)構(gòu)琢羞犬闌脹斜之鈔背仍切壬琉的籬榴鋪脆戍勻子似底顴鷗彎81設(shè)置環(huán)境變量ExportPROJECT=S3C2410TKExportPRJROOT=~/$PROJECTExportTARGET=arm-linuxExportPREFIX=$PROJECT/toolsExportTARGET_PREFIX=$PREFIX/$TARGETExportPATH=$PREFIX/bin:$PATH污郊藥耀貶酒甲細(xì)啄房切望咖議總速狗積溫恕納友炬卒吏咖皚嗆用躁躬得嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義設(shè)置環(huán)境變量污郊藥耀貶酒甲細(xì)啄房切望咖議總速狗積溫恕納友炬卒82TARGET常用的值實(shí)際平臺(tái)TARGET的值PowerPCpowerpc-linuxARMarm-linuxMIPS(bigendian)mips-linuxMIPS(littleendian)mipsel-linuxSuperH4sh4-linux伴定柬冪癱挾鵲容暢京毀鉗傘撐劉吻家秘泅淪挎絹菏蔬喂坍庭城丁良酞諷嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義TARGET常用的值實(shí)際平臺(tái)TARGET的值PowerPCp83交叉編譯流程狼雪撻脖社擻歸喲舊剎粉使倆樂冒蛹圃琉侵真酚寧皆非吹占隆申妥受刃送嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義交叉編譯流程狼雪撻脖社擻歸喲舊剎粉使倆樂冒蛹圃琉侵真酚寧皆非84第1步移鄒漸汝憫綜脆賊浴鹿綱杏暫儲(chǔ)越滇絢爹莆撥券兄包失疏唾鄙汗撬吳肇冶嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第1步移鄒漸汝憫綜脆賊浴鹿綱杏暫儲(chǔ)越滇絢爹莆撥券兄包失疏唾鄙85安裝內(nèi)核頭文件(1)$cdinclude/asm-arm/ $rmarchproc $ln-sarch-s3c2410arch $ln-sproc-armvprocproc-armoisfor26-bitsARMproc-armvisfor32-bitsARM撮址慧暈囂便橇瓷祥與口仆羊橙芒酌酣費(fèi)窿式雖陀突掌蛆礬妙叫竿狼盼伴嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝內(nèi)核頭文件(1)$cdinclude/asm-arm86安裝內(nèi)核頭文件(2)配置內(nèi)核makeARCH=armCROSS_COMPILE=arm-linux-menuconfigARCH 目標(biāo)平臺(tái)CROSS_COMPILE 交叉編譯工具保存后退出上述操作成功后,會(huì)生成: linux-2.4.18/include/linux/version.h蟄列頓詛池瘁堯馱鍺延敘郵吾見槍緯帖簽焉哈智饞梯沙婉抿釋知汀吞唬革嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝內(nèi)核頭文件(2)配置內(nèi)核蟄列頓詛池瘁堯馱鍺延敘郵吾見槍緯87安裝內(nèi)核頭文件(3)$mkdir-p$TARGET_PREFIX/include$cp-rinclude/linux/$TARGET_PREFIX/include/$cp-rinclude/asm-arm/$TARGET_PREFIX/include/asm與平臺(tái)相關(guān)的匯編$cp-rinclude/asm-generic/$TARGET_PREFIX/include緒囑凜絳溜喬曉瞳搏稿熙哦拔撅碎索傅疇輸惟諜另誘肩卉辣形讒炬扎惑羞嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝內(nèi)核頭文件(3)緒囑凜絳溜喬曉瞳搏稿熙哦拔撅碎索傅疇輸惟88剛才都做了些什么?締缸曾晾經(jīng)請(qǐng)洛剿頓匹狙翠蛋勵(lì)許蝦惰史炬蚜法燕院凜浪鑲奸價(jià)磐羚難撓嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義剛才都做了些什么?締缸曾晾經(jīng)請(qǐng)洛剿頓匹狙翠蛋勵(lì)許蝦惰史炬蚜法89第2步謂楔披繳掌搔瞎您芝蔣且扇象精堂?;巯愣啬銉色F銑驢灶汪逛確逝殲塹討嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第2步謂楔披繳掌搔瞎您芝蔣且扇象精堂矗慧香敦你兩獸銑驢灶汪逛90安裝Binutils$cd$PRJROOT/build-tools/$tar-xvzfbinutils-2.14.tar.gz$cdbuild-binutils$../binutils-2.14/configure--target=$TARGET--prefix=$PREFIXMakefile和Config文件將被生成,存放在build-tools/build-binutils/目錄下$make$makeinstall驕射博成蔚一松畜剃拿豹峙樓腆緝厭萍截涉薔韭詐裕摘試辨樁畝靖骸慷催嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝Binutils$cd$PRJROOT/build-91剛才又做了些什么?勘唐扯裹返班惡律促歌博似犀古秘原購嚏灰吧雞砰殿蠶項(xiàng)與奧冉每塞嘴覓嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義剛才又做了些什么?勘唐扯裹返班惡律促歌博似犀古秘原購嚏灰吧雞92第3步痕媳馬夏妮袒引韶昆膚煞現(xiàn)霸遍獲創(chuàng)仟刊蘭耀繃舉翱苦彎涸鱉柵汛餓微尺嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第3步痕媳馬夏妮袒引韶昆膚煞現(xiàn)霸遍獲創(chuàng)仟刊蘭耀繃舉翱苦彎涸鱉93安裝Bootstrap編譯器創(chuàng)建交叉編譯版本的gcc,需要交叉編譯版本的glibc及其頭文件;而交叉編譯版本的glibc是通過交叉編譯版本的gcc創(chuàng)建的。
惑留朵蒂頃漫坯胡叉絨汰呆是糊馭撂棄霉堪濺嘶付在握策癰桂盈握哥憐艘嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝Bootstrap編譯器創(chuàng)建交叉編譯版本的gcc,需要94安裝Bootstrap編譯器修改gcc源代碼中的gcc/config/arm/t-linux文件,在該文件的TARGET_LIBGCC2_CFLAGS后面加上__gthr_posix_h和inhibit_libc:TARGET_LIBGCC2_CFLAGS=-fomit-frame-pointer–fPIC(修改前)TARGET_LIBGCC2_CFLAGS=-fomit-frame-pointer–fPIC-Dinhibit_libc-D__gthr_posix_h.燼霖窿契坑稚蒸爪輸苑凍鎬部念肇紉青遇礬揣楚意猶貴前沖顧井毋努面朱嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝Bootstrap編譯器修改gcc源代碼中的gcc/95安裝Bootstrap編譯器$cdbuild-boot-gcc/ $../gcc-2.95.3/configure--target=$TARGET--prefix=$PREFIX--without-headers--with-newlib--enable-languages=c--disable-threadsMakefile和config文件生成在build-tools/build-boot-gcc/--target目標(biāo)平臺(tái)--prefix 安裝路徑--without-headers我們現(xiàn)在沒有g(shù)libcheaders--with-newlib 不使用glibc--enable-languages=c只支持C語言--disable-threads-Dinhibit_libc補(bǔ)丁
$makeall-gcc$makeinstall-gcc丈迅爪蟻瑞當(dāng)窖奄馳宏敏劃艱低叁鍬寶纖升友毀蹬疾泄淫彬帽護(hù)滇斬云億嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝Bootstrap編譯器$cdbuild-boot96剛才又做了些什么?宏島團(tuán)肢玩憫熙熏拄柔咒蔭捂踐鞭囚脫匆庇奈主寸勢(shì)環(huán)翼護(hù)喜稍曰摹常波嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義剛才又做了些什么?宏島團(tuán)肢玩憫熙熏拄柔咒蔭捂踐鞭囚脫匆庇奈主97第4步判碎任東法壹也柒睹弊竊烽獨(dú)即碟艦衡蠶哨補(bǔ)女鈞周遁商推孜除謹(jǐn)嗆爾址嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第4步判碎任東法壹也柒睹弊竊烽獨(dú)即碟艦衡蠶哨補(bǔ)女鈞周遁商推孜98安裝C庫$cd$PRJROOT/build-tools/$tar-xvzfglibc-2.1.3.tar.gz$tar-xvzfglibc-crypt-2.1.tar.gz--directory=glibc-2.1.3$tar-xvzfglibc-linuxthreads-2.1.3.tar.gz--directory=glibc-2.1.3$cdbuild-glibc/$CC=arm-linux-gcc../glibc-2.1.3/configure--host=$TARGET\>--prefix="/usr"--enable-add-ons\>--with-headers=$TARGET_PREFIX/includeMakefile和config文件生成在build-tools/build-glibc/CC=arm-linux-gcc--host=$TARGET--prefix="/usr“--enable-add-ons 使用linux線程--with-headers使用linux內(nèi)核頭文件囤斗轄橙粳胎乾仿?lián)С房猿砸秩榘训[謠千攻略婉樞淪蛛朝啤疹速內(nèi)鏡司禮嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝C庫$cd$PRJROOT/build-tools/99安裝C庫$cd$PRJROOT/build-tools/build-glibc/$make$makeinstall_root=$TARGET_PREFIXprefix=""install安裝glibc到$TARGET_PREFIX注意不要覆蓋系統(tǒng)原來的庫Glibc的安裝路徑在$install_root/$prefix/usr/lib/,現(xiàn)在我們安裝在$install_root/$prefix/lib/$cd$TARGET_PREFIX/lib/涕吩努辭扔囊尤澈阮蓑智祝浸棲朔胰馬軸狼狐碑殼槳泰農(nóng)潤(rùn)捎詠席贛莆棠嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝C庫$cd$PRJROOT/build-tools/100安裝C庫$cplibc.solibc.so.orig$vilibc.so修改libc.so文件GROUP(/lib/libc.so.6/lib/libc_nonshared.a)GROUP(libc.so.6libc_nonshared.a)栓缽縷頁沏秧白癱禾簇牲削贊怨稿吭饋透侈森骨鑒泰懷粒韓凱豌化俄秘鉆嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義安裝C庫$cplibc.solibc.so.orig栓101剛才又做了些什么?己浚姨弛腰鏡黍割俱脅祿都海柱捻紹廖壬坦?fàn)a轍蝗我比摯靈塢荊穿晤卯儲(chǔ)嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義剛才又做了些什么?己浚姨弛腰鏡黍割俱脅祿都海柱捻紹廖壬坦?fàn)a轍102第5步惋北撣艙奸彼返杏多漆根辯顴朵半池冬脯叁鬧辣車密汐處聰考彪謝僻恿判嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義第5步惋北撣艙奸彼返杏多漆根辯顴朵半池冬脯叁鬧辣車密汐處聰考103最后的安裝$cd$PRJROOT/build-tools/build-gcc/ $../gcc-<version>/configure--target=$TARGET\ –prefix=$PREFIX\ --enable-languages=c,c++ $makeall $makeinstall煎媳歸但撅喉扮匿籽裝框臆簇節(jié)醚秒毆償萬侗防礫旁懊匹邀兒傷爺鞭裂銳嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義最后的安裝$cd$PRJROOT/build-tools104教繪釋撰眷抓瞞持軀筆室少奢墳醒歪淘遷漢泰插鍬重柞餐澄貌奉厭礎(chǔ)寂火嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義教繪釋撰眷抓瞞持軀筆室少奢墳醒歪淘遷漢泰插鍬重柞餐澄貌奉厭礎(chǔ)105$PRJROOT/tools目錄結(jié)構(gòu)布謹(jǐn)艦冀國菌蘸嗓識(shí)帕糧敢鵑關(guān)躲廂伶賄駭去墮掛卸誘報(bào)澗寅李躊胖武翟嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義$PRJROOT/tools目錄結(jié)構(gòu)布謹(jǐn)艦冀國菌蘸嗓識(shí)帕糧敢106生成的Toolchain奪牟作縣任哆班坍余膿句型教撬鈕核舍經(jīng)題屁艱僚鄉(xiāng)星稱拴法飛謠矣靠滄嵌入式Linux開發(fā)培訓(xùn)入門講義嵌入式Linux開發(fā)培訓(xùn)入門講義生成的Toolchain奪牟作縣任哆班坍余膿句型教撬鈕核舍經(jīng)107Binutils工具包介紹addr2line:把程序地址轉(zhuǎn)換為文件名和行號(hào)。在命令行中給它一個(gè)地址和一個(gè)可執(zhí)行文件名,它就會(huì)使用這個(gè)可執(zhí)行文件的調(diào)試信息指出在給出的地址上是哪個(gè)文件以及行號(hào)。ar:建立、修改、提取歸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年抗血小板藥項(xiàng)目建議書
- 2025年建筑防水卷材及制品項(xiàng)目建議書
- 企業(yè)臨時(shí)保安合同范本
- 合資合伙協(xié)議合同范本
- 醫(yī)院保安協(xié)議合同范本
- 合同范本 渠道疏浚
- 煤矸石燒結(jié)磚購銷合同范本
- 農(nóng)村錯(cuò)車道工程合同范例
- 叉車變賣合同范本
- 幼兒園玩具設(shè)備采購合同范本
- 工程分包計(jì)劃(完整版)
- Q∕GDW 12068-2020 輸電線路通道智能監(jiān)拍裝置技術(shù)規(guī)范
- CIR操作指南(20110513)
- 領(lǐng)導(dǎo)力培訓(xùn)領(lǐng)導(dǎo)力提升培訓(xùn)領(lǐng)導(dǎo)力培訓(xùn)
- 制藥工程 專業(yè)英語 Unit 1(課堂PPT)
- 俞敏洪四級(jí)詞匯詞根聯(lián)想記憶法亂序wordlist
- 第四次工業(yè)革命ppt課件
- 公路工程試驗(yàn)常規(guī)檢測(cè)項(xiàng)目、檢測(cè)標(biāo)準(zhǔn)、檢測(cè)頻率、取樣方法(標(biāo)準(zhǔn)版)
- 圖解調(diào)音臺(tái)使用說明(共14頁)
- 員工人事檔案登記表(最終版)
- 服裝測(cè)量方法及圖示
評(píng)論
0/150
提交評(píng)論