ARM9采用哈佛體系結(jié)構(gòu),指令和數(shù)據(jù)分屬不同的總線,可以并行處理。在流水線上,ARM7是三級(jí)流水線,ARM9是五級(jí)流水線。由于結(jié)構(gòu)不同,ARM7的執(zhí)行效率低于ARM9。平時(shí)所說的ARM7、ARM9實(shí)際上指的是ARM7TDMI、ARM9TDMI軟核,這種處理器軟核并不帶有MMU和cache,不能夠運(yùn)行諸如linux這樣的嵌入式操作系統(tǒng)。而ARM公司對(duì)這種架構(gòu)進(jìn)行了擴(kuò)展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等帶有MMU和cache的處理器內(nèi)核。本文首先介紹了ARM9的優(yōu)勢(shì)及特點(diǎn),其次闡述了ARM9要學(xué)的內(nèi)容匯總以及書籍推薦,最后介紹了ARM9入門學(xué)習(xí)心得。
ARM9的優(yōu)勢(shì)
1)時(shí)鐘頻率的提高
雖然ARM7和ARM9內(nèi)核架構(gòu)相同,但ARM7處理器采用3級(jí)流水線的馮·諾伊曼結(jié)構(gòu);,而ARM9采用5級(jí)流水線的哈佛結(jié)構(gòu)。增加的流水線設(shè)計(jì)提高了時(shí)鐘頻率和并行處理能力。5級(jí)流水線能夠?qū)⒚恳粋€(gè)指令處理分配到5個(gè)時(shí)鐘周期內(nèi),在每一個(gè)時(shí)鐘周期內(nèi)同時(shí)有5個(gè)指令在執(zhí)行。在常用的芯片生產(chǎn)工藝下,ARM7一般運(yùn)行在100MHz左右,而ARM9則至少在200MHz以上。
2)指令周期的改進(jìn)
指令周期的改進(jìn)對(duì)于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時(shí)指令的重疊,這實(shí)際上是程序本身的問題。對(duì)于采用最高級(jí)的語言,一般來說,性能的提高在30%左右。
3)MMU(內(nèi)存管理單元)
ARM7一般沒有MMU(內(nèi)存管理單元),(ARM720T有MMU)。
ARM9一般是有MMU的,ARM9940T只有MPU ,不是一個(gè)完整的MMU。
這一條很重要,MMU單元是大型操作系統(tǒng)必需的硬件支持,如LINUX;WINCE等。這就是說,ARM7一般只能運(yùn)行小型的實(shí)時(shí)系統(tǒng)如UCOS-II,eCOS等,而ARM9無此限制,一般的操作系統(tǒng)都可以移植。其實(shí)即使ARM720T能支持LINUX;WINCE等系統(tǒng),也鮮有人用,因?yàn)橐訟RM7的運(yùn)行速度跑這種大型操作系統(tǒng),實(shí)在有點(diǎn)吃力。再者兩者的應(yīng)用領(lǐng)域明顯不同,也無此必要。
ARM9的特點(diǎn)
1、提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。
2、支持32位ARM指令集和16位Thumb指令集。
3、支持32位的高速AMBA總線接口。
4、全性能的MMU,支持WindowsCE,Linux,PalmOS等多種主流嵌入式操作系統(tǒng)。
5、MPU支持實(shí)時(shí)操作系統(tǒng)。
6、支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。大小都為16K.
ARM9要學(xué)的內(nèi)容匯總
1、學(xué)習(xí)Linux系統(tǒng)安裝、常用命令、應(yīng)用程序安裝。
2、學(xué)習(xí)Linux 下的 C 編程、這本書必學(xué)《UNIX 環(huán)境高級(jí)編程》、《UNIX網(wǎng)絡(luò)編程》,Rechard Stevens 寫的,C 高手大都學(xué)習(xí)過《C 和指針》、《C 缺陷與陷阱》、《高質(zhì)量C/C++編程指南》、《C 專家編程》、《The C programming Language》
3、程序員大都要學(xué):數(shù)據(jù)結(jié)構(gòu),嵌入式程序員數(shù)據(jù)結(jié)構(gòu)必學(xué)!
4、底層開發(fā)人員大都要學(xué):微機(jī)原理、計(jì)算機(jī)體系結(jié)構(gòu),嵌入式開發(fā)人員必學(xué)!
5、單片機(jī)可以讓一個(gè)從事軟件開發(fā)的人了解和如何操作硬件,有必要學(xué),因?yàn)橐婚_始就從 ARM 入手,不太現(xiàn)實(shí)!
6、ARM 體系結(jié)構(gòu),其中有匯編。
7、數(shù)字電路有必要學(xué)習(xí),不然你在做底層開發(fā)時(shí)真的會(huì)不知道怎么看原理圖,起碼也得懂與或門吧。
8、ARM + Linux 應(yīng)用程序開發(fā)。(前提是要有開發(fā)板)到此,你勉強(qiáng)算是在嵌入式Linux 這個(gè)行業(yè)有了初步入門了吧, 但遺憾的是這還遠(yuǎn)遠(yuǎn)不夠!
9、要做底層開發(fā),就必須知道軟硬件之間是如何銜接和配合工作的,那么電子技術(shù)應(yīng)該要好好學(xué)習(xí)了,很多時(shí)候會(huì)用到模擬電路知識(shí),這是區(qū)別好手與菜鳥的不同之處之一。
10、Linux 下的匯編要學(xué),這樣你才能真正了解你寫的程序是如何在一個(gè)特定的硬件上跑的。這是區(qū)別好手與菜鳥的不同之處之二。
11、TCP/IP 協(xié)議棧要學(xué),所有的嵌入式高手都得掌握的東西,這是區(qū)別好手與菜鳥的不同之處之三。
12、有了這些東西,拿下 Linux 驅(qū)動(dòng)已經(jīng)不再話下,需要你去學(xué)習(xí) Linux 內(nèi)核源代碼和Linux驅(qū)動(dòng)程序設(shè)計(jì),這是一個(gè)技術(shù)升華。
14、各種 IC ,各種 bootloader 你能夠參與其開發(fā)設(shè)計(jì)。
ARM9入門書籍推薦
1、《ARM 嵌入式系統(tǒng)開發(fā) ------ 軟件設(shè)計(jì)與優(yōu)化》
2、《Arm程序分析與設(shè)計(jì)》
3、《鳥哥的Linux私房菜》
4、《Qt GUI Design》
5、《Linux 高級(jí)程序設(shè)計(jì)》
6、《構(gòu)建嵌入式Linux系統(tǒng)》
ARM9入門學(xué)習(xí)心得
1、關(guān)于裸機(jī)程序下載的問題,使用J-link的情況下:
(1)、額外的電源線供電,開發(fā)板能正常工作的前提一定要有電源供電;
(2)、連接J-link,J-link在2440開發(fā)的過程中的作用有兩個(gè):
第一、是用于下載2440.jflash程序,
第二、用于下載U-boot到Nor Flash
配合使用的,還有J-Flash ARM軟件,打開J-Flash ARM,然后open project-》s3c2440.jflash,加載該程序后,點(diǎn)擊Target-》connect,連接到ARM開發(fā)板,注意執(zhí)行此操作之前,ARM開發(fā)板應(yīng)該已經(jīng)上電且和PC之間連接了J-Link,J-link需要提前裝好驅(qū)動(dòng)。連接成功后,說明PC端軟件和ARM開發(fā)板之間已經(jīng)建立連接,可以下載程序。
保證此時(shí)的Flash啟動(dòng)開關(guān)在Nor flash上(上電之前就應(yīng)該撥到Nor 啟動(dòng)),然后open data file-》u-boot.bin,加載u-boot程序,加載成功后,選擇地址0,選擇Target-Auto,就會(huì)下載U-boot到開發(fā)板了。
2、下載U-boot的作用是為了開發(fā)板能被PC的控制指令引導(dǎo),主要是為了交互,便于后期的程序下載。
3、使用串口終端secureCRT用于終端控制,Nor 啟動(dòng),上電后,會(huì)自動(dòng)發(fā)送消息到該終端。此時(shí)用空格停止u-boot引導(dǎo)后,輸入n,,將會(huì)將裸機(jī)程序下載到Nand Flash,此時(shí)開發(fā)板就會(huì)接收到命令,等待PC下載裸機(jī)程序
4、使用DNW軟件,發(fā)送要下載的裸機(jī)程序。Transmit。
5、以上3和4可使用Linux下直接完成,使用minicom軟件和Linux下 的DNW軟件。
-
arm9
+關(guān)注
關(guān)注
2文章
290瀏覽量
55025
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論