項(xiàng)目1熟悉嵌入式系統(tǒng)開發(fā)環(huán)境_第1頁
項(xiàng)目1熟悉嵌入式系統(tǒng)開發(fā)環(huán)境_第2頁
項(xiàng)目1熟悉嵌入式系統(tǒng)開發(fā)環(huán)境_第3頁
項(xiàng)目1熟悉嵌入式系統(tǒng)開發(fā)環(huán)境_第4頁
項(xiàng)目1熟悉嵌入式系統(tǒng)開發(fā)環(huán)境_第5頁
已閱讀5頁,還剩128頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

全國高等職業(yè)院校規(guī)劃教材.精品與示范系列

李軍鋒主編邵瑛沈毓駿副主編嵌入式系統(tǒng)應(yīng)用——仿真月球車控制系統(tǒng)設(shè)計(jì)電子工業(yè)出版社項(xiàng)目1熟悉嵌入式系統(tǒng)開發(fā)環(huán)境一、項(xiàng)目概況一、項(xiàng)目概況項(xiàng)目說明:

本項(xiàng)目利用嵌入式系統(tǒng)基本理論,構(gòu)建嵌入式系統(tǒng)的集成開發(fā)環(huán)境,采用Linux操作系統(tǒng)平臺(tái)在ARM板內(nèi)燒寫可執(zhí)行文件并設(shè)置開機(jī)自動(dòng)運(yùn)行程序?qū)崿F(xiàn)仿真月球車的直線運(yùn)行控制,包括仿真月球車前進(jìn)和后退。二、知識(shí)儲(chǔ)備

2.1、嵌入式系統(tǒng)基本概念定義:根據(jù)IEEE(國際電機(jī)工程師協(xié)會(huì))的定義,嵌入式系統(tǒng)是“devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants”(即“控制、監(jiān)視或者輔助機(jī)器和設(shè)備運(yùn)行的裝置”之意)。表明嵌入式系統(tǒng)是一個(gè)軟硬件綜合體的事實(shí)。有多種不同的關(guān)于嵌入式系統(tǒng)(EmbeddedSystem)的定義,被業(yè)界大多數(shù)人所接受的是根據(jù)嵌入式系統(tǒng)的特點(diǎn)下的定義:“以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪,功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)”。二、知識(shí)儲(chǔ)備2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)的應(yīng)用嵌入式應(yīng)用信息家電智能玩具軍事電子通信設(shè)備移動(dòng)存貯工控設(shè)備智能儀表汽車電子網(wǎng)絡(luò)設(shè)備消費(fèi)電子軍事國防電子商務(wù)工業(yè)控制二、知識(shí)儲(chǔ)備2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)應(yīng)用領(lǐng)域極為廣泛,具體例如:坦克、導(dǎo)彈、飛機(jī)、軍艦、雷達(dá)DVD機(jī)、電視機(jī)、微波爐、洗衣機(jī)、電冰箱、熱水器手機(jī)、MP3播放器、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、機(jī)頂盒鍵盤、鼠標(biāo)、閃存盤、CD-ROM、交換機(jī)、路由器1.4嵌入式系統(tǒng)的應(yīng)用領(lǐng)域二、知識(shí)儲(chǔ)備2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)應(yīng)用領(lǐng)域二、知識(shí)儲(chǔ)備2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)應(yīng)用領(lǐng)域二、知識(shí)儲(chǔ)備2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)應(yīng)用領(lǐng)域2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)應(yīng)用領(lǐng)域空調(diào)控制后視鏡照明系統(tǒng)座椅系統(tǒng)天窗系統(tǒng)鎖車窗升降二、知識(shí)儲(chǔ)備

2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)應(yīng)用領(lǐng)域分布式控制網(wǎng)關(guān)+分布式模塊網(wǎng)關(guān)CANLIN后視鏡LIN門控窗控面板分布式控制二、知識(shí)儲(chǔ)備

二、知識(shí)儲(chǔ)備

2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)應(yīng)用領(lǐng)域二、知識(shí)儲(chǔ)備

2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)的發(fā)展經(jīng)歷了以下四個(gè)階段:無操作系統(tǒng)階段簡單操作系統(tǒng)階段實(shí)時(shí)操作系統(tǒng)階段面向Internet階段

2.1.3嵌入式系統(tǒng)與PC的不同一般專用于特定的任務(wù),而PC是一個(gè)通用計(jì)算機(jī)。使用多種類型的處理器和處理器體系結(jié)構(gòu)。及其關(guān)注成本有實(shí)時(shí)約束使用實(shí)時(shí)多任務(wù)操作系統(tǒng)軟件故障造成的后果比PC系統(tǒng)更嚴(yán)重大多有功耗約束經(jīng)常在極端的環(huán)境下運(yùn)行系統(tǒng)資源比PC少的多通常所有的目標(biāo)代碼存放在ROM中需要專用工具和方法進(jìn)行開發(fā)設(shè)計(jì)嵌入式系統(tǒng)的數(shù)量遠(yuǎn)遠(yuǎn)超過PC2.1.4巨大的市場(chǎng)計(jì)算機(jī)應(yīng)用的普及、互聯(lián)網(wǎng)技術(shù)的實(shí)用以及納米微電子技術(shù)的突破,正有力推動(dòng)著21世紀(jì)工業(yè)生產(chǎn),商業(yè)活動(dòng)科學(xué)試驗(yàn)和家庭生活等領(lǐng)域自動(dòng)化和信息化進(jìn)程。嵌入式產(chǎn)品的巨大商機(jī)--全過程自動(dòng)化產(chǎn)品制造、大范圍電子商務(wù)活動(dòng)、高度協(xié)同科學(xué)實(shí)驗(yàn)以及現(xiàn)代化家庭起居。你接觸的每一樣?xùn)|西將裝有芯片和嵌入式軟件。2.1.5創(chuàng)新的機(jī)遇通用計(jì)算機(jī)產(chǎn)業(yè)是壟斷的。嵌入式系統(tǒng)與技術(shù)是一個(gè)分散的工業(yè),充滿競(jìng)爭、機(jī)遇與創(chuàng)新。沒有哪一個(gè)系列的處理器和操作系統(tǒng)能夠壟斷全部市場(chǎng)即便在體系結(jié)構(gòu)上存在著主流,但各不相同的應(yīng)用領(lǐng)域決定了不可能有少數(shù)公司,少數(shù)產(chǎn)品壟斷全部市場(chǎng)。因此嵌入式系統(tǒng)領(lǐng)域的產(chǎn)品和技術(shù),必然是高度分散的,留給各個(gè)行業(yè)的中小規(guī)模高技術(shù)公司的創(chuàng)新余地很大。二、知識(shí)儲(chǔ)備2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)的特點(diǎn)和種類從構(gòu)成上看:集軟硬件一體、可獨(dú)立工作的計(jì)算機(jī);從外觀上看:“可編程”的電子“器件”;從功能上看:對(duì)目標(biāo)系統(tǒng)進(jìn)行智能化控制。從用戶和開發(fā)人員的角度來看:專用性強(qiáng)。體積小型化。實(shí)時(shí)性好。可裁剪性好??煽啃愿?。功耗低。本身不具備開發(fā)能力。通常采用“軟硬協(xié)同設(shè)計(jì)”。二、知識(shí)儲(chǔ)備2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)的特點(diǎn)和種類嵌入式處理器的分類在目前的嵌入式處理器市場(chǎng)中,各種類型的處理器芯片層出不窮。據(jù)不完全統(tǒng)計(jì),全世界范圍內(nèi)的處理器品種已超過1000種,流行的體系結(jié)構(gòu)有30多個(gè)系列,其中8051體系和ARM體系的CPU是當(dāng)前市場(chǎng)的主流。二、知識(shí)儲(chǔ)備2.1、嵌入式系統(tǒng)基本概念嵌入式系統(tǒng)的特點(diǎn)和種類嵌入式技術(shù)的發(fā)展方向和特點(diǎn)向應(yīng)用開發(fā)提供強(qiáng)大支持更強(qiáng)大的處理器OS,實(shí)時(shí)多任務(wù)編程技術(shù)交叉開發(fā)工具軟件質(zhì)量保障為設(shè)備網(wǎng)絡(luò)通信提供標(biāo)準(zhǔn)接口?;ヂ?lián)網(wǎng)移動(dòng)網(wǎng)絡(luò),無線網(wǎng)絡(luò)GPS衛(wèi)星定位支持小型電子設(shè)備小尺寸、微功耗和低成本。提供精巧的多媒體人機(jī)界面。2.嵌入式系統(tǒng)的基本結(jié)構(gòu)嵌入式系統(tǒng)的構(gòu)架嵌入式微處理器嵌入式操作系統(tǒng)啟動(dòng)程序BootLoader介紹

