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