[推薦]嵌入式內(nèi)功.葵花寶典
欲練神功,揮刀自宮
話說東方不敗得到《葵花寶典》以后,迫不及待地翻開第一頁,面對“欲練神功,引刀自宮”八個大字倒吸了一口涼氣。苦苦思索了七天七夜之后終于痛下決心,喀嚓一聲,引刀自宮。強忍著身體的劇痛,懷著凝重的心情,東方不敗緩緩翻開了第二頁,映入眼簾的又是八個大字:“若不自宮,也能成功”,東方不敗當即暈死過去……好不容易,東方不敗終于醒來了,他想反正都自宮了,還是趕緊練功吧。於是他又緩緩的翻開第三頁,又是八個大字:“即使自宮,未必成功”。當場東方不敗又再昏死過去。
過了幾天,東方不敗再度醒來,他憤憤不平的繼續(xù)往下翻,他發(fā)現(xiàn)整本《葵花寶典》都在討論成功與自宮的關(guān)系。這時東方不敗已經(jīng)接近崩潰邊緣,在翻到倒數(shù)第二頁時,他終于看到了結(jié)論:“若要成功,不要自宮”。這時東方不敗又快昏過去了,但他心里想:不行,我要把最后一頁看完,那是我最后的希望,于是他還是緩緩翻開最后后頁,定眼一看:“如已自宮,就快進宮”。旁邊還有幾行小字:以上純屬開玩笑,如想練得神功,下輩子好好用功! 這時東方不敗已經(jīng)撐不住了,當下吐血而亡,一代梟雄就此殞落。
在我們這個時代,有太多的人想走捷徑,想練“葵花寶典”,結(jié)果卻落得一場空。蓋世神功我們要練,不過要踏踏實實地練,不能走自宮化為"人妖"的道路。嵌入式內(nèi)功我們必須練,而且要踏踏實實一招一勢地練。
技術(shù)顧問:徐老師:18948782706 qq:2269819323
現(xiàn)在大部分處理器生產(chǎn)商在銷售處理器的同時,還會提供開發(fā)環(huán)境IDE比如TI的CCS和AD的Visual Dsp++。另外你還可以從這些公司或其它專門開發(fā)DEMO板的公司購買開發(fā)板。這些DEMO一般會提供比較豐富的Demo程序,比如音視頻捕捉及顯示、I2C實例、DMA實例、CACHE實例等。這些DEMO程序基本上由應(yīng)用處理器生產(chǎn)商提供的底層驅(qū)動程序庫(driver lib)經(jīng)二次開發(fā)出來的。可見,對于一般的嵌入式底層軟件開發(fā)人員來說,基本就不用寫什么真正意義上的驅(qū)動程序,(除非你是為處理器生產(chǎn)商寫底層驅(qū)動的,畢竟這種大牛不多,也不屑于我的文章),只要參照DEMO程序或使用驅(qū)動程序接口開發(fā)適合自己項目的FIRMWARE就可以了。這種開發(fā)已經(jīng)演變成驅(qū)動應(yīng)用而不是驅(qū)動開發(fā),其難度相比從零開始的驅(qū)動開發(fā)已經(jīng)大大降低。我們國內(nèi)很大部分“驅(qū)動開發(fā)者”都在從事這樣的工作!不過也確實沒辦法,如果處理器生產(chǎn)商不提供已經(jīng)屏蔽硬件特性并降低底層軟件開發(fā)難度的驅(qū)動程序庫,估計許多的“驅(qū)動開發(fā)者”即使磕破頭皮絞盡腦汁也未必能搞定那些底層驅(qū)動。可見,要搞真正的驅(qū)動開發(fā),還是要到大公司去混!
一般來說,從事消費類或通信類產(chǎn)品研發(fā)的底層軟件開發(fā)的人員,如果不熟練掌握DMA、cache、PCI、代碼優(yōu)化(包括編譯器優(yōu)化)等技術(shù),那么他充其量還只是停留在應(yīng)用軟件或簡單系統(tǒng)開發(fā)的層面,就好比搞VC編程的還沒很好掌握MFC一樣,雖然進入了應(yīng)用軟件開發(fā)的殿壇,但還沒有把握這個領(lǐng)域的關(guān)鍵技術(shù)。這幾個東西在對嵌入式底層軟件軟件開發(fā)的人來說至關(guān)重要,可以說是高手和普通者的分水嶺。現(xiàn)在,一些高端的流媒體產(chǎn)品如手機研發(fā)、游戲設(shè)備開發(fā)、IPTV、數(shù)字視頻錄像機(DVR)、數(shù)字視頻廣播(DVB)、機頂盒、視頻會議系統(tǒng)、網(wǎng)絡(luò)監(jiān)控攝像頭以及可視電話,為了能夠處理大量的音視頻輸入輸出數(shù)據(jù)流,往往采用單一MPU(比如ARM和Motorola的PPC/Coldfire/68K)、單一DSP(專用媒體處理器TI C64x/DM642、AD Blackfin 5xx、Equator的BSP15以及Philips TriMedia)或MPU+DSP組合的單核多芯或單芯多核的處理結(jié)構(gòu)(TI OMAP/DaVinci和AD BF561)作為核心處理模塊(一般的MCU主要應(yīng)用于控制目的,不具備大批量數(shù)據(jù)處理的能力,所以比較少被應(yīng)用于這些產(chǎn)品)。另外,這些處理器為了能進一步提升數(shù)據(jù)處理能力往往都會配備DMA、CACHE、PCI等外設(shè)或接口(見下圖,DMA+CACHE+PCI的協(xié)作極大地提高了處理器與處理器之間以及處理器與外設(shè)的交互能力)。由此可見DMA、CACHE、PCI對于從事消費類或通信類研發(fā)的底層軟件開發(fā)的重要性可想而知(搞定了這些復(fù)雜有難度的外設(shè),其它的也不在話下了:))。
*DMA:它是個很好“奴才”。"主子"CPU讓它干什么它就干什么,任勞任怨。那些搬移大量外圍設(shè)備數(shù)據(jù)的“體力活”它統(tǒng)統(tǒng)包下,干完之后馬上中斷告訴"主子",而且兩者在同時使用數(shù)據(jù)總線時,卑微的“奴才”會讓著"主子"。這樣的好“奴才”誰會不要,誰會不喜歡呢?(DMA是很基本的東西,后面介紹的cache和PCI控制器也都會用到)。
*Cache:它是“加速器”。在目前的IT行業(yè),外圍內(nèi)存在訪問速率上與處理器嚴重脫節(jié)一直是不可回避的“瓶頸”問題。cache的引入無疑極大地緩解了這個問題。它使得處理器訪問cache就如同訪問外部內(nèi)存一樣快速,極大地提高了CPU處理數(shù)據(jù)的效率,所以被廣泛地應(yīng)用于流媒體設(shè)備中。
*PCI:當在一塊板子上有多塊處理器時,它們之間大量的數(shù)據(jù)交互就是可能存在問題,比如MPU從網(wǎng)絡(luò)接收的大塊連續(xù)數(shù)據(jù)發(fā)送給DSP處理時,就需要有足夠承載能力及帶寬的總線。PCI總線一般33M最大66M帶寬能力足以應(yīng)付決大部分的應(yīng)用。PCI給處理器之間架上了橋梁,使得MPU+DSP的應(yīng)用設(shè)計成為現(xiàn)實。
*Optimization:選擇合適的處理器并設(shè)計能夠充分發(fā)揮外設(shè)性能的板子是項目負責人和硬件人員干的事情,而軟件開發(fā)人員要干的就是編寫能夠充分發(fā)揮硬件功能的高效代碼。代碼優(yōu)化方法就是其中用于提高系統(tǒng)性能和代碼效率的有效技術(shù),是任何嵌入式開發(fā)人員都要努力掌握的技能。
技術(shù)交流qq:2269819323
歡迎大家進入嵌入式交流群244313073共同交流、學(xué)習(xí)