2.1嵌入式系統(tǒng)的構(gòu)架API(ApplicationProgrammingInterface)2.2嵌入式系統(tǒng)的硬件基本結(jié)構(gòu)2.3嵌入式處理器支持實(shí)時(shí)多任務(wù).較短的中斷響應(yīng)時(shí)間存儲(chǔ)區(qū)保護(hù)功能可擴(kuò)展的處理器結(jié)構(gòu)較低的功耗分類:★嵌入式微控制器(MicrocontrollerUnit)★嵌入式DSP處理器EDSP(EmbeddedDigitalSignalProcessor)★嵌入式微處理器(EmbeddedMicroprocessorUnit)★嵌入式片上系統(tǒng)SOC(SystemOnChip)

2.3.1嵌入式微處理器特點(diǎn):功能和微處理器基本一樣,是具有32位以上的處理器,具有較高的性能.具有體積小,功耗少,成本低,可靠性高的特點(diǎn).有的可提供工業(yè)級(jí)應(yīng)用.流行的嵌入式微處理器:ARM/Strong(ARM公司)PowerPC(MOTOROL公司)68000(MOTOROL公司)MIPS(MIPS公司)MIPS處理器MIPS技術(shù)公司是一家設(shè)計(jì)制造高性能、高檔次及嵌入式32位和64位處理器的廠商。在RISC處理器方面占有重要地位。MIPS的意思是“無內(nèi)鎖流水段微處理器”(Microprocessorwithoutinterlockedpipedstages),最早是在80年代初期由美國斯坦福大學(xué)Hennessy教授領(lǐng)導(dǎo)的研究小組研制出來的。1986年推出R2000處理器,1988年推出R3000處理器,1991年推出第一款64位商用微處理器R4000。之后,又陸續(xù)推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型號(hào)。之后,MIPS公司的戰(zhàn)略發(fā)生變化MIPS處理器此外,24K微架構(gòu)能符合各種新興的服務(wù)趨勢(shì),為寬頻存取以及還在不斷發(fā)展的網(wǎng)絡(luò)基礎(chǔ)設(shè)施、通訊協(xié)議提供軟件可編程的彈性。在嵌入式方面,MIPS系列微處理器是目前僅次于ARM的用得最多的處理器之一(1999年以前MIPS是世界上用得最多的處理器),其應(yīng)用領(lǐng)域覆蓋游戲機(jī)、路由器、激光打印機(jī)、掌上電腦等各個(gè)方面。MIPS的系統(tǒng)結(jié)構(gòu)及設(shè)計(jì)理念比較先進(jìn),在設(shè)計(jì)理念上MIPS強(qiáng)調(diào)軟硬件協(xié)同提高性能,同時(shí)簡化硬件設(shè)計(jì)。

PowerPC處理器PowerPC架構(gòu)的特點(diǎn)是可伸縮性好,方便靈活。PowerPC處理器品種很多,既有通用的處理器,又有嵌入式控制器和內(nèi)核,應(yīng)用范圍非常廣泛,從高端的工作站、服務(wù)器到桌面計(jì)算機(jī)系統(tǒng),從消費(fèi)類電子產(chǎn)品到大型通信設(shè)備,無所不包。處理器芯片主要型號(hào)是PowerPC750,它于1997年研制成功,最高的工作頻率可以達(dá)到500MHz,采用先進(jìn)的銅線技術(shù)。該處理器有許多品種,以便適合各種不同的系統(tǒng)。包括IBM小型機(jī)、蘋果電腦和其他系統(tǒng)。嵌入式的PowerPC405(主頻最高為266MHz)和PowerPC440(主頻最高為550MHz)處理器內(nèi)核可以用于各種SoC設(shè)計(jì)上,在電信、金融和其他許多行業(yè)具有廣泛的應(yīng)用。2.3.2嵌入式微控制器 嵌入式微控制器就是將整個(gè)計(jì)算機(jī)系統(tǒng)的主要硬件集成到一塊芯片中,芯片內(nèi)部集成ROM/EPROM,RAM,總線,總線邏輯,定時(shí)/計(jì)數(shù)器,Watchdog,I/O,串行口等各種必要功能和外設(shè).其特點(diǎn)為:一個(gè)系列的微控制器具有多種衍生產(chǎn)品;單片化,體積大大減小,功耗和成本降低,可靠性提高;是目前嵌入式工業(yè)的主流,約占嵌入式系統(tǒng)70%的份額;多是8位和16位處理器流行的嵌入式微控制器通用系列:8051,MCS251,MCS-96/196/296半通用系列:支持I2C,CANBUS,LCD及眾多專用MCU和兼容系列2.3.3嵌入式DSP嵌入式DSP處理器有兩個(gè)發(fā)展方向:是嵌入式DSP處理器和嵌入式處理器經(jīng)過單片化設(shè)計(jì),片上增加豐富的外設(shè)成為具有高性能DSP功能的SoC;是在通用微處理器、微控制器或SoC中增加DSP協(xié)處理器,例如Intel的MCS-296和Siemens的TriCore。2.3.4嵌入式外圍接口電路

和設(shè)備接口根據(jù)外圍設(shè)備的功能可分為以下5類存儲(chǔ)器類型通信接口輸入輸出設(shè)備設(shè)備擴(kuò)展接口電源及輔助設(shè)備存儲(chǔ)器類型:存儲(chǔ)器是嵌入式系統(tǒng)中存儲(chǔ)數(shù)據(jù)和程序的功能部件,目前常見的存儲(chǔ)設(shè)備按使用的存儲(chǔ)器類型分為:

靜態(tài)易失型存儲(chǔ)器(RAM,SRAM);動(dòng)態(tài)存儲(chǔ)器(DRAM);

非易失性存儲(chǔ)器ROM(ROMEPROM,EEPROM,F(xiàn)LASH);硬盤、軟盤、CD-ROM等。通信接口目前存在的所有計(jì)算機(jī)通信接口在嵌入式領(lǐng)域中都有其廣泛的應(yīng)用,應(yīng)用最為廣泛的接口設(shè)備包括

RS-232接口(串口UART)

USB接口(通用串行總線接口)

IrDA(InfraRedDataAssociation-紅外線接口)、

SPI(串行外圍設(shè)備接口)、

I2C、CAN總線接口、藍(lán)牙接口(Bluetooth)

Ethernet(以太網(wǎng)接口)、

IEEE1394接口和通用可編程接口GPIO。輸入輸出設(shè)備

CRT、LCD和觸摸屏等,構(gòu)成了嵌入式系統(tǒng)中重要的信息輸入輸出設(shè)備,應(yīng)用廣泛。觸摸屏可以方便的實(shí)現(xiàn)鼠標(biāo)和鍵盤功能。設(shè)備擴(kuò)展接口

