看到很多人,特別是初學(xué)者對(duì)嵌入式感興趣,但又十分困惑, 因此,我覺得有必要抽空寫些東西來(lái)“普渡眾生”,當(dāng)然我不是佛,用“普渡眾生”這個(gè)詞不大合適,但一時(shí)也找不到合適的詞了,先將就一下吧。 還有就是別叫我大神, 我不是大神,一介草民而已,只不過暫時(shí)在這方面懂得比有些人多一點(diǎn)而已,其它方面,他們比我懂,因此,大家是平等的。 既然是一介草民,因此,我也不打算遵循那么多條條框 框的限制了。我平生最討厭教科書以及其它一些所謂“老師”文鄒鄒的說教,因此,我打算用草民都能聽懂的話來(lái)寫這個(gè)嵌入式系列的東西,如果用這種方式你能把嵌入式搞明白的話,從一個(gè)側(cè)面也說明嵌入式其實(shí)并不是相象中的那么難,當(dāng)然也不簡(jiǎn)單。什么是嵌入式技術(shù)? 簡(jiǎn)單通俗直白的說:就是實(shí)現(xiàn)嵌入式系統(tǒng)的技術(shù)。 那什么是嵌入式系統(tǒng)? 網(wǎng)上或書上泛濫成災(zāi)的定義是:嵌入式系統(tǒng)是一種“完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計(jì)的專用計(jì)算機(jī)系統(tǒng)”,根據(jù)英國(guó)電氣工程師協(xié)會(huì)的定義,嵌入式系統(tǒng)為控制、監(jiān)視或輔助設(shè)備、機(jī)器或用于工廠運(yùn)作的設(shè)備。 看起很復(fù)雜很抽象,其實(shí)就兩點(diǎn): 第一,嵌入式系統(tǒng)是一個(gè)計(jì)算機(jī)系統(tǒng); 第二,嵌入式系統(tǒng)是針對(duì)某個(gè)應(yīng)用的,也就是通常所說的“專用的”。 也就是說,嵌入式系統(tǒng)說白了,就是針對(duì)某個(gè)應(yīng)用的計(jì)算機(jī)系統(tǒng)! 其它什么的:軟硬件可裁減的,對(duì)體積、功耗、成本等等有嚴(yán)格要求的這堆修飾詞,是做好一個(gè)嵌入式系統(tǒng)所需要考慮的因素,注意是做好,做好跟做出來(lái)是兩碼事,當(dāng)然,真要做好一個(gè)嵌入式系統(tǒng),考慮這些還遠(yuǎn)遠(yuǎn)不夠,還有其它很多的需要考慮。 PC或筆記本電腦是一個(gè)計(jì)算機(jī)系統(tǒng),只不過是一個(gè)通用的計(jì)算機(jī)系統(tǒng)。通用的意思,是指沒有特定的用途,什么都可以干,比如你可以拿筆記本來(lái)上網(wǎng),來(lái)聽歌,來(lái)看電影,來(lái)看照片,甚至還可以開發(fā)程序,做服務(wù)器等等,反正你想干什么就干什么,沒有強(qiáng)制的特定得用途。因此,是通用的,但嵌入式系統(tǒng)是專用的。 怎么來(lái)理解這個(gè)專用呢?專用就是針對(duì)某個(gè)特定的用途。 舉例: 剛才不是說在PC上可以看照片嗎?把看照片的應(yīng)用扣出來(lái),做成一個(gè)計(jì)算機(jī),就是針對(duì)某個(gè)應(yīng)用的計(jì)算機(jī)了,作出來(lái)后,這個(gè)計(jì)算機(jī)叫什么名字?叫數(shù)碼像框,電腦城一堆一堆的。按照剛才說的定義,不難看出,數(shù)碼像框是嵌入式系統(tǒng)! 把聽歌的應(yīng)用扣出來(lái),做成一個(gè)計(jì)算機(jī),這個(gè)計(jì)算機(jī)叫什么?叫mp3播放器。mp3播放器是針對(duì)聽音樂的計(jì)算機(jī),因此,mp3播放器也是嵌入式系統(tǒng)! 把看電影的應(yīng)用扣出來(lái),做成一個(gè)計(jì)算機(jī),這個(gè)計(jì)算機(jī)叫什么?叫mp4播放器。mp4播放器是針對(duì)看電影的計(jì)算機(jī),因此,mp4播放器也是嵌入式系統(tǒng)! 從這里,我們可以看得出來(lái)PC和嵌入式的一個(gè)大致區(qū)別了,對(duì)嵌入式系統(tǒng)應(yīng)該也有個(gè)大致的印象了。 但是不是說,嵌入式系統(tǒng)就只能基于PC來(lái)應(yīng)用呢? 不是,如果只是這樣的話,嵌入式就沒有存在的必要了,除了來(lái)自PC的應(yīng)用外,嵌入式系統(tǒng)更N的應(yīng)用,應(yīng)該就是除PC外的其它各行各業(yè)了! 我們吼了好多年的信息化社會(huì),信息化社會(huì),什么是信息化社會(huì)? 我認(rèn)為信息化社會(huì)不是指能上個(gè)網(wǎng)就是信息化社會(huì),而是所有東西都數(shù)字化、信息化,那才叫信息化社會(huì),這個(gè),應(yīng)該就是嵌入式的用武之地了! 還是先從每個(gè)人都見過的東西入手來(lái)說,這樣你好理解! POS機(jī)大家應(yīng)該都見過把,就是去超市,去家x福和沃x瑪買東西時(shí)結(jié)賬收銀的那個(gè)東西。哪個(gè)東西就是POS機(jī),典型的嵌入式系統(tǒng): 首先,POS機(jī)確實(shí)是一個(gè)計(jì)算機(jī),有主板有CPU有操作系統(tǒng)有軟件,具備計(jì)算機(jī)的核心特征,因此是一個(gè)計(jì)算機(jī)。其次,它是針對(duì)一個(gè)專門應(yīng)用的計(jì)算機(jī),這個(gè)專門應(yīng)用就是結(jié)賬收銀! 按照我們之前對(duì)嵌入式系統(tǒng)的定義,不難理解,POS機(jī)就是一個(gè)嵌入式系統(tǒng)! 我們把這個(gè)POS機(jī)(先說原始的大頭的POS機(jī))跟PC比較一下。大家對(duì)PC都很熟,因此,以PC為參照和基準(zhǔn)進(jìn)行比較! 我們從硬件和軟件兩方面來(lái)比較: 先說硬件:PC上的硬件有哪些呢?有CPU,內(nèi)存,顯卡,聲卡,硬盤,網(wǎng)卡,鍵盤,鼠標(biāo)等東西,如果我們要參照PC來(lái)做一個(gè)POS機(jī)的話,該怎么做呢? 看看POS機(jī)上都需要哪些東西:CPU,內(nèi)存是必須的,網(wǎng)卡、顯卡和鍵盤應(yīng)該是要的,聲卡和鼠標(biāo)應(yīng)該就沒太大的必要了。因此,如果要基于PC來(lái)做POS機(jī)的話,就要去掉聲卡和鼠標(biāo),同時(shí),增加一個(gè)顯示屏(pos機(jī)有兩個(gè)屏的),一個(gè)打印機(jī)。 去掉一些硬件,加一些硬件,這就是硬件可裁減。 硬件要工作,是需要軟件支持的,至少需要驅(qū)動(dòng)支持,因此,去掉一些硬件添加一些硬件,軟件也必須跟著要去掉一些,添加一些,這就是軟件可裁減, 加一起,就是嵌入式系統(tǒng)定義里面的那句話了:嵌入式系統(tǒng)是針對(duì)某個(gè)應(yīng)用,軟硬件可裁減的,xxxxxx的計(jì)算機(jī)系統(tǒng)。可裁減的意思理解了吧? 再說成本,這個(gè)非常敏感。簡(jiǎn)單舉個(gè)例你就一下明白了: 假如你是蘋果公司的老板,一年賣了1000萬(wàn)部IPHONE,如果iphone的某個(gè)元器件能夠省10塊錢,賣1000萬(wàn)部就節(jié)省1個(gè)億,節(jié)省出來(lái)的錢就相當(dāng)于是賺的錢,如果實(shí)在不想賺錢的話,拿去給員工發(fā)獎(jiǎng)金也好阿! 因此,嵌入式設(shè)備對(duì)成本是非常敏感的! 基于對(duì)成本敏感的這一點(diǎn),你要明白: 我們做嵌入式產(chǎn)品,不是哪個(gè)CPU 牛X 就用哪個(gè)CPU,而是要綜合多方面的因素來(lái)選擇,arm9能搞定的,就不用arm11,就不用a8,就不用a9。不選貴的,只選對(duì)的,然也! 最后,再說一下怎么來(lái)學(xué)習(xí)嵌入式? 在學(xué)習(xí)嵌入式之前,肯定要有C語(yǔ)言基礎(chǔ)。匯編基礎(chǔ)有沒有無(wú)所謂(就那么幾條匯編指令,用到了一看就會(huì))。 C語(yǔ)言要學(xué)到什么程度呢?越熟當(dāng)然越好,不熟的話也要具備基本技能。比如寫一個(gè)數(shù)組排序、輸入數(shù)字求和什么的。學(xué)C語(yǔ)言唯一的方法是多寫程序多練習(xí),編譯出錯(cuò)沒關(guān)系,自己去解決;執(zhí)行出錯(cuò)沒關(guān)系,自己去分析。 以前我是用VC來(lái)練習(xí)C語(yǔ)言的,經(jīng)常去嘗試著寫一些C語(yǔ)言競(jìng)賽的題目。它們是純C、純數(shù)學(xué)、純邏輯的題目,不涉及界面這些東西,很適合煅煉你的編程能力。 更多嵌入式學(xué)習(xí),歡迎咨詢余工Q 二八五九七八零二零三 |