第一篇:嵌入式學(xué)習(xí)總結(jié)
一.為什么學(xué)習(xí)嵌入式?
1.就業(yè)前景
近幾年,嵌入式系統(tǒng)產(chǎn)品日臻完善,并在全世界各行業(yè)得到廣泛應(yīng)用。嵌入式系統(tǒng)產(chǎn)品的研制和應(yīng)用已經(jīng)成為我國信息化帶動工業(yè)化、工業(yè)化促進(jìn)信息化發(fā)展的新的國民經(jīng)濟增長點。
隨著消費家電的智能化,嵌入式更顯重要。像我們平常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3Player、數(shù)字相機(DC)、數(shù)字?jǐn)z像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等,都是典型的嵌入式系統(tǒng)。據(jù)預(yù)測,隨著Internet的迅速發(fā)展和廉價微處理器的出現(xiàn),嵌入式系統(tǒng)將在日常生活里形成更大的應(yīng)用領(lǐng)域。
在中國,嵌入式軟件發(fā)展過程中,政府已充分認(rèn)識到它的重要作用,并在政策、資金等方面給予了大力支持。2004 年國家發(fā)改委、科技部、商務(wù)部聯(lián)合頒布的《當(dāng)前優(yōu)先發(fā)展的高技術(shù)產(chǎn)業(yè)化重點領(lǐng)域指南》,把嵌入式軟件產(chǎn)業(yè)作為國家發(fā)展的一個重要領(lǐng)域。
最近幾年來,中國的嵌入式軟件發(fā)展速度一直高于中國軟件產(chǎn)業(yè)的發(fā)展速度和全球嵌入式軟件的發(fā)展速度,在中國軟件產(chǎn)業(yè)和全球嵌入式軟件產(chǎn)業(yè)中所占的比重越來越大。目前,中國嵌入式軟件產(chǎn)業(yè)在整個軟件產(chǎn)業(yè)中的比重已經(jīng)超過了三分之一強。
從2006年至2010年,中國嵌入式軟件產(chǎn)業(yè)規(guī)模仍將保持快速增長態(tài)勢,年均復(fù)合增長率為25.8%,到2010年將達(dá)到3339.6億元的規(guī)模。
中國嵌入式軟件產(chǎn)業(yè)的發(fā)展面臨著良好的發(fā)展環(huán)境與機遇,這包括政府的重視與扶植、信息產(chǎn)業(yè)與傳統(tǒng)產(chǎn)業(yè)的融合機遇、壟斷局面尚未形成、中國制造的良好基礎(chǔ)、自由軟件運動的興起等等。
同時,不可否認(rèn)的是長期以來,由于人才、宣傳、資金等諸多問題以及嵌入式本身所特有的軟硬結(jié)合特性,使嵌入式軟件人才一直處于供不應(yīng)求的狀態(tài)。
2.自身發(fā)展
嵌入式系統(tǒng)是軟硬結(jié)合的東西,搞嵌入式開發(fā)的人有兩類。
一類是學(xué)電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設(shè)計,有時要開發(fā)一些與硬件關(guān)系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅(qū)動硬件,往上支持操作系統(tǒng)),最初級的硬件驅(qū)動程序等。他們的優(yōu)勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復(fù)雜軟件系統(tǒng)往往力不從心(例如嵌入式操作系統(tǒng)原理和復(fù)雜應(yīng)用軟件等)。
另一類是學(xué)軟件、計算機專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。如果我們學(xué)軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫B(tài)SP和硬件驅(qū)動程序。嵌入式硬件設(shè)計完后,各種功能就全靠軟件來實現(xiàn)了,嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作(目前有很多公司將硬件設(shè)計包給了專門的硬件公司,稍復(fù)雜的硬件都交給臺灣或國外公司設(shè)計,國內(nèi)的硬件設(shè)計力量很弱,很多嵌入式公司自己只負(fù)責(zé)
開發(fā)軟件,因為公司都知道,嵌入式產(chǎn)品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的),所以我們搞軟件的人完全不用擔(dān)心我們在嵌入式市場上的用武之地,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢。
二.怎樣學(xué)習(xí)嵌入式?
1.ARM嵌入式開發(fā)領(lǐng)域
包括什么?
軟件開發(fā)
操作系統(tǒng)以下的底層偏硬件驅(qū)動
在簡單操作系統(tǒng)如uC/OS-II之上的程序開發(fā)
不包括什么?
硬件設(shè)計
類似Linux這樣操作系統(tǒng)以上的純應(yīng)用開發(fā)
2.ARM基礎(chǔ)知識
#1.ARM體系結(jié)構(gòu):
Load/Store體系,Big/Little Endian大小端格式,RISC/CISC指令集,Pipeline流水線
#2.ARM工作模式:
7種工作模式:USR,SYS,SVC,IRQ,F(xiàn)IQ,UND,ABT;其中5種異常模式#3.ARM寄存器:
37個寄存器:R0-R12, R13(SP),R14(LR),R15(PC),CPSR(SPSR)
#4.ARM異常:
7種異常,異常向量表,異常優(yōu)先級,異常處理程序,處理器現(xiàn)場,現(xiàn)場的保存和恢復(fù)
#5.AMBA總線:
AHB(高性能總線),ASB(系統(tǒng)總線),APB(外設(shè)總線)
#6.ARM內(nèi)核技術(shù):
TrustZone,Jazelle,NEON,Thumb-2,SIMD,MMU,MPU
#7.JTAG標(biāo)準(zhǔn):
IEEE1149.1,TDI,TDO,TCK,TMS,TRST,邊界掃描鏈,H-jtag,Banyan,GiveIO
#8.ARM內(nèi)核分類:
ARM7TDMI,ARM926,StrongARM/XScale,ARM10,ARM11,Cortex-(A/R/M),SecurCore
#9.ARM匯編指令:
mov,add,sub,b,bl,ldr,str,ldmfd,stmfd,mrs,msr,swi,mrc,mcr#10.MMU內(nèi)存管理單元:
VA/PA,I-Cache/D-Cache,Write Buffer,Context Switch,CP15,TLB,AP,Domain
Access Control,Cache Coherence
#11.ARM芯片外設(shè)控制器:
Memory Controller(內(nèi)存控制器),WatchDog(看門狗),GPIO(通用IO),UART(串口),Timer(定時器),Interrupt Controller(中斷控制器),Nand Flash Controller,Clock & Power Management(時鐘和電源管理),DMA(直接存儲訪問),USB Controller,LCD controller,ADC,IIC,IIS,SPI,AC97,Camera,MMC/SD#12.最小系統(tǒng):
處理器,時鐘,電源,PLL鎖相環(huán),存儲器,通訊端口,外設(shè)接口
存儲器件
SRAM,SDRAM,Nor Flash,Nand Flash
#13.ARM處理器:
Samsung: S3C4510,S3C44B0,S3C2410,S3C2440,S3C6410,#14.SoC設(shè)計:
FPGA,CPLD,VHDL,Verilog
#15.ARM開發(fā)調(diào)試工具:
SDT,ADS1.2,AXD,RealView,KEIL MDK 4.11(RVMDK4.11)
make,hypertrm(超級終端),minicom
#16.ARM命令行工具:
armcc,armasm,armlink,fromelf
#17.嵌入式操作系統(tǒng):
VxWorks,RTLinux,uC/OS-II,WinCE/WM
#18.外設(shè)驅(qū)動程序:
volatile關(guān)鍵字,位操作bit,時序圖Timing,管腳功能Pin function,外設(shè)控制/數(shù)據(jù)/狀態(tài)寄存器
#19.程序的存儲,加載和運行:
RO段,RW段,ZI段,ro-base/rw-base,??臻g,堆空間,位置無關(guān)代碼PIC,啟動搬移代碼
3.核心概念
#1.寄存器:
ARM內(nèi)核寄存器
R0-R12R13(sp)R14(lr)R15(pc)CPSR, SPSR
ARM SoC 特殊功能寄存器
SFR(Special Function Register)
#2.地址
C程序中變量的“地址”:&a
SoC 特殊功能寄存器的“地址”:0x48000000
尋址方式里面的“地址”:ldr r0, [r1]
二進(jìn)制指令里面的“地址”:0xE59FF018
存儲芯片內(nèi)部的“地址” :0x4h
操作系統(tǒng)之上應(yīng)用程序的“(虛)地址”
CPLD器件對應(yīng)的“(假)地址”
#3.異常和中斷
異常是屬于ARM內(nèi)核體系結(jié)構(gòu)的概念
中斷是屬于ARM SoC處理器的概念
了解軟件中斷(SWI)是實現(xiàn)操作系統(tǒng)提供系統(tǒng)調(diào)用的重要手段
了解硬件中斷(例如Timer定時器)是實現(xiàn)操作系統(tǒng)時間片的重要手段
三.三個問題。
#1.為什么要編寫一個Bootloader?
從根本上掌握一個嵌入式開發(fā)板底層的軟硬件系統(tǒng)是怎樣運轉(zhuǎn)起來的時鐘頻率如何設(shè)置;看門狗所起作用,串口如何工作;通訊協(xié)議如何實現(xiàn);庫函數(shù);反匯編;函數(shù)??臻g。
#2.為什么要移植一個操作系統(tǒng)?
了解操作系統(tǒng)和底層硬件之間的依賴關(guān)系,知道哪些是移植相關(guān)的部分(即接口)定時器中斷(時鐘節(jié)拍);異常處理和現(xiàn)場保存恢復(fù);進(jìn)程,進(jìn)程控制塊;處理器現(xiàn)場;進(jìn)程的上下文切換;中斷級別的進(jìn)程切換。
#3.為什么要實現(xiàn)一個用戶應(yīng)用?
一個音頻播放器;DMA控制器,Interrupt中斷控制器;IIS 總線;UDA1341聲卡芯片驅(qū)動;WAV/Mp3 音頻文件格式;LCD液晶顯示驅(qū)動;一個U盤;USB協(xié)議;FAT文件系統(tǒng)格式;SCSI命令集;NandFlash存儲芯片驅(qū)動。
四.經(jīng)典語段
經(jīng)典語段一:
嵌入式技術(shù)的掌握是需要一個過程的實事求是的說,嵌入式技術(shù)的全面掌握是有相當(dāng)難度的??梢暂p輕松松學(xué)會嵌入式技術(shù)的說法是夸大其詞了。這個就像學(xué)英語一樣,學(xué)英語無論怎樣學(xué),不管是“瘋狂學(xué)”還是用新理念來學(xué),真正掌握的話還是需要一步步積累才能熟練掌握。在此,我建議大家不要想在幾天內(nèi)學(xué)會嵌入式,成為這方面的高手。這些想法本身是不太現(xiàn)實的。
現(xiàn)在我們需要做的是:
第一:把心踏實下來,做好打硬仗的準(zhǔn)備。
第二:注意學(xué)習(xí)方法。盡量不要走彎路,爭取一鼓作氣入門。一旦入門了以后呢就好辦了。嵌入式技術(shù)的掌握,本身呢就比較難,要是再走些彎路,時間上會浪費,甚至?xí)绊憣W(xué)習(xí)的信心。
經(jīng)典語段二:
最好的學(xué)習(xí)方法:
做項目。如果有機會大家跟著做一個難度適中的嵌入式項目,相信大家會很快入
門的。也就是說從實戰(zhàn)之中來獲得進(jìn)步。但是,在我們沒有嵌入式基礎(chǔ)之前,不容易獲得這樣的機會。也就是說,在能力沒有到之前,找個這樣的工作很難。很顯然呢,如果我們具備了獲得這樣一份工作的能力就好辦了。但是,恰恰是這個階段最難。這個就是搞嵌入式系統(tǒng)的門檻。這個門檻的跨越,我覺得是需要引導(dǎo)的。
比如有的人買了塊開發(fā)板自學(xué),上來就分析LINUX源碼,結(jié)果折騰了幾個月呢都沒有什么收獲。有的人只是掩飾了幾個基本的功能,放了個MP3,玩了下如何來瀏覽網(wǎng)頁,下不就不知道該怎么做了。實際上呢,學(xué)習(xí)一門技術(shù)是需要一個過程的,期間也會有一定的規(guī)律。我們具體來看。
五.學(xué)習(xí)心得
#1.嵌入式系統(tǒng)的范圍很廣,指具有計算能力的非PC系統(tǒng),即具有通常使用的個人電腦的全部或部分特質(zhì)的專用計算機系統(tǒng)。如生活中的PDA、手機、電視機頂盒、數(shù)字電視、數(shù)碼相機以及工業(yè)自動化儀表、醫(yī)療儀器等。它分硬件和軟件兩部分,硬件以嵌入式處理器(相當(dāng)于PC的CPU)為核心,外擴ROM、RAM(相當(dāng)于PC的硬盤、內(nèi)存條)、輸入/輸出設(shè)備(PC的鍵盤/顯示器)、各種通信接口(串口、USB、網(wǎng)絡(luò))等。軟件由引導(dǎo)程序(PC的BIOS)、嵌入式操作系統(tǒng)(相當(dāng)于PC機的Windows XP)和應(yīng)用程序(相當(dāng)于在Windows XP上運行的程序,如金山詞霸、Word等)3部分組成,或只有其中的某部分。
#2.目標(biāo)要明確,不要得過且過,不要追逐熱門的東西。不管在什么時候,心里都要有自己的信念和理想,不要被其他東西左右了自己。
#3要從興趣和競爭出發(fā),因為這才是你產(chǎn)生動力源的地方。學(xué)東西時,要讓自己先喜歡上它,要學(xué)會享受學(xué)習(xí)它的時間,喜歡喬***的都知道,喬老爺子最常說的一句就是要享受比賽的時間。因為只有你喜歡上了它,享受了它,才不會被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒有什么興趣學(xué)的時候可以先玩幾天,在回過頭來,或者用其他的方式來轉(zhuǎn)換。
#4要抱著一種十年方能磨一劍的心理,扎扎實實從基礎(chǔ)開始,不要為高速開發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。我個人認(rèn)為搞編程,英語和數(shù)學(xué)很重要,大家一定要時時的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識也要汲取,可以多接觸點天文,地理,人文方面的東西來補充自己。
第二篇:嵌入式學(xué)習(xí)總結(jié)
嵌入式學(xué)習(xí)總結(jié)
一.基本信息...................................................................................................................1 二.嵌入式系統(tǒng)的組成..................................................................................................1 三.嵌入式的操作系統(tǒng)特點..............................................................................................1 四.嵌入式系統(tǒng)的文件系統(tǒng)..........................................................................................2 五.嵌入式文件系統(tǒng)的特點...........................................................................................2
一.基本信息
嵌入式系統(tǒng)是一種專用的計算機系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是是由單個程序?qū)崿F(xiàn)整個控制邏輯。
二.嵌入式系統(tǒng)的組成
一個嵌入式系統(tǒng)裝置一般都由嵌入式計算機系統(tǒng)和執(zhí)行裝置組成,嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,由硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層組成。執(zhí)行裝置也稱為被控對象,它可以接受嵌入式計算機系統(tǒng)發(fā)出的控制命令,執(zhí)行所規(guī)定的操作或任務(wù)。執(zhí)行裝置可以很簡單,如手機上的一個微小型的電機,當(dāng)手機處于震動接收狀態(tài)時打開;也可以很復(fù)雜,如SONY 智能機器狗,上面集成了多個微小型控制電機和多種傳感器,從而可以執(zhí)行各種復(fù)雜的動作和感受各種狀態(tài)信息。
三.嵌入式的操作系統(tǒng)特點
(1)可裁剪性。支持開放性和可伸縮性的體系結(jié)構(gòu)。
(2)強實時性。EOS實時性一般較強,可用于各種設(shè)備控制中。(3)統(tǒng)一的接口。提供設(shè)備統(tǒng)一的驅(qū)動接口。
(4)操作方便、簡單、提供友好的圖形GUI和圖形界面,追求易學(xué)易用。
(5)強穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開始運行就不需要用戶過多的干預(yù)、這就要負(fù)責(zé)系統(tǒng)管理的EOS具有較強的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)的調(diào)用命令向用戶程序提供服務(wù)。
(6)固化代碼。在嵌入式系統(tǒng)中,嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計算機的ROM中。(7)更好的硬件適應(yīng)性,也就是良好的移植性
四.嵌入式系統(tǒng)的文件系統(tǒng)
通用操作系統(tǒng)的文件系統(tǒng)通常具有以下功能:
提供用戶對文件操作的命令。
提供用戶共享文件的機制。
管理文件的存儲介質(zhì)。
提供文件的存取控制機制,保障文件及文件系統(tǒng)的安全性。
提供文件及文件系統(tǒng)的備份和恢復(fù)功能。
提供對文件的加密和解密功能。
五.嵌入式文件系統(tǒng)的特點
1兼容性。嵌入式文件系統(tǒng)通常支持幾種標(biāo)準(zhǔn)的文件系統(tǒng),如FAT32、○JFFS2、YAFFS等。
2實時文件系統(tǒng)。除支持標(biāo)準(zhǔn)的文件系統(tǒng)外,為提高實時性,有些嵌入 ○式文件系統(tǒng)還支持自定義的實時文件系統(tǒng),這些文件系統(tǒng)一般采用連續(xù)的方式存儲文件。
3可裁剪、可配置。根據(jù)嵌入式系統(tǒng)的要求選擇所需的文件系統(tǒng),選擇 ○所需的存儲介質(zhì),配置可同時打開的最大文件數(shù)等。
4支持多種存儲設(shè)備。嵌入式系統(tǒng)的外存形式多樣了,嵌入式文件系統(tǒng) ○需方便的掛接不同存儲設(shè)備的驅(qū)動程序,具有靈活的設(shè)備管理能力。同時根據(jù)不同外部存儲器的特點,嵌入式文件系統(tǒng)還需要考慮其性能、壽命等因素,發(fā)揮不同外存的優(yōu)勢,提高存儲設(shè)備的可靠性和使用壽命。
總結(jié):嵌入式是一門以應(yīng)用為中心,以計算機為基礎(chǔ),軟件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計算機系統(tǒng)。
第三篇:嵌入式學(xué)習(xí)
最近很多朋友都在問,如何學(xué)習(xí)嵌入式,作為嵌入式的老鳥,我想我可以做一些嘮叨,嵌入式的入門門檻稍微高一點,但是再高的城墻也是小磚頭筑起來的,所以沒有必要因為門檻高就覺得很困難,一步一個腳印,貴在堅持就可以了。
學(xué)習(xí)嵌入式,該學(xué)習(xí)什么基本的知識呢?
首先C語言,這個是毋庸置疑的,不管是做嵌入式軟件還是硬件開發(fā)的人員,對C語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用C語言,你說不掌握它可以嗎?至于如何學(xué)習(xí)C語言,我想這些基礎(chǔ)的知識每個人都有自己的方法,關(guān)鍵要去學(xué)習(xí),看書也好,網(wǎng)上找些視頻看也好。很多人會問,C語言要學(xué)到怎么樣,我覺得這沒有標(biāo)準(zhǔn)的答案。我想至少你在明白了一些基礎(chǔ)的概念后,就該寫代碼了,動手才是最重要的,當(dāng)你動手了,遇到問題了,再反過來學(xué)習(xí),反過來查查課本,那時的收獲就不是你死看書能得到的。
其次,應(yīng)該對操作系統(tǒng)有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來分配資源的,系統(tǒng)如何來管理硬件的,當(dāng)然,不是看書就能把這些理解透,如果不是一時能理解,沒關(guān)系,多看看,結(jié)合以后的項目經(jīng)驗,會有更好的理解的。
還有應(yīng)該學(xué)習(xí)下linux或者wince下的編程,這些對以后做應(yīng)用的編程很有幫助,當(dāng)然,如果做手機的話,那可以學(xué)習(xí)MTK、塞班、Android等操作系統(tǒng),Android是以后發(fā)展的趨勢,現(xiàn)在很熱門,Android也是基于linux系統(tǒng)封裝的,所以建議先學(xué)習(xí)下linux。
還有,應(yīng)該學(xué)習(xí)下單片機或者ARM或者M(jìn)IPS,很多人說我沒有單片機的經(jīng)驗,直接學(xué)ARM可以嗎?我覺得那完全沒有問題的,當(dāng)然如果你學(xué)習(xí)過單片機,那最好不過了,以后學(xué)習(xí)ARM就更簡單了。
最后如果你把以上的知識都有所了解后,就該去閱讀閱讀一些優(yōu)秀的代碼,比如結(jié)合arm芯片手冊學(xué)習(xí)去學(xué)習(xí)下UBOOT的源代碼,了解下最小的系統(tǒng)開發(fā),那對你整個嵌入式開發(fā)的非常有幫助的,可以的話,還可以學(xué)習(xí)下linux的源代碼,當(dāng)然如果你直接閱讀2.6的代碼,我想你會很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
至于上面說的知識如何學(xué)習(xí)呢?每個人都應(yīng)該去找自己最好的方法,所謂的最好的方法就是最適合自己的方法。很多人看不進(jìn)書,那就去看看視頻吧。視頻也應(yīng)該要選擇,不是隨便看看,應(yīng)該要有所選擇,有所挑選。我也是這樣一路走過來的,不過我這人比較懶,我看不進(jìn)書,一看書我就想睡覺,所以這幾年我都是看視頻過來的,現(xiàn)在也算學(xué)有所成,但也不敢說是高手吧。
我在網(wǎng)上看到,有人把自己學(xué)習(xí)嵌入式的視頻總結(jié)出來,嵌入式系列實踐和視頻教程,大家可以看看網(wǎng)址http:///viewnews-8701 我仔細(xì)看了覺得很不錯,我本來也想整理下,可是奈何我自己的電腦硬盤空間才40G,沒有辦法,時間也是不夠,心有余而力不足,我不是在幫他做廣告,雖然要花錢,我覺得算不錯,至少自己不用去整理和花大量的時間去找資源,當(dāng)然如果網(wǎng)上有的下,你網(wǎng)速和硬盤都夠的話,我建議大家自己網(wǎng)上下也好。想想我自己該開始學(xué)的時候,那時視頻資源少之又少,我買書和買視頻至少花了幾千塊,但是我覺得那很值,至少我現(xiàn)在賺回來了很多知識。
最后,希望這篇文章對熱愛嵌入式,想致力于嵌入式開發(fā)的朋友有所幫助。送給大家一句簡單而又樸素的話,堅持就是勝利,貴在堅持!
第四篇:嵌入式總結(jié)
一、嵌入式系統(tǒng)原理與應(yīng)用課程總結(jié)
這個學(xué)期我學(xué)習(xí)了《嵌入式原理與應(yīng)用》這門課程,雖然這個學(xué)期馬上就要結(jié)束了,對嵌入式的學(xué)習(xí)也要告一段落了,但是我覺得收獲還是很大的。學(xué)期開始,我開始學(xué)習(xí)《嵌入式系統(tǒng)及應(yīng)用》,由于初次接觸嵌入式系統(tǒng),感覺蠻難的,所以收獲不是很大,很多的概念都比較模糊,真是茫然無從下手。雖然一個學(xué)期的學(xué)習(xí)時間不是很長,但是我覺得對嵌入式系統(tǒng)也已經(jīng)有了一個大致的概念。對它的歷史發(fā)展與今后展望都有了一定的了解。嵌入式技術(shù)的掌握是需要一個過程的,對嵌入式技術(shù)的全面掌握是有相當(dāng)難度的。如果要真正掌握的話還是需要一步步積累才能熟練掌握的,所以我們還要自己多加學(xué)習(xí),不斷地回顧以前學(xué)到的知識,也要吸收新的概念與技術(shù),使自己的學(xué)習(xí)目標(biāo)更加明確,學(xué)習(xí)方法更加完善,也體會到軟件開發(fā)的樂趣,更加清楚的認(rèn)識到自己在軟件開發(fā)學(xué)習(xí)上的一些不足之處,并且不斷改進(jìn)以提高自己。
通過這門課程的學(xué)習(xí),我了解到了嵌入式系統(tǒng)是一種為特定設(shè)備服務(wù),軟硬件可裁剪的計算機系統(tǒng),其英文名稱是Embedded System。嵌入式系統(tǒng)的范圍很廣,特點是形式變化多樣、體積小,可以靈活地適應(yīng)各種設(shè)備的需求。嵌入式系統(tǒng)的一些例子:手機、汽車、ATM、數(shù)字電視、醫(yī)療儀器等等。嵌入式系統(tǒng)本身是一個相對模糊的定義,一個手持的MP3和一個PC104的微型工業(yè)控制計算機都可以認(rèn)為是嵌入式系統(tǒng)??傮w來說,嵌入式系統(tǒng)是“用于控制,監(jiān)視或者輔助操作機器和設(shè)備的裝備”。一個典型的桌面Linux系統(tǒng)包括3個主要的軟件層---linux內(nèi)核、C庫和應(yīng)用程序代碼。內(nèi)核是唯一可以完全控制硬件的層,內(nèi)核驅(qū)動程序代表應(yīng)用程序與硬件之間進(jìn)行會話。內(nèi)核之上是C庫,負(fù)責(zé)把POSIX API轉(zhuǎn)換為內(nèi)核可以識別的形式,然后調(diào)用內(nèi)核,從應(yīng)用程序向內(nèi)核傳遞參數(shù)。應(yīng)用程序依靠驅(qū)動內(nèi)核來完成特定的任務(wù)。嵌入式系統(tǒng)的發(fā)展是從電子計算機誕生以來,計算機的發(fā)展有兩個方向:一個方向是體積大型化、處理能力超強的大型計算機;另一個是向體積小型化,功能多樣化的方向發(fā)展。嵌入式微控制器,即傳統(tǒng)意義上的單片機,是目前嵌入式系統(tǒng)的前身。一般都是8位或者16位。嵌入式微處理器,單片機的發(fā)展時間較早,處理能力很低,只能應(yīng)用在一些相對簡單的控制領(lǐng)域。嵌入式微處理器是近幾年隨著大規(guī)模集成電路發(fā)展同步發(fā)展起來的。與單片機相比,嵌入式微處理器的處理能力更強,主流的嵌入式微處理器都是32位的。嵌入式微處理器在一個芯片上集成了復(fù)雜的功能,有的還把常見的外部設(shè)備控制器也集成到芯片內(nèi)部。未來嵌入式系統(tǒng)的發(fā)展方向,隨著微電子技術(shù)的發(fā)展和電子制造工藝的進(jìn)步,嵌入式系統(tǒng)硬件的體積會不斷縮小,系統(tǒng)穩(wěn)定性也在不斷增強,可以把更多功能集成到一個芯片上;同時功耗方面也不斷降低。隨著網(wǎng)絡(luò)的普及和IPv6技術(shù)的應(yīng)用,IPv6技術(shù)主要解決了IPv4的IP地址數(shù)目緊缺的現(xiàn)狀,越來越多的嵌入式設(shè)備也會加入到網(wǎng)絡(luò)中。典型的嵌入式系統(tǒng)的組成,嵌入式系統(tǒng)包括硬件和軟件。硬件包括了嵌入式微處理器和嵌入式微控制器以及一些外圍元器件和外部設(shè)備;軟件包括了嵌入式操作系統(tǒng)和應(yīng)用軟件。嵌入式系統(tǒng)硬件種類繁多,有許多硬件和軟件的解決方案,不同嵌入式系統(tǒng)軟硬件很難兼容,軟件必須修改而硬件必須重新設(shè)計才能使用。不僅如此,我們還要對軟件硬件都有所了解才可以逐漸有所領(lǐng)悟。軟件和硬件都是學(xué)習(xí)嵌入式系統(tǒng)必不可少的方面。其實我現(xiàn)在仍舊覺得在嵌入式系統(tǒng)這個博大精深的領(lǐng)域,我還有太多太多不懂的地方,需要學(xué)習(xí)的還有很讀。嵌入式軟件開發(fā)應(yīng)用廣泛而且前景很好,目前正處于人才緊缺的關(guān)口,嵌入式技術(shù)在未來能夠得到更加廣泛的應(yīng)用。學(xué)好嵌入式,C語言很重要,所以感覺自己有必要在學(xué)習(xí)、積累一下這方面的知識。很多東西的學(xué)習(xí)不死一帆風(fēng)順也是比較耗時的,嵌入式也不例外,要想學(xué)好還必須下大力氣,還必須堅持。這次的課程讓我明確了一點:嵌入式開發(fā)對于提升我們的系統(tǒng)知識有很大的幫助,尤其是操作系統(tǒng)的知識。嵌入式系統(tǒng)開發(fā)對于我們的知識面要求非常的廣,且要有一定的深度。,平時上完理論課很少有時間上機進(jìn)行時間或者隔幾天才上機練習(xí),等到上機時一些東西可能遺忘了,比較耗費時間。在課上,有老師在前面演示我們感覺看得懂或感覺沒問題,可輪到我們獨立完成的時候,因為實際操作的少,跟著問題就來了。有些即使老師講了很多遍的問題,我們不會,老師還是會走進(jìn)我們給我們耐心的指導(dǎo),還給我們講一些學(xué)習(xí)的方法,一些軟件開發(fā)需要注意的細(xì)節(jié),讓我們知道自己在哪方面不足,需要加強,也讓我們了解到哪些需要認(rèn)真的學(xué)習(xí),那些是重點,不是沒有方向的亂學(xué)一通,結(jié)果什么也學(xué)不好。經(jīng)過這次的課程,我真真確確地感受到了嵌入式在我們生活中工作中的運用,這些軟件、程序能讓我們提高工作的效率,更直觀更便捷的切入主題。當(dāng)然,在學(xué)習(xí)的過程中并不是一帆風(fēng)順的,在這之中,因為要操作的東西很多,有時錯一步,后面的結(jié)果就無法顯示,而自己的水平根本檢查不出來是哪里出了錯。這時候,老師都會耐心的過來幫助我們一起去解決。在平時我們就需要好好的查閱書籍或者上網(wǎng)搜集相關(guān)資料去解決問題。
在了解了基礎(chǔ)知識的情況下,我們還同步地進(jìn)行了上機操作,當(dāng)然,其中遇到很多的難題,很多東西都是第一次接觸,又沒有很多的指導(dǎo)操作,主要還是要憑借自己去摸索練習(xí)。其中的困難可想而知。然而堅持就是勝利,只要堅持做下去。通過這學(xué)期的實驗課程,我感覺收獲還是蠻多的??赡芪覍τ谇度胧降闹R學(xué)習(xí)的還是不太多,但是這之外的東西收獲頗豐。它讓我學(xué)會了如何通過自己的努力去認(rèn)知一個新事物,更重要的是端正自己的學(xué)習(xí)態(tài)度,只有真正下功夫去學(xué)習(xí),才能有收獲,正所謂“一份耕耘,一份收獲”。沒有付出,何談回報呢?再者,通過這學(xué)期的實驗課程,我也學(xué)會了如何去分析問題,如何找出自己設(shè)計中的不足,繼而去排除解決問題,這就是一個自我學(xué)習(xí)的過程。當(dāng)我們通過實驗去學(xué)習(xí)理論知識時,自己動手得出的結(jié)論,不僅能加深我們對嵌入式的理解,更能加深我們對此的記憶。
其實,我覺得最大的收獲不僅僅是我學(xué)習(xí)到了多少知識,還有學(xué)習(xí)給我的感悟。首先是心態(tài)。一定要有一個積極的心態(tài),獨立解決問題的意識,培養(yǎng)扎實基礎(chǔ)的認(rèn)識。不要什么東西都感覺跟簡單,很多東西可能是看似簡單,就不去做了或者不屑一做,以至于性網(wǎng)上搜搜就可以了,這樣很不好。有自己的東西有自己的付出才會有程序運行成功時的喜悅和小自豪,這樣也有助于培養(yǎng)自己的興趣。要時刻牢記態(tài)度決定一切。其次是興趣,感覺學(xué)習(xí)工作中興趣很關(guān)鍵,只是一個引發(fā)人積極性的問題,有了興趣就自覺了,效率自然就高了。再次要敢于嘗試和挑戰(zhàn)。不要安于現(xiàn)成的程序,而且不要害怕失敗,在程序調(diào)試的過程中這點尤為重要,“發(fā)現(xiàn)出問題然后解決問題”是一個積累經(jīng)驗的過程,而且很高效。最后要不懈追求。對于源代碼進(jìn)行不斷的完善,要盡可能的實現(xiàn)課題所要求的功能。對于初學(xué)者或者開發(fā)較少的人來說,大量大寫程序還是有必要的,但同時要注意思考,理解其實現(xiàn)的內(nèi)在意義。還可以自己添加一些有意義的功能來實現(xiàn)。當(dāng)看到自己編寫的程序正常運行時,興趣也會隨之而來,樂此不疲,形成一個良性循環(huán)。我相信在以后的學(xué)習(xí)工作中,我也會端正自己的學(xué)習(xí)態(tài)度,一絲不茍的去對待每一件事。只有做好足夠的準(zhǔn)備,才能事半功倍!
第五篇:嵌入式linux驅(qū)動學(xué)習(xí)總結(jié)
調(diào)用gcc: export PATH=$PATH:/usr/local/arm/3.4.1/bin 用gcc編譯:arm-linux-gcc –o run adc.c 查看gcc: arm-linux-gcc –v 配置NFS 安裝NFS Ubuntu上默認(rèn)是沒有安裝NFS服務(wù)器的,首先要安裝NFS服務(wù)程序: sudo apt-get install nfs-kernel-server 安裝nfs-kernel-server時,apt會自動安裝nfs-common和portmap 這樣,宿主機就相當(dāng)于NFS Server 配置NFS(1)配置portmap 方法1: 編輯/etc/default/portmap, 將-i 127.0.0.1 去掉.我用的是第一種方法!但不知道具體什么意思
方法2: $ sudo dpkg-reconfigure portmap , 對Should portmap be bound to the loopback address? 選N.(2)配置/etc/hosts.deny 禁止任何host(主機)能和你的NFS服務(wù)器進(jìn)行NFS連接,加入: ### NFS DAEMONS portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL(3)配 置/etc/hosts.allow 允許那些你想要的主機和你的NFS服務(wù)器建立連接。下列步驟將允許任何IP地址以192.168.2開頭的主機(連接到NFS服務(wù)器上),也可以指定 特定的IP地址,加入: ### NFS DAEMONS portmap: 192.168.1.lockd: 192.168.1.rquotad: 192.168.1.mountd: 192.168.1.statd: 192.168.1./etc/hosts.deny 和 /etc/hosts.allow 設(shè)置對portmap的訪問.采用這兩個配置文件有點類似“mask”的意思.現(xiàn)在/etc/hosts.deny中禁止所有用
戶對portmap的訪問.再在/etc/hosts.allow 中允許某些用戶對portmap的訪問.sudo /etc/init.d/portmap restart 重啟portmap daemon.(4)配置/etc/exports NFS掛載目錄及權(quán)限由/etc/exports文件定義 比如我要將將我的/opt/FriendlyARM/mini2440/root_nfs目錄讓用戶的IP共享, 則在該文件末尾添加下列語句:
/opt/FriendlyARM/mini2440/root_nfs *(rw,sync,no_root_squash)NFS客戶端能夠共享NFS服務(wù)器/opt/FriendlyARM/QQ2440/root_nfs目錄內(nèi)容.且有讀,寫權(quán)限, 并且該用戶進(jìn)入
/opt/FriendlyARM/mini2440/root_nfs目錄后的身份為root 最好加上sync, 否則 $ sudo exportfs-r 時會給出警告, sync是NFS的默認(rèn)選項.showmount-e 查看NFS server的export list.若更改了/etc/exports, 運行 sudo exportfs-r 更新
運行 /etc/init.d/nfs-kernel-server restart 重啟nfs服務(wù)
(5)測試NFS 可以嘗試一下掛載本地磁盤
我前面開始時已經(jīng)提到了我的主機IP是192.168.1.101 我現(xiàn)在試把/opt/FriendlyARM/mini2440/root_nfs目錄掛載到/mnt目錄下 mount-t nfs 192.168.1.101:/opt/FriendlyARM/mini2440/root_nfs /mnt 就101和:之間的空格我耗了1個小時
成功的掛載上的話你會在/mnt目錄下看到root_nfs這個文件夾下的內(nèi)容
Arm9之家賬戶:李向陽85 安裝ncurses
ncurses是字符終端下屏幕控制的基本庫??赡芎芏嘈麻_發(fā)的程序都不使用了,不過如果要編譯一些老程序,還經(jīng)常遇得到。
安裝:ncurses
http://ftp.gnu.org/pub/gnu/ncurses/
./configure--without-debug #以及其它自己需要的參數(shù)
make
make install
3,繼續(xù)你的make menuconfig。
圖形界面出來了。
允 23:22:22
小允 23:22:31
小允 23:22:40 有用不同的名字的嗎 寂寞沙洲冷 23:22:42 我把drivers下面的Makefile都添加上了 寂寞沙洲冷 23:23:17 叫misc devices 可以吧 小允 23:23:22 2410ADC_driver和2410ADC_FEATURESnengbutongma 小允 23:23:33 這兩個必須一樣 小允 23:23:42 這才是Kconfig的工作原理