簡單的嵌入式系統(tǒng)如具有簡單的記事本、備忘錄以及日程計(jì)劃等功能的PDA,它所需要存儲(chǔ)的數(shù)據(jù)量并不需要很大的內(nèi)存。由于目前的嵌入式系統(tǒng)功能越來越復(fù)雜,需要大容量內(nèi)存,大的內(nèi)存使得系統(tǒng)成本和體積加大。目前一些高端的嵌入式系統(tǒng)都會(huì)預(yù)留可擴(kuò)展存儲(chǔ)設(shè)備接口,為日后用戶有特別需求時(shí),可購買符合擴(kuò)展接口規(guī)格的裝置直接接入系統(tǒng)使用。

常用的擴(kuò)展卡還有各種CF卡、SD卡、MemoryStick等。目前高端的嵌入式系統(tǒng)都留有一定的擴(kuò)展卡接口。電源及輔助設(shè)備嵌人式系統(tǒng)力求外觀小型化、重量輕以及電源使用壽命長,例如移動(dòng)電話或PDA,體積較大或者過重的機(jī)型已經(jīng)被淘汰。目前發(fā)展的目標(biāo)是體積小、易攜帶和外觀設(shè)計(jì)新穎等。在便攜式嵌入式系統(tǒng)的應(yīng)用中,必須特別關(guān)注電源裝置等輔助設(shè)備。

2.4嵌入式操作系統(tǒng) 嵌入式操作系統(tǒng)是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺(tái).嵌入式系統(tǒng)的出現(xiàn),解決了嵌入式軟件開發(fā)標(biāo)準(zhǔn)化的難題.嵌入式系統(tǒng)具有操作系統(tǒng)的最基本的功能:進(jìn)程調(diào)度內(nèi)存管理設(shè)備管理文件管理操作系統(tǒng)接口(API調(diào)用)嵌入式操作系統(tǒng)具有的特點(diǎn):系統(tǒng)可裁減,可配置.系統(tǒng)具備網(wǎng)絡(luò)支持功能系統(tǒng)具有一定的實(shí)時(shí)性

2.4.1嵌入式操作系統(tǒng)的分類按照對(duì)實(shí)時(shí)系統(tǒng)的定義,嵌入式系統(tǒng)可分為實(shí)時(shí)嵌入式系統(tǒng)與非實(shí)時(shí)嵌入式系統(tǒng):實(shí)時(shí)系統(tǒng)的定義:能夠?qū)ν獠渴录龀黾皶r(shí)響應(yīng)的系統(tǒng)。響應(yīng)時(shí)間要有保證。對(duì)外部事件的響應(yīng)包括事件發(fā)生時(shí)要識(shí)別出來在給定時(shí)間約束內(nèi)必須輸出結(jié)果實(shí)時(shí)操作系統(tǒng):VxWorks,WinCE,QNX,Nucleus非實(shí)時(shí)操作系統(tǒng):嵌入式Linux

2.4.2嵌入式實(shí)時(shí)操作系統(tǒng)的特點(diǎn)實(shí)時(shí)系統(tǒng)必須產(chǎn)生正確的結(jié)果實(shí)時(shí)系統(tǒng)的響應(yīng)必須在預(yù)定的周期內(nèi)完成這兩點(diǎn)同樣重要實(shí)時(shí)系統(tǒng)是具有確定性的。在這些實(shí)時(shí)系統(tǒng)中,響應(yīng)時(shí)間決定事件是有界的。一個(gè)確定的實(shí)時(shí)系統(tǒng)意味著系統(tǒng)的每個(gè)部件都必須具有確定的行為,使得整個(gè)系統(tǒng)是確定性的。2.5幾種主流的嵌入式操作系統(tǒng)Vxworks:美國WindRiver公司于1983年開發(fā),具有可靠、實(shí)時(shí)、可裁減特性。WindowsEmbedded:支持具有豐富應(yīng)用程序和服務(wù)的32位嵌入式系統(tǒng)。主要系列:WindowsCE3.0,WindowsNTEmbedded4.0和帶有ServerApplianceKit的Windows2000PalmOS:Com公司產(chǎn)品,在PDA市場(chǎng)占據(jù)很大份額,具有開放的操作系統(tǒng)應(yīng)用程序接口(API),可讓用戶靈活方便地定制操作系統(tǒng)。嵌入式Linux:近兩年來,Linux在嵌入式領(lǐng)域異軍突起,他的獨(dú)特性,使其作為開發(fā)嵌入式產(chǎn)品的操作系統(tǒng)具備巨大的潛力。Linux具有一些獨(dú)特的優(yōu)勢(shì):層次結(jié)構(gòu)及內(nèi)核完全開放;強(qiáng)大的網(wǎng)絡(luò)支持功能;具備一整套工具鏈;廣泛的硬件支持特性。

