ARM9采用哈佛體系結構,指令和數據分屬不同的總線,可以并行處理。在流水線上,ARM7是三級流水線,ARM9是五級流水線。由于結構不同,ARM7的執行效率低于ARM9。平時所說的ARM7、ARM9實際上指的是ARM7TDMI、ARM9TDMI軟核,這種處理器軟核并不帶有MMU和cache,不能夠運行諸如linux這樣的嵌入式操作系統。而ARM公司對這種架構進行了擴展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等帶有MMU和cache的處理器內核。本文首先介紹了ARM9的優勢及特點,其次闡述了ARM9要學的內容匯總以及書籍推薦,最后介紹了ARM9入門學習心得。
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的運行速度跑這種大型操作系統,實在有點吃力。再者兩者的應用領域明顯不同,也無此必要。
ARM9的特點
1、提供1.1MIPS/MHz的哈佛結構。
2、支持32位ARM指令集和16位Thumb指令集。
3、支持32位的高速AMBA總線接口。
4、全性能的MMU,支持WindowsCE,Linux,PalmOS等多種主流嵌入式操作系統。
5、MPU支持實時操作系統。
6、支持數據Cache和指令Cache,具有更高的指令和數據處理能力。大小都為16K.
ARM9要學的內容匯總
1、學習Linux系統安裝、常用命令、應用程序安裝。
2、學習Linux 下的 C 編程、這本書必學《UNIX 環境高級編程》、《UNIX網絡編程》,Rechard Stevens 寫的,C 高手大都學習過《C 和指針》、《C 缺陷與陷阱》、《高質量C/C++編程指南》、《C 專家編程》、《The C programming Language》
3、程序員大都要學:數據結構,嵌入式程序員數據結構必學!
4、底層開發人員大都要學:微機原理、計算機體系結構,嵌入式開發人員必學!
5、單片機可以讓一個從事軟件開發的人了解和如何操作硬件,有必要學,因為一開始就從 ARM 入手,不太現實!
6、ARM 體系結構,其中有匯編。
7、數字電路有必要學習,不然你在做底層開發時真的會不知道怎么看原理圖,起碼也得懂與或門吧。
8、ARM + Linux 應用程序開發。(前提是要有開發板)到此,你勉強算是在嵌入式Linux 這個行業有了初步入門了吧, 但遺憾的是這還遠遠不夠!
9、要做底層開發,就必須知道軟硬件之間是如何銜接和配合工作的,那么電子技術應該要好好學習了,很多時候會用到模擬電路知識,這是區別好手與菜鳥的不同之處之一。
10、Linux 下的匯編要學,這樣你才能真正了解你寫的程序是如何在一個特定的硬件上跑的。這是區別好手與菜鳥的不同之處之二。
11、TCP/IP 協議棧要學,所有的嵌入式高手都得掌握的東西,這是區別好手與菜鳥的不同之處之三。
12、有了這些東西,拿下 Linux 驅動已經不再話下,需要你去學習 Linux 內核源代碼和Linux驅動程序設計,這是一個技術升華。
14、各種 IC ,各種 bootloader 你能夠參與其開發設計。
ARM9入門書籍推薦
1、《ARM 嵌入式系統開發 ------ 軟件設計與優化》
2、《Arm程序分析與設計》
3、《鳥哥的Linux私房菜》
4、《Qt GUI Design》
5、《Linux 高級程序設計》
6、《構建嵌入式Linux系統》
ARM9入門學習心得
1、關于裸機程序下載的問題,使用J-link的情況下:
(1)、額外的電源線供電,開發板能正常工作的前提一定要有電源供電;
(2)、連接J-link,J-link在2440開發的過程中的作用有兩個:
第一、是用于下載2440.jflash程序,
第二、用于下載U-boot到Nor Flash
配合使用的,還有J-Flash ARM軟件,打開J-Flash ARM,然后open project-》s3c2440.jflash,加載該程序后,點擊Target-》connect,連接到ARM開發板,注意執行此操作之前,ARM開發板應該已經上電且和PC之間連接了J-Link,J-link需要提前裝好驅動。連接成功后,說明PC端軟件和ARM開發板之間已經建立連接,可以下載程序。
保證此時的Flash啟動開關在Nor flash上(上電之前就應該撥到Nor 啟動),然后open data file-》u-boot.bin,加載u-boot程序,加載成功后,選擇地址0,選擇Target-Auto,就會下載U-boot到開發板了。
2、下載U-boot的作用是為了開發板能被PC的控制指令引導,主要是為了交互,便于后期的程序下載。
3、使用串口終端secureCRT用于終端控制,Nor 啟動,上電后,會自動發送消息到該終端。此時用空格停止u-boot引導后,輸入n,,將會將裸機程序下載到Nand Flash,此時開發板就會接收到命令,等待PC下載裸機程序
4、使用DNW軟件,發送要下載的裸機程序。Transmit。
5、以上3和4可使用Linux下直接完成,使用minicom軟件和Linux下 的DNW軟件。
-
arm9
+關注
關注
2文章
290瀏覽量
54901
發布評論請先 登錄
相關推薦
評論