一. 談談ARM7與ARM9的區別: 本文是寫給準備學習ARM技術,而又沒想好要學ARM7還是ARM9或者對ARM7與ARM9的區別不是很了解的初學者。希望本文對你們有點用處。 由于職業的關系,經常會回答一些ARM初學者的問題,雖然問題千奇百怪,但以下兩個問題絕對很有代表性。 ARM7和ARM9都有些什么區別? 我準備學ARM,但不知是選ARM7還是ARM9好? 也許這些問題在大蝦們的眼里已不是問題,但對于初學者確實很具必要弄清楚。先說下:ARM7和ARM9的區別。 1. 時鐘頻率的提高 雖然ARM7和ARM9內核架構相同,但ARM7處理器采用3級流水線的馮·諾伊曼結構;,而ARM9采用5級流水線的哈佛結構。增加的流水線設計提高了時鐘頻率和并行處理能力。5級流水線能夠將每一個指令處理分配到5個時鐘周期內,在每一個時鐘周期內同時有5個指令在執行。在常用的芯片生產工藝下,ARM7一般運行在100MHz左右,而ARM9則至少在200MHz以上。 2 指令周期的改進 指令周期的改進對于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執行時指令的重疊,這實際上是程序本身的問題。對于采用最高級的語言,一般來說,性能的提高在30%左右。 3.MMU(內存管理單元) ARM7一般沒有MMU(內存管理單元),(ARM720T有MMU)。 ARM9一般是有MMU的,ARM9940T只有MPU ,不是一個完整的MMU。 這一條很重要,MMU單元是大型操作系統必需的硬件支持,如LINUX;WINCE等。這就是說,ARM7一般只能運行小型的實時系統如UCOS-II,eCOS等,而ARM9無此限制,一般的操作系統都可以移植。其實即使ARM720T能支持LINUX;WINCE等系統,也鮮有人用,因為以ARM7的運行速度跑這種大型操作系統,實在有點吃力。再者兩者的應用領域明顯不同,也無此必要。 4. ARM7比ARM9提供了更好的性能-功耗比。它包含了THUMB指令集快速乘法指令和ICE調試技術的內核。 5. 在從ARM7到ARM9的平臺轉變過程中,有一件事情是非常值得慶幸的,即ARM9E能夠完全地向后兼容ARM7上的軟件;并且開發人員面對的編程模型和架構基礎也保持一致。 二. 再來說一下初學者是選ARM7還是ARM9? 1)明確目的 學習為應用。你學ARM準備用在什么地方,如果是一般性控制系統或僅僅用來替換8獲16位機,ARM7顯然是首選;但如果用在網絡通信或大型的音視頻處理等,則ARM9較合適。 2)自身基礎 學習ARM的一般有三類人: 一是計算機專業的:這類人對操作系統等軟件知識了解較多,而對硬件知識知之甚少,顯然這類人學ARM的話還是做軟件好,可以基于LINUX;WINCE等操作系統的ARM9更能符合這類人的要求,當然也有很多計算機專業的人從事ARM7系統的應用軟件編寫的。但是搞底層的就很少了。 二是電子類專業的:這類人的硬件基礎了相對較好,相反操作系統,數據庫等軟件知識則差強人意。因此人多電子專業的人員都熟悉單片機,用單片編寫點小程序還不在話下,但要用ARM做較大型的軟件則有點力不從心,尤其是LINUX;WINCE這種操作系統不是三兩個月能輕松搞定的。建議這類人員如無特別需要還是從ARM7和小型操作系統學起。夠用就好,不要盲目追求高端。有一點要注意并不是從事ARM9的就比ARM7工資高,反而ARM7的就業機會比ARM9多,這很好理解,好比金字塔,越往頂肯越小。 三是軟硬件基礎都不太好的:這類人員有確實需要的,也有趕時髦的,如無大的學習決心還是參加培訓的好。當然也可曲線救國,搞懂單片機后,ARM7就不難了。 最后說一點關于開發板的,初學者買個開發板確實很有必要,但也要選擇合適的,初學者合適的就是,資料齊全,有配套教程和學習指導,再加上較及時的技術支持。 三、選UCOS?UCLINUX?LINUX?VXWORKS?還是當單片機用? 1 搞開發,工程設計,用UCOS,小巧,多進程,簡單,體現了ARM7的精髓。 2 LINUX 正根的嵌入式系統,LINUX消費與通信領域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發板1K達底吧。但是還是推薦選ARM9+LINUX 3 UCLINUX 算投機嵌入式系統:ARM7上可以跑,由有LINUX近親,學好可以比較方便的轉向LINUX,像我一樣的窮鬼用吧,呵呵 4 VXWORKS:學好后可以找到高薪工作,但工作機會本身并不比LINUX好找。 5 當單片機用:不推薦,因為對于學習來說多進程的系統設計才是ARM7的玩頭,至少你也要整個UCOS啊;有朋友問我先學這個當基礎不行嗎?那當然可以~~但我當時就用了1周搞定,就是我先的ADS在RAM中調試的筆記。后來我清空FLASH用的小段程序還是當時寫的LED閃爍程序呢。另外1周里其中還因為自己過于菜,沒把OM設置好導致晶陣不陣哈哈。這個是必須做的,但一帶而過。目標放的遠一點。 |