2.6嵌入式系統(tǒng)軟件的層次結(jié)構(gòu)如當(dāng)設(shè)計(jì)一個(gè)簡單的應(yīng)用程序時(shí),可以不使用操作系統(tǒng),但是當(dāng)設(shè)計(jì)較復(fù)雜的程序時(shí),可能就需要一個(gè)操作系統(tǒng)(OS)來管理、控制內(nèi)存、多任務(wù)、周邊資源等等。依據(jù)系統(tǒng)所提供的程序界面來編寫應(yīng)用程序,可以大大的減少應(yīng)用程序員的負(fù)擔(dān)。對(duì)于使用操作系統(tǒng)的嵌入式系統(tǒng)來說,嵌入式系統(tǒng)軟件結(jié)構(gòu)一般包含四個(gè)層面:設(shè)備驅(qū)動(dòng)層、實(shí)時(shí)操作系統(tǒng)(RTOS)、應(yīng)用程序接口(API)層、實(shí)際應(yīng)用程序?qū)印S行┵Y料將應(yīng)用程序接口API歸屬于OS層,如圖1-1的上半部分所示的嵌入式系統(tǒng)的軟件結(jié)構(gòu),是按三層劃分的。由于硬件電路的可裁減性和嵌入式系統(tǒng)本身的特點(diǎn),其軟件部分也是可裁減的。對(duì)于功能簡單僅包括應(yīng)用程序的嵌入式系統(tǒng)一般不使用操作系統(tǒng),僅有應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序。現(xiàn)代高性能嵌入式系統(tǒng)應(yīng)用越來越廣泛,操作系統(tǒng)使用成為必然發(fā)展趨勢(shì)。本節(jié)主要講述的具有操作系統(tǒng)的嵌入式軟件層次。嵌入式系統(tǒng)軟件的層次結(jié)構(gòu)具有操作系統(tǒng)的嵌入式軟件層次驅(qū)動(dòng)層程序?qū)崟r(shí)操作系統(tǒng)(RTOS)操作系統(tǒng)的應(yīng)用程序接口(API)應(yīng)用程序2.7啟動(dòng)程序BootLoader介紹對(duì)于PC機(jī),其開機(jī)后的初始化處理器配置、硬件初始化等操作是由BIOS(BasicInput/OutputSystem)完成的,但對(duì)于嵌入式系統(tǒng)來說,出于經(jīng)濟(jì)性、價(jià)格方面考慮一般不配置BIOS,因此我們必須自行編寫完成這些工作的程序。這就是所需要的開機(jī)程序,在嵌入式中稱為BootLoader程序。系統(tǒng)加電復(fù)位后,幾乎所有的CPU都從由復(fù)位地址上取指令。因此在系統(tǒng)加電復(fù)位后,處理器將首先執(zhí)行BootLoader程序。啟動(dòng)程序BootLoader介紹BootLoader是系統(tǒng)加電后、操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序運(yùn)行之前,首先必須運(yùn)行的一段程序代碼。通過這段程序,為最終調(diào)用操作系統(tǒng)內(nèi)核、運(yùn)行用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境。對(duì)于嵌入式系統(tǒng)來說,有的使用操作系統(tǒng),也有的不使用操作系統(tǒng),但在系統(tǒng)啟動(dòng)時(shí)都必須運(yùn)行BootLoader,為系統(tǒng)運(yùn)行準(zhǔn)備好軟硬件環(huán)境。系統(tǒng)啟動(dòng)代碼完成基本軟硬件環(huán)境初始化后,對(duì)于有操作系統(tǒng)的情況下,啟動(dòng)操作系統(tǒng)、啟動(dòng)內(nèi)存管理、任務(wù)調(diào)度、加載驅(qū)動(dòng)程序等,最后執(zhí)行應(yīng)用程序或等待用戶命令;對(duì)于沒有操作系統(tǒng)的系統(tǒng)直接執(zhí)行應(yīng)用程序或等待用戶命令啟動(dòng)程序BootLoader介紹系統(tǒng)的啟動(dòng)通常有兩種方式,一種是可以直接從Flash啟動(dòng),另一種是可以將壓縮的內(nèi)存映像文件從Flash(為節(jié)省Flash資源、提高速度)中復(fù)制、解壓到RAM,再從RAM啟動(dòng)。當(dāng)電源打開時(shí),一般的系統(tǒng)會(huì)去執(zhí)行ROM(應(yīng)用較多的是Flash)里面的啟動(dòng)代碼。這些代碼是用匯編語言編寫的,其主要作用在于初始化CPU和板上的必備硬件如內(nèi)存、中斷控制器等。有時(shí)候用戶必須根據(jù)自己板子的硬件資源情況做適當(dāng)?shù)恼{(diào)整與修改。

主流bootloader介紹U-bootPPCbootARMbootBlobRedboot

3.嵌入式系統(tǒng)的開發(fā)方法嵌入式系統(tǒng)的設(shè)計(jì)準(zhǔn)則嵌入式系統(tǒng)的設(shè)計(jì)流程嵌入式系統(tǒng)的開發(fā)方法嵌入式系統(tǒng)的開發(fā)模式嵌入式系統(tǒng)的測(cè)試

3.1嵌入式系統(tǒng)的設(shè)計(jì)準(zhǔn)則 嵌入式系統(tǒng)設(shè)計(jì)不同于桌面系統(tǒng),它非常受制于功能和具體的應(yīng)用環(huán)境。所以嵌入式系統(tǒng)的設(shè)計(jì)具有一些特殊的要求。 嵌入式系統(tǒng)的設(shè)計(jì)要求:并發(fā)處理,及時(shí)響應(yīng)接口方便,操作容易穩(wěn)定可靠,維護(hù)簡便功耗管理,降低成本功能實(shí)用,便于升級(jí)

3.2嵌入式系統(tǒng)的設(shè)計(jì)流程嵌入式系統(tǒng)開發(fā)的最大特點(diǎn)就是需要軟硬件綜合開發(fā)。其原因在于:一方面,任何一個(gè)嵌入式產(chǎn)品都是軟件和硬件的結(jié)合體;另一方面,一旦嵌入式產(chǎn)品研發(fā)完成,軟件就固化在硬件環(huán)境中,嵌入式軟件是針對(duì)相應(yīng)的嵌入式硬件開發(fā)的,是專用的。嵌入式系統(tǒng)的這一特點(diǎn)決定了嵌入式應(yīng)用開發(fā)方法不同于傳統(tǒng)的軟件工程方法。

3.2.1嵌入式系統(tǒng)的開發(fā)流程3.2.2從生命周期看嵌入式系統(tǒng)的設(shè)計(jì)流程3.3嵌入式系統(tǒng)開發(fā)方法設(shè)計(jì)過程的明確目標(biāo)是建造一個(gè)有用的產(chǎn)品產(chǎn)品功能產(chǎn)品性能制造成本功耗特性上市時(shí)間嵌入式產(chǎn)品設(shè)計(jì)需要一個(gè)小組的技術(shù)人員協(xié)作完成設(shè)計(jì)過程會(huì)受內(nèi)外因素的影響而變化

3.3.1嵌入式系統(tǒng)分層設(shè)計(jì)模型

3.3.2嵌入式系統(tǒng)的軟硬件并行設(shè)計(jì)3.4嵌入式系統(tǒng)的開發(fā)模式網(wǎng)線串口線宿主機(jī)目標(biāo)機(jī)3.4嵌入式系統(tǒng)的開發(fā)模式嵌入式系統(tǒng)的軟件使用交叉開發(fā)平臺(tái)進(jìn)行開發(fā)。系統(tǒng)軟件和應(yīng)用軟件在主機(jī)開發(fā)平臺(tái)上開發(fā)系統(tǒng)軟件和應(yīng)用軟件在嵌入式硬件平臺(tái)上運(yùn)行。宿主機(jī)(Host)是用來開發(fā)嵌入式軟件的系統(tǒng)。目標(biāo)機(jī)(Target)是被開發(fā)的目的嵌入式系統(tǒng)。交叉編譯器(Cross-compiler)是進(jìn)行交叉平臺(tái)開發(fā)的主要軟件工具。它是運(yùn)行在一種處理器體系結(jié)構(gòu)上,但是可以生成在另一種不同的處理器體系結(jié)構(gòu)上運(yùn)行的目標(biāo)代碼的編譯器。

3.5嵌入式系統(tǒng)的測(cè)試測(cè)試目的:找到軟硬件設(shè)計(jì)中的錯(cuò)誤減少風(fēng)險(xiǎn)節(jié)約成本提高性能測(cè)試什么:功能調(diào)試(黑盒測(cè)試)壓力測(cè)試,邊界測(cè)試,異常測(cè)試錯(cuò)誤測(cè)試,隨機(jī)測(cè)試,性能測(cè)試覆蓋測(cè)試(白盒測(cè)試)語句測(cè)試,判定和分支測(cè)試,條件覆蓋二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建

Arm-Linux程序的開發(fā)并不像我們以前接觸的Windows程序開發(fā)那樣,關(guān)于平臺(tái)的搭建就繁瑣很多,所以在正式進(jìn)入程序開發(fā)之前先對(duì)這種開發(fā)模式進(jìn)行簡要介紹,讓一個(gè)即使沒有任何Linux開發(fā)經(jīng)驗(yàn)的程序員也能夠看懂后面的內(nèi)容。二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建宿主機(jī)和目標(biāo)機(jī)由于嵌入式Linux的開發(fā)資源有限,不可能在開發(fā)板上運(yùn)行開發(fā)和調(diào)試工具。通常需要交叉編譯調(diào)試的方式進(jìn)行,即“宿主機(jī)+目標(biāo)機(jī)(開發(fā)板)”的形式。目標(biāo)機(jī)和宿主機(jī)一般采用串口連接,亦可同時(shí)通過網(wǎng)口連接,如下圖所示。二、知識(shí)儲(chǔ)備嵌入式Linux應(yīng)用程序調(diào)試模型2.2Arm-Linux開發(fā)環(huán)境搭建二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建宿主機(jī)是運(yùn)行Linux的PC??梢允前惭b了Linux操作系統(tǒng)的本地機(jī),亦可以是Linux服務(wù)器(模型假定其IP為0)。宿主機(jī)和目標(biāo)機(jī)的處理器通常情況下都不會(huì)相同。宿主機(jī)需要建立適合于目標(biāo)機(jī)的交叉編譯環(huán)境。程序在宿主機(jī)上編譯—連接—定位,得到的可執(zhí)行文件則在目標(biāo)機(jī)運(yùn)行。二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建開發(fā)arm-linux程序至少需要三種系統(tǒng):

Windows系統(tǒng)

PC-Linux系統(tǒng)

Arm-Linux系統(tǒng)二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建

Windows系統(tǒng)主要用來文件傳送和一些簡單的文本文件編輯。這個(gè)系統(tǒng)其實(shí)并非必需,只是因?yàn)槟壳癙C機(jī)上最流行的系統(tǒng)仍然是Windows系統(tǒng),我們的很多關(guān)于PC的文件和數(shù)據(jù)的操作習(xí)慣都是在Windows系統(tǒng)上養(yǎng)成的,已經(jīng)對(duì)其形成了嚴(yán)重的依賴,所以Windows系統(tǒng)扮演著的“輔助開發(fā)系統(tǒng)”的角色。二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建

