標(biāo)題: 學(xué)習(xí)ARM體系結(jié)構(gòu)的意義 [打印本頁]

作者: 2008pzh    時間: 2014-5-11 15:50
標(biāo)題: 學(xué)習(xí)ARM體系結(jié)構(gòu)的意義
學(xué)習(xí)ARM體系結(jié)構(gòu)的意義 


時常有些同學(xué)會問,在嵌入式開發(fā)中用得最多的是什么?我答,是C語言。那么最復(fù)雜的是什么?是嵌入式操作系統(tǒng)。只有Bootloader主要用到體系
結(jié)構(gòu)的知識嗎?嗯,那當(dāng)然。寫B(tài)ootloader似乎也太麻煩了點(diǎn),這要怎么開始啊?沒有人要求你從車輪開始造的,提供開發(fā)板的廠商必然會附送一個
具備基本功能的Bootloader的,你就分析它,按自己的意愿修改它,然后就可得到自己的Bootloader了。那豈不是學(xué)習(xí)體系結(jié)構(gòu)沒有多大用了?
換個視角來看。數(shù)學(xué)貴為科學(xué)的皇后,自打背上書包起,各類數(shù)學(xué)課本就沒有離開過我們,也是各類國家級大考的“常委”,可畢業(yè)后的工作實(shí)踐
中,究竟有多少次用到過那些高深的數(shù)學(xué)知識了?大多數(shù)人都會遲疑片刻,接著把腦袋搖得跟撥浪鼓似的。顯然這樣看問題有些膚淺了,數(shù)學(xué)是基礎(chǔ)
知識,是理論工具,在實(shí)際應(yīng)用中起著至關(guān)重要的作用,只不過我們沒有察覺或“站在了巨人的肩膀上”了。一次,我發(fā)現(xiàn)堆排序算法中改變排序
的路徑將略微減少比較的總次數(shù),并用計算機(jī)寫出了新算法程序,一次次的隨機(jī)數(shù)實(shí)驗(yàn)后,發(fā)現(xiàn)真的較傳統(tǒng)算法快約六分之一,可我老師說算法這
學(xué)問是需要數(shù)學(xué)理論推導(dǎo)為基礎(chǔ)的,實(shí)驗(yàn)數(shù)據(jù)再多也不過是數(shù)域上孤立的點(diǎn),是無法令人信服的。費(fèi)了九牛二虎之力,我列出一個長長的概率公式,
望著一層層跌套的求積求和符號,我汗顏了。數(shù)學(xué)不是沒用,是沒學(xué)好,不會用。
嵌入式系統(tǒng)和個人計算機(jī)的區(qū)別,很大程度就在體系結(jié)構(gòu)的差異上,若沒有認(rèn)真學(xué)過體系結(jié)構(gòu),怎能聲稱是嵌入式開發(fā)人員呢?現(xiàn)在ARM處理器應(yīng)用
如此的廣泛,若不清楚其與X86各自的特點(diǎn)和差異,又能夠說把嵌入式做到多好呢?
對那些將投入驅(qū)動開發(fā)領(lǐng)域的同學(xué)來說,有可能你將面對處理器最最原始的一面,每一個細(xì)節(jié)你都要認(rèn)真細(xì)致地對待,否則實(shí)驗(yàn)的結(jié)果常常會令你
沮喪好幾天,粉碎了你的自信心,更糟的是對硬件產(chǎn)生了永久性的損壞。而對那些在體系結(jié)構(gòu)上下過功夫的同學(xué)來說,明明白白地清楚處理器在
干什么,為什么會這樣,怎樣換一種方法來找到實(shí)驗(yàn)失敗的原因。在這里,不要指望百度和谷歌能幫上你什么忙,因?yàn)閷?shí)驗(yàn)環(huán)境很特別或太具體,
別人的仙丹放到這里來可能根本行不通。你必須自己摸索,自己慢慢積累經(jīng)驗(yàn),靠什么呢,靠最最基礎(chǔ)的體系結(jié)構(gòu)知識。
另一些同學(xué)聲稱將來會向應(yīng)用方向發(fā)展,將體系結(jié)構(gòu)“抽象掉了”,與系統(tǒng)是無關(guān)的。那是自然,不過這樣想的話,你就不能成為一個真正的高手
,你并不清楚處理器在你的那些語句背后是如何工作的,也就不清楚它究竟會采用一種什么方式去做這件工作,“大概是XXX樣子吧”,最后你對
它完成此工作的效率估計得沒譜,也根本不知道有何更高效的途徑,最后當(dāng)老板問你還有多大性能的優(yōu)化空間時,你只能祈禱編譯器各類優(yōu)化選項(xiàng)
的恩澤,而不敢拍著胸脯說硬件性能可以被榨干。
還有一些同學(xué)將致力于長期的嵌入式生涯,他們把這當(dāng)做一種樂趣,或者希望將來自己能系統(tǒng)地掌握,那么BSP將會長期伴隨他們。對于BSP的開發(fā)
,沒有扎實(shí)的體系結(jié)構(gòu)知識將是寸步難行的,多的道理也就不用再強(qiáng)調(diào)了
詳情請咨詢QQ265192121






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1