PC-Linux系統(tǒng)在此系統(tǒng)上安裝arm-Linux交叉編譯器后,就可以對(duì)代碼文本文件進(jìn)行編譯,生成可在arm-Linux系統(tǒng)中運(yùn)行可執(zhí)行程序。此系統(tǒng)就是前面所稱的“Linux宿主機(jī)”,我們對(duì)Linux程序的開發(fā)工作(包括代碼編寫、調(diào)試和編譯生成可執(zhí)行文件)基本上就是在此系統(tǒng)上進(jìn)行的。二、知識(shí)儲(chǔ)備

2.2Arm-Linux開發(fā)環(huán)境搭建

Arm-Linux系統(tǒng)

Arm-Linux程序運(yùn)行的平臺(tái)。此系統(tǒng)的硬件載體是一塊小型的嵌入式arm板,我們?cè)贚inux宿主機(jī)上開發(fā)好程序并編譯生成arm-linux可執(zhí)行程序后,將可執(zhí)行程序文件傳送到嵌入式arm板中,然后就可以在arm板上直接運(yùn)行此程序了。二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建三種系統(tǒng)的職能和聯(lián)系:二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建

關(guān)于開發(fā)語言,因?yàn)槟壳百徺I的Arm-Linux嵌入式板提供的編譯庫都是C/C++的,所以一般選擇C/C++進(jìn)行程序設(shè)計(jì)。

二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建

系統(tǒng)平臺(tái)搭建方式“三系統(tǒng)”的搭建方式,有兩種方法:三臺(tái)分立的單系統(tǒng)機(jī)器組合“三機(jī)器”組合模式或者一臺(tái)雙系統(tǒng)PC機(jī)和一臺(tái)單系統(tǒng)Arm板機(jī)器“兩機(jī)器”組合模式。“三機(jī)器”組合模式。將三個(gè)系統(tǒng)分別安裝在三臺(tái)機(jī)器上并將三臺(tái)機(jī)器組建局域網(wǎng)。

“兩機(jī)器”組合模式。在PC機(jī)上利用虛擬工作站可以同時(shí)運(yùn)行兩個(gè)系統(tǒng),虛擬機(jī)上的Linux系統(tǒng)基本可以完成所有的實(shí)體PC-Linux機(jī)器的所有任務(wù),當(dāng)然也能夠組建局域網(wǎng)。

日前主流為“兩機(jī)器”組合模式。

二、知識(shí)儲(chǔ)備“兩機(jī)器”組合模式圖

2.2Arm-Linux開發(fā)環(huán)境搭建二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建虛擬機(jī)VmwareWorkstation軟件安裝雙擊VMware-workstation-6.5.1-126130.exe安裝程序,出現(xiàn)如下圖所示安裝提示向?qū)В憾?、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建接下來按照安裝提示根據(jù)自己的需求進(jìn)行設(shè)置,點(diǎn)擊下一步進(jìn)行安裝,當(dāng)出現(xiàn)如下提示畫面時(shí)在SerialNumber中輸入SN.txt文本下的序列號(hào),點(diǎn)擊Enter完成虛擬機(jī)的安裝。二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)

二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)單擊NewVirtualMachine選項(xiàng),開始安裝Redhat操作系統(tǒng),由于不是光盤安裝,而是安裝包,所以在以下界面中選擇Installerdisc….選項(xiàng),如圖所示:二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)并點(diǎn)擊Browse找到Redhat安裝文件,點(diǎn)擊Next進(jìn)行安裝。接下來在選擇操作系統(tǒng)提示框中選擇Linux,如下圖所示:二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)下面的安裝向?qū)В窟x擇默認(rèn)即可,點(diǎn)擊Next,直至出現(xiàn)redhat安裝界面,如下圖所示:二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)在安裝畫面下敲擊回車,進(jìn)行安裝。在語言選擇界面中選擇簡體中文,如圖:二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)在接下來的安裝向?qū)е?,均選擇默認(rèn)選項(xiàng)即可,直接點(diǎn)擊下一步,進(jìn)行安裝,直至出現(xiàn)根口令輸入提示,如圖:二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)輸入密碼,此密碼為root根用戶的登錄密碼。注意:一定要記住所填的根口令,否則無法登錄。接著點(diǎn)擊下一步,直至出現(xiàn)如下的安裝界面,此時(shí)需等待系統(tǒng)的安裝。二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)單擊虛擬機(jī)菜單VM下的Settings選項(xiàng),出現(xiàn)如下圖所示的界面,選擇CD/DVD選項(xiàng),在Browse中選擇第二個(gè)安裝包,并將上面的Connect選項(xiàng)勾上,點(diǎn)擊OK進(jìn)行安裝,當(dāng)出現(xiàn)插入第三張光盤提示時(shí),安裝方法同上。二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝LINUX操作系統(tǒng)在安裝進(jìn)度完成后的提示界面中,選擇不創(chuàng)建引導(dǎo)盤,點(diǎn)擊下一步,接下來的安裝界面,全部選擇默認(rèn)選項(xiàng)即可,等待系統(tǒng)重啟,重啟后的安裝向?qū)Ц鶕?jù)個(gè)人需求配置即可,配置完后,等待登錄界面,如下所示:二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝Vmwaretools工具

Vmwaretools工具的安裝是為了實(shí)現(xiàn)Windows與Linux之間的文件傳輸。點(diǎn)擊虛擬機(jī)的菜單VM下的InstallVM….選項(xiàng),將第三個(gè)文件移到Linux系統(tǒng)下,打開終端,將剛移動(dòng)的文件進(jìn)行解壓,命令為“tarxzvf文件名”,解壓后進(jìn)入目標(biāo)文件夾,用命令“./vmware-install.pl”進(jìn)行Vmware-tools工具的安裝,出現(xiàn)提示后,直接回車,選擇默認(rèn)即可。單擊菜單VM下Settings后選擇Options選項(xiàng)卡下的Sharefolders,右則選擇Alwaysenabled,點(diǎn)擊add添加共享文件夾,此文件夾即為Windows與Linux共享的文件夾,可根據(jù)需要自行設(shè)置,此時(shí)Windows下共享文件夾下的內(nèi)容即可在Linux下查看與應(yīng)用,在Linux下共享文件夾的路徑為/mnt/hgfs/共享文件夾

二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建安裝交叉編譯工具具體過程如下:首先,將開發(fā)環(huán)境文件夾下的交叉編譯工具EABI-4.3.3_EmbedSky_20100610.tar.bz2放置Linux下,然后用命令“tarxjvf文件名”對(duì)其進(jìn)行解壓。其次,解壓后還需設(shè)置環(huán)境變量,在終端下輸入“vi/etc/profile”將打開profile文件,然后在“pathmunge/usr/local/sbin”下面設(shè)置交叉編譯環(huán)境的環(huán)境變量,加入“pathmunge/opt/EmbedSky/4.3.3/bin”,退出profile后,還需在終端下輸入“sourceprofile”使剛才設(shè)置的環(huán)境變量生效,至此表示交叉編譯環(huán)境搭建成功。二、知識(shí)儲(chǔ)備2.2Arm-Linux開發(fā)環(huán)境搭建將實(shí)驗(yàn)文件下的mooncar文件夾共享到Linux下,進(jìn)入mooncar文件夾下,運(yùn)行make,即對(duì)運(yùn)行程序mooncar進(jìn)行了編譯和運(yùn)行。二、知識(shí)儲(chǔ)備2.3Linux常用命令Linux系統(tǒng)具有非常豐富的命令,絕大多數(shù)命令具有大量的參數(shù),要對(duì)這些命令進(jìn)行詳細(xì)描述需要大量篇幅,在此,僅對(duì)嵌入式開發(fā)過程中可能用到的命令進(jìn)行簡單介紹。二、知識(shí)儲(chǔ)備

2.3Linux常用命令

Linux中的文件類型

Linux中有四種基本文件類型,分別為普通文件、目錄文件、符號(hào)鏈接文件和設(shè)備文件,此外,還有一些其他類型的文件,如命名管道文件、socket文件等??捎胒ile命令來識(shí)別指定文件的類型。普通文件如文本文件、源代碼文件、Shell腳本文件、二進(jìn)制的可執(zhí)行文件、二進(jìn)制的數(shù)據(jù)文件等。在圖形界面下,用與文件屬性相匹配的圖標(biāo)表示;在終端命令ls中,用“-”表示。目錄文件是儲(chǔ)存文件名的唯一地方,其中包括所屬的文件名、子目錄名及其指針。在圖形界面下,用文件夾圖標(biāo)表示;在終端命令ls中,用“d”表示。二、知識(shí)儲(chǔ)備2.3Linux常用命令

Linux中的文件類型符號(hào)鏈接文件是指向某個(gè)文件存儲(chǔ)位置的指針,也稱為軟鏈接文件或者符號(hào)鏈接文件,硬鏈接文件或者物理鏈接文件見本書后面的ln命令部分。在圖形界面下,文件名以斜體顯示;在終端命令ls中,用“l(fā)”表示,并且文件名后面以“->”指向所鏈接的文件。設(shè)備文件表示如磁盤、終端、打印機(jī)等設(shè)備的一類文件,以便用戶象操作文件一樣來操作設(shè)備,這些文件常放在/dev目錄內(nèi)。根據(jù)設(shè)備與系統(tǒng)內(nèi)存交換數(shù)據(jù)的方式將設(shè)備分為塊設(shè)備和字符設(shè)備,塊設(shè)備以數(shù)據(jù)塊為單位與系統(tǒng)內(nèi)存交換數(shù)據(jù),字符設(shè)備以單個(gè)字節(jié)為單位與系統(tǒng)內(nèi)存交換數(shù)據(jù)。在圖形界面下,分別用不同的圖標(biāo)區(qū)分塊設(shè)備與字符設(shè)備;在終端命令ls中,用“b”表示塊設(shè)備,用“c”表示字符設(shè)備。二、知識(shí)儲(chǔ)備2.3Linux常用命令

Linux文件系統(tǒng)中有一些常用的目錄,這些目錄中存放指定的內(nèi)容,如下所示:/etc:包含大多數(shù)引導(dǎo)和配置系統(tǒng)所需的系統(tǒng)配置文件,如:host.conf、httpd、fstab等,另外,還有大量的配置文件保存在子目錄中,如sshd_config保存在目錄/etc/ssh/中,lvm.conf保存在目錄/etc/lvm/中。/lib:包含c編譯程序所需要的函數(shù)庫,這些函數(shù)庫以二進(jìn)制文件形式存在。/usr:包含其它一些子目錄,如src、bin等,其中src子目錄中存放Linux的內(nèi)核源代碼,bin子目錄中存放已經(jīng)安裝的程序語言的命令,如javac、java、gcc、perl等。

二、知識(shí)儲(chǔ)備2.3Linux常用命令常用的目錄/var:包含一些經(jīng)常改變的文件,如日志文件。/tmp:存放用戶和程序所產(chǎn)生的臨時(shí)數(shù)據(jù)文件,系統(tǒng)會(huì)定時(shí)清除該目錄中的內(nèi)容。/bin:大多數(shù)普通用戶使用的命令文件存放在此。/home:普通用戶主目錄默認(rèn)存放在此,系統(tǒng)管理員增加新用戶時(shí),若沒有特別指明用戶主目錄,則系統(tǒng)會(huì)在此處自動(dòng)增加與用戶同名的目錄作為用戶主目錄。/dev:包含系統(tǒng)中的設(shè)備文件,如fd0、hda等。/mnt:其它文件系統(tǒng)的掛載點(diǎn)。二、知識(shí)儲(chǔ)備2.3Linux常用命令

在Linux系統(tǒng)中,針對(duì)某個(gè)文件,將操作該文件的用戶分為三類:文件的所有者,用單詞user的第一個(gè)字母u表示;同組用戶,即與文件的所有者具有相同組ID的用戶,用單詞group的第一個(gè)字母g表示;其他用戶,即與文件的所有者不同組的用戶,用單詞other的第一個(gè)字母o表示;此外,將上述三類用戶合起來稱為所有用戶,用單詞all的第一個(gè)字母a表示。

二、知識(shí)儲(chǔ)備2.3Linux常用命令文件操作權(quán)限文件有三種基本的操作權(quán)限,分別為:讀權(quán)限,表示用戶可以讀取文件的內(nèi)容,用單詞read的第一個(gè)字母r表示;寫權(quán)限,表示用戶可以修改文件內(nèi)容或者刪除文件,用單詞write的第一個(gè)字母w表示;執(zhí)行權(quán)限,表示用戶可以執(zhí)行文件,對(duì)于目錄文件,表示用戶可以進(jìn)入該目錄,用單詞execute的第二個(gè)字母x表示。二、知識(shí)儲(chǔ)備2.3Linux常用命令

對(duì)文件操作的三類用戶和文件的三種操作權(quán)限進(jìn)行組合,形成文件的授權(quán)屬性,分三組,每組三位,分別用字母表示用戶和操作權(quán)限;第一組表示文件主的操作權(quán)限,第二組表示同組用戶的操作權(quán)限,第三組表示其他用戶的操作權(quán)限,無操作權(quán)限的位置用符號(hào)“-”表示。舉例如下:

rwxr-xr--//文件主具有讀、寫和執(zhí)行權(quán)限;同組用戶具有讀和執(zhí)行權(quán)限;其他用戶僅有讀權(quán)限。

二、知識(shí)儲(chǔ)備2.3Linux常用命令

pwd

顯示當(dāng)前工作目錄。該命令無參數(shù),直接輸入命令pwd回車,會(huì)顯示當(dāng)前的工作目錄。

cd

進(jìn)入指定目錄。cd命令格式為:cd[路徑],其中路徑可以為相對(duì)路徑或者絕對(duì)路徑。舉例如下:cd/home/user//進(jìn)入/home/user目錄。cd///退回到根目錄。cd..//退回到上級(jí)目錄,當(dāng)前目錄為根目錄時(shí),該命令執(zhí)行不會(huì)改變當(dāng)前目錄。二、知識(shí)儲(chǔ)備2.3Linux常用命令

ls

列出指定目錄或者當(dāng)前目錄下的文件名。ls是用戶最常用的命令之一,因?yàn)橛脩艚?jīng)常需要查看某個(gè)目錄下有哪些文件。

ls命令格式為:ls[選項(xiàng)][文件名列表],其中選項(xiàng)是對(duì)ls命令要執(zhí)行功能的進(jìn)一步說明,文件表示要顯示的文件名。選項(xiàng)

-l:每行顯示一個(gè)文件的詳細(xì)信息,稱為以長格式顯示,該選項(xiàng)最常用。若不加該參數(shù),ls將在一行中顯示多個(gè)文件名,并以不同顏色來標(biāo)記不同類型的文件。該參數(shù)所顯示的文件信息依次是文件類型、授權(quán)屬性、鏈接數(shù)、文件屬主、文件屬組、文件大小、文件建立或最后修改時(shí)間、文件名。對(duì)于符號(hào)鏈接文件,顯示的文件名之后有“->”和指向的文件名;對(duì)于設(shè)備文件,其“文件大小”字段顯示主、次設(shè)備號(hào),而不是文件大小。二、知識(shí)儲(chǔ)備2.3Linux常用命令

ls

用ls-l命令顯示的文件信息中,開頭是由10個(gè)字符構(gòu)成的字符串,其中第一個(gè)字符表示文件類型,它可以是下述類型之一:

-:普通文件

d:目錄文件

l:符號(hào)鏈接文件

b:塊設(shè)備文件

c:字符設(shè)備文件

p:命名管道文件

s:socket文件二、知識(shí)儲(chǔ)備

2.3Linux常用命令

cp命令的功能是將給出的文件或目錄拷貝到指定的文件或目錄中,cp命令的格式為:cp[選項(xiàng)]源文件目標(biāo)文件,其中選項(xiàng)是對(duì)cp命令要執(zhí)行功能的進(jìn)一步說明,源文件表示要復(fù)制的文件,目標(biāo)文件表示源文件將被復(fù)制的目的目錄名或者目的文件名。

選項(xiàng)

-a:該選項(xiàng)通常在拷貝目錄時(shí)使用,它保留鏈接、文件屬性,并遞歸地拷貝子目錄中的內(nèi)容,其作用等于dpr選項(xiàng)的組合。

-d:拷貝時(shí)保留鏈接。

-p:除復(fù)制源文件的內(nèi)容外,還將把其最后修改時(shí)間和訪問權(quán)限也復(fù)制到目標(biāo)文件中。

-r:若源文件是目錄文件,cp將遞歸復(fù)制該目錄下所有的子目錄和文件,目標(biāo)文件名必須為一個(gè)目錄文件名。

-l:不作拷貝,只是鏈接文件。二、知識(shí)儲(chǔ)備2.3Linux常用命令

mvmv命令能夠?qū)⒅付ㄎ募蚰夸浉拿驅(qū)⒅付ㄎ募蚰夸涍M(jìn)行移動(dòng)。選項(xiàng)

-i:交互方式操作,如果mv操作將導(dǎo)致對(duì)已存在目標(biāo)文件的覆蓋,則系統(tǒng)要求用戶回答“y”進(jìn)行文件覆蓋或“n”放棄覆蓋。

-f:禁止交互操作,在mv操作要覆蓋已有的目標(biāo)文件時(shí)不給任何提示而直接覆蓋目標(biāo)文件。

-u:只有在源文件比目標(biāo)文件新,或者目標(biāo)文件不存在時(shí),才執(zhí)行移動(dòng)功能。

二、知識(shí)儲(chǔ)備2.3Linux常用命令

rm命令可以一次刪除一個(gè)或多個(gè)文件或目錄,對(duì)于鏈接文件,只是刪除鏈接,原有文件保持不變。

rm命令的格式為:rm[選項(xiàng)]文件,其中選項(xiàng)是對(duì)rm命令要執(zhí)行功能的進(jìn)一步說明,使用舉例

rm/home/user/test//刪除目錄/home/user/下的文件testrm–r/var/tmp///以遞歸形式刪除目錄/var/tmp/及其包含的文件和子目錄。

二、知識(shí)儲(chǔ)備2.3Linux常用命令

cat顯示文本文件的內(nèi)容。該命令后可以跟多個(gè)文本文件名,將依次顯示每個(gè)文件的內(nèi)容。cat命令的格式為:cat[選項(xiàng)]文件,其中選項(xiàng)是對(duì)cat命令要執(zhí)行功能的進(jìn)一步說明,文件表示要顯示內(nèi)容的文件名。使用舉例cat1.txt//在屏幕上顯示1.txt文件的內(nèi)容。

cat1.txt2.txt//依次顯示1.txt和2.txt文件的內(nèi)容。

二、知識(shí)儲(chǔ)備2.3Linux常用命令

chmodchmod命令用于改變文件的訪問許可權(quán)限。在chmod命令中,用戶和訪問許可權(quán)限既可以用字母表示,也可以用數(shù)字表示。選項(xiàng)

-R:表示許可權(quán)限的設(shè)置對(duì)指定目錄及其子目錄下的所有文件和目錄都有效。

-v:顯示命令執(zhí)行的信息使用舉例

chmod–va+x/home/user/test//給所有用戶追加文件/home/user/test的執(zhí)行權(quán)限,同時(shí)顯示命令執(zhí)行的信息。

chmod–v+s-t/home/user/test//給文件/home/user/test設(shè)置SUID和SGID位,去掉粘附位,同時(shí)顯示命令執(zhí)行的信息。

2.3Linux常用命令

tar是文件和目錄的備份命令,能夠?qū)⒅付ǖ奈募湍夸洿虬梢粋€(gè)歸檔文件即備份文件。tar命令的格式為:tar主選項(xiàng)[輔選項(xiàng)]文件名,其中,主選項(xiàng)是必須的,輔選項(xiàng)可選。

tar-cvfetc.tar/etc//將目錄/etc下的所有文件和子目錄備份打包到當(dāng)前目錄下的文件etc.tar中,并顯示打包過程。

tar-xZvfetc.tar.z//解壓縮并還原歸檔文件etc.tar.z中的文件和目錄。二、知識(shí)儲(chǔ)備二、知識(shí)儲(chǔ)備2.3Linux常用命令

mount命令的功能是掛載其它文件系統(tǒng)到當(dāng)前文件系統(tǒng)中,被掛載的文件系統(tǒng)必須是當(dāng)前Linux系統(tǒng)所能識(shí)別的系統(tǒng)。mount命令的格式為:mount[選項(xiàng)][掛載點(diǎn)],其中選項(xiàng)是對(duì)mount命令要執(zhí)行功能的進(jìn)一步說明,掛載點(diǎn)表示被掛載的文件系統(tǒng)的根目錄在當(dāng)前文件系統(tǒng)中的位置。選項(xiàng)

-a:掛載/etc/fstab文件中所列的全部文件系統(tǒng)。

-t:指定所要掛載的文件系統(tǒng)名稱,系統(tǒng)所支持的文件系統(tǒng)信息在/proc/filesystems文件中保存。

-o:后跟指定選項(xiàng),如nolock、iocharset等,選項(xiàng)之間用逗號(hào)分隔。

mount//查看當(dāng)前所掛載的文件系統(tǒng)信息。

mount–ttest/dev/hda2/mnt/test二、知識(shí)儲(chǔ)備2.3Linux常用命令

lsmodLinux系統(tǒng)為了保證能方便地支持新設(shè)備、新功能,而又不會(huì)無限擴(kuò)大內(nèi)核規(guī)模,對(duì)設(shè)備驅(qū)動(dòng)和文件系統(tǒng)部分采用了可動(dòng)態(tài)加載的模塊化設(shè)計(jì)方式,用戶在需要時(shí)可以動(dòng)態(tài)加載這些模塊,使用完畢后可以動(dòng)態(tài)卸載這些暫時(shí)不用的模塊,以減少內(nèi)核對(duì)系統(tǒng)內(nèi)存的占用。

二、知識(shí)儲(chǔ)備2.3Linux常用命令

insmodinsmod命令能夠?qū)⒁粋€(gè)可動(dòng)態(tài)加載的內(nèi)核模塊加載到內(nèi)核中。通常情況下,系統(tǒng)內(nèi)核模塊的文件后綴為“.ko”,而擴(kuò)展內(nèi)核模塊的文件后綴為“.o”,系統(tǒng)內(nèi)核模塊位于目錄“/lib/modules/2.6.18-8.10WS”的各個(gè)子目錄中,擴(kuò)展模塊位于用戶指定的目錄中。該命令只能由root用戶執(zhí)行。

insmod命令的格式為:insmod模塊文件名,舉例如下:

insmod/lib/modules/cat/cat.ko

二、知識(shí)儲(chǔ)備

2.3Linux常用命令

rmmodrmmod命令能夠?qū)?nèi)核中未被使用的模塊進(jìn)行卸載,正在使用的模塊不能被卸載,該命令只能由root用戶執(zhí)行。使用舉例

rmmod–Vrmmod–vfatrmmod–wvfloppy.ko二、知識(shí)儲(chǔ)備

2.4vi編輯器

vi是Linux系統(tǒng)中的全屏幕文本編輯器,是最常用的文本編輯工具軟件之一。vi是字符界面下最常用的編輯工具,其功能強(qiáng)大,占用資源少,但不支持鼠標(biāo)操作?,F(xiàn)在出現(xiàn)了圖形界面下的vi,稱為VIM,啟動(dòng)菜單選項(xiàng)為“開始→應(yīng)用程序→實(shí)用工具→VIM編輯器”,支持鼠標(biāo)操作,有類似其他軟件的菜單和快捷按鈕。字符界面下vi的操作規(guī)則可以用在圖形界面下的VIM中,本書主要介紹字符界面的vi。

vi有命令行狀態(tài)和文本編輯兩種狀態(tài),vi的命令行狀態(tài)的命令豐富,功能強(qiáng)大,在命令行狀態(tài)下按Insert鍵或者輸入i、I、a等字符進(jìn)入編輯狀態(tài),在編輯狀態(tài)按Esc鍵可以回到命令行狀態(tài)。二、知識(shí)儲(chǔ)備

2.4vi編輯器

vi編輯器使用命令vi啟動(dòng),啟動(dòng)方式有多種,如下所示:

vifilename//打開或新建文件filename,并將光標(biāo)置于第一行的行首。

vi+nfilename//打開文件filename,并將光標(biāo)置于第n行行首。

vi+filename//打開文件filename,并將光標(biāo)置于最后一行行首。

二、知識(shí)儲(chǔ)備2.4vi編輯器移動(dòng)光標(biāo)類命令h:光標(biāo)左移一個(gè)字符。l:光標(biāo)右移一個(gè)字符。Space鍵:光標(biāo)右移一個(gè)字符。Backspace鍵:光標(biāo)左移一個(gè)字符。k或Ctrl+p:光標(biāo)上移一行。j或Ctrl+n:光標(biāo)下移一行。Enter鍵:光標(biāo)下移一行。w或W:光標(biāo)右移一個(gè)字至下個(gè)字的字首。b或B:光標(biāo)左移一個(gè)字至上個(gè)字的字首。二、知識(shí)儲(chǔ)備

2.4vi編輯器移動(dòng)光標(biāo)類命令nG:光標(biāo)移至第n行行首。n+:光標(biāo)下移n行。n-:光標(biāo)上移n行。n$:光標(biāo)移至第n行行尾。H:光標(biāo)移至屏幕頂行。M:光標(biāo)移至屏幕中間行。L:光標(biāo)移至屏幕最后行。0:光標(biāo)移至當(dāng)前行行首。$:光標(biāo)移至當(dāng)前行行尾。二、知識(shí)儲(chǔ)備

2.4vi編輯器

屏幕類命令

Ctrl+u:屏幕向上滾動(dòng)半屏,同時(shí)光標(biāo)向上移動(dòng)到相應(yīng)行。

Ctrl+d:屏幕向下滾動(dòng)半屏,同時(shí)光標(biāo)向下移動(dòng)到相應(yīng)行。

Ctrl+b:屏幕向上滾動(dòng)一屏,同時(shí)光標(biāo)向上移動(dòng)到相應(yīng)行。

Ctrl+f:屏幕向下滾動(dòng)一屏,同時(shí)光標(biāo)向下移動(dòng)到相應(yīng)行。

nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部。2.4vi編輯器插入文本類命令

i:由命令行狀態(tài)進(jìn)入編輯狀態(tài),輸入的內(nèi)容插入到光標(biāo)前。

I:由命令行狀態(tài)進(jìn)入編輯狀態(tài),輸入的內(nèi)容插入到當(dāng)前行行首。

a:由命令行狀態(tài)進(jìn)入編輯狀態(tài),輸入的內(nèi)容插入到光標(biāo)后。

A:由命令行狀態(tài)進(jìn)入編輯狀態(tài),輸入的內(nèi)容插入到當(dāng)前行尾。

o:由命令行狀態(tài)進(jìn)入編輯狀態(tài),在當(dāng)前行之下新插入一行。

O:由命令行狀態(tài)進(jìn)入編輯狀態(tài),在當(dāng)前行之上新插入一行。

r:不進(jìn)入編輯狀態(tài)而用輸入的字符替換當(dāng)前字符。二、知識(shí)儲(chǔ)備

二、知識(shí)儲(chǔ)備2.4vi編輯器刪除命令

ndw或ndW:不進(jìn)入編輯狀態(tài),刪除光標(biāo)處開始及其后的n-1個(gè)字。

d0:不進(jìn)入編輯狀態(tài),刪除當(dāng)前光標(biāo)處至當(dāng)前行首的字符。

d$:不進(jìn)入編輯狀態(tài),刪除當(dāng)前光標(biāo)處至當(dāng)前行尾的字符。

ndd:不進(jìn)入編輯狀態(tài),刪除當(dāng)前行及其后的n-1行。

x:不進(jìn)入編輯狀態(tài),刪除光標(biāo)后的字符。

X:不進(jìn)入編輯狀態(tài),刪除光標(biāo)前的字符。

二、知識(shí)儲(chǔ)備2.4vi編輯器搜索及替換命令

/pattern:從光標(biāo)開始處向文件尾搜索pattern,并對(duì)搜索到的pattern加上標(biāo)記。

?pattern:從光標(biāo)開始處向文件首搜索pattern,并對(duì)搜索到的pattern加上標(biāo)記。

n:同一方向重復(fù)上一次搜索命令。

N:反方向重復(fù)上一次搜索命令。:s/p1/p2/g:將當(dāng)前行中所有p1均用p2代替。:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2代替。:g/p1/s//p2/g:將文件中所有p1均用p2替換。

二、知識(shí)儲(chǔ)備

2.4vi編輯器存盤與退出命令:w:當(dāng)前文件存盤。:efilename:打開文件filename進(jìn)行編輯。:x:保存當(dāng)前文件并退出。:q:退出vi。:q!:不保存文件內(nèi)容并退出vi。

二、知識(shí)儲(chǔ)備

2.4vi編輯器編輯狀態(tài)

vi編輯器從命令行狀態(tài)進(jìn)入到編輯狀態(tài)后就可以全屏幕的方式對(duì)文本內(nèi)容進(jìn)行編輯,編輯過程中可以通過鍵盤的“Insert”鍵在“插入”和“替換”狀態(tài)之間切換,可以使用鍵盤的4個(gè)方向鍵及其“Home”、“End”、“PageUp”、“PageDown”等鍵移動(dòng)光標(biāo),可以使用退格鍵和刪除鍵對(duì)文本內(nèi)容進(jìn)行刪除。編輯完成后按鍵盤的“Esc”鍵回到命令行狀態(tài)執(zhí)行命令“:wq”存盤退出,或者“:q!”不存盤退出。二、知識(shí)儲(chǔ)備2.5內(nèi)核移植與燒寫包括:Arm-Linux操作系統(tǒng)制作步驟Arm-Linux操作系統(tǒng)燒寫步驟二、知識(shí)儲(chǔ)備2.5內(nèi)核移植與燒寫Arm-Linux操作系統(tǒng)制作步驟在一個(gè)最基本的Linux操作系統(tǒng)應(yīng)該包括:引導(dǎo)程序、Linux內(nèi)核與文件系統(tǒng)三部分,其中引導(dǎo)程序(Bootloader)是系統(tǒng)啟動(dòng)或復(fù)位以后執(zhí)行的第一段代碼,它主要用來初始化處理器及外設(shè),然后調(diào)用Linux內(nèi)核。Linux內(nèi)核在完成系統(tǒng)的初始化之后需要掛載某個(gè)文件系統(tǒng)做為根文件系統(tǒng)。根文件系統(tǒng)是Linux系統(tǒng)的核心組成部分,它可以做為Linux系統(tǒng)中文件和數(shù)據(jù)的存儲(chǔ)區(qū)域,通常它還包括系統(tǒng)配置文件和運(yùn)行應(yīng)用軟件所需要的庫。二、知識(shí)儲(chǔ)備2.5內(nèi)核移植與燒寫Arm-Linux操作系統(tǒng)制作步驟制作步驟:建立交叉編譯環(huán)境編譯uboot及生成相應(yīng)文件(利用已有的)編譯linux內(nèi)核及生成相應(yīng)文件制作根文件

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論