新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 地址重映射在ARM系統(tǒng)中的實(shí)現(xiàn)

        地址重映射在ARM系統(tǒng)中的實(shí)現(xiàn)

        作者: 時(shí)間:2013-04-12 來(lái)源:網(wǎng)絡(luò) 收藏

        近年來(lái),隨著32位芯片制造技術(shù)的不斷完善,制造成本不斷降低,國(guó)內(nèi)的32位MCU市場(chǎng)也開(kāi)始火爆起來(lái)。越來(lái)越多的工程師開(kāi)始將開(kāi)發(fā)目光從8位轉(zhuǎn)移到32位微處理器上,基于32位MCU的產(chǎn)品如雨后春筍般層出不窮,應(yīng)用領(lǐng)域涵蓋了掌上設(shè)備、家用電器、網(wǎng)絡(luò)設(shè)備、無(wú)線通信、工業(yè)控制等。在32位微控制芯片領(lǐng)域,ARM架構(gòu)的芯片占了近70%的市場(chǎng)。本文中所用到的處理器正是Samsung公司生產(chǎn)的基于ARM架構(gòu)的

        1 簡(jiǎn)介

        是一款基于以太網(wǎng)系統(tǒng)的高性價(jià)比、高性能的16/32位RISC微處理器。芯片部集成了8KB的Cache/SRAM和Ethernet控制器,減少了整個(gè)系統(tǒng)的成本。片外可擴(kuò)展ROM、Flash、SDRAM等存儲(chǔ)芯片,可以移植μClinux等復(fù)雜的操作系統(tǒng)。利用操作系統(tǒng)完善的TCP/IP協(xié)議棧充分發(fā)揮芯片的網(wǎng)絡(luò)功能

        S3C4510B芯片內(nèi)部沒(méi)有程序存儲(chǔ)器,所有程序都被存儲(chǔ)在片外擴(kuò)展的ROM和Flash中。開(kāi)始啟動(dòng)時(shí),存有啟動(dòng)代碼的ROM或Flash將被映射為0x00地址,系統(tǒng)從此開(kāi)始運(yùn)行。但在實(shí)際應(yīng)用中,為提高系統(tǒng)的實(shí)時(shí)性,加快代碼的執(zhí)行速度,系統(tǒng)啟動(dòng)后程序往往要被搬移到RAM中,因?yàn)镽AM的存取速度要比ROM快得多,這樣大大提升系統(tǒng)的性能。由于S3C4510B芯片中的入口地址被固定在0x00開(kāi)始的8個(gè)字中,系統(tǒng)只能將地址空間重新分配,把RAM映射到0x00地址處,這正是Remap的原因所在。

        S3C4510B內(nèi)部有幾個(gè)特殊寄存器,用于實(shí)現(xiàn)地址空間和芯片內(nèi)外存儲(chǔ)介質(zhì)的映射。這幾個(gè)寄存器的簡(jiǎn)介如下:

        SYSCFG:設(shè)置特殊寄存器的起始地址和片內(nèi)SRAM的起始地址。

        EXTDBWTH:設(shè)置各Bank寄存器所映射芯片的數(shù)據(jù)線寬度。

        ROMCON0~ROMCON5:設(shè)置系統(tǒng)內(nèi)片擴(kuò)展ROM和Flash的起始和終止地址。

        DRAMCON0~DRAMCON3:設(shè)置系統(tǒng)內(nèi)片外擴(kuò)展RAM的起始和終止地址。

        S3C4510B芯片內(nèi)特殊寄存器段的物理地址為0x3ff0000,各特殊寄存器的偏移地址詳見(jiàn)S3C4510B的技術(shù)手冊(cè)。

        2 S3C4510B系統(tǒng)中Remap的實(shí)現(xiàn)

        地址空間的重新分配,與處理器的硬件結(jié)構(gòu)緊密相關(guān)。總體來(lái)說(shuō),32位系統(tǒng)中的機(jī)制可以分為兩種情況:一類(lèi)是處理器內(nèi)部專門(mén)的寄存器可以完成Remap,這樣只需將Remap寄存器的相應(yīng)位置1,由硬件邏輯來(lái)完成地址的重新映射,如Atmel AT91xx系列;另一類(lèi)沒(méi)有專門(mén)的Remap控制寄存器,需要重新改寫(xiě)處理器內(nèi)部用于控制Memory起止地址的Bank寄存器,來(lái)實(shí)現(xiàn)Remap過(guò)程。S3C4510B屬于第二種情況。

        2.1 硬件系統(tǒng)結(jié)構(gòu)及地址分配

        為例于對(duì)的過(guò)程進(jìn)行分析,圖1給出了本人用于測(cè)試的基本S3C4510B的系統(tǒng)硬件結(jié)構(gòu)。文中給出的所有流程及代碼都經(jīng)過(guò)了測(cè)試。

        此系統(tǒng)是以Samsung公司給出的測(cè)試板為參考建立的,其中ROM的容量為512KB,8位數(shù)據(jù)總線,Remap前的地址范圍為0x0000000~0x0100000,Remap后的地址范圍為0x1000000~0x1100000;RAM的容量為16MB,32位數(shù)據(jù)總線,Remap前的地址范圍為0x0100000~0x100000,Remap后的地址范圍為0x0000000~0x1000000;Flash的容量為2MB,16位數(shù)據(jù)總線,Remap前后地址不變,均為0x1100000~0x1300000。Remap前后的地址映射關(guān)系如圖2所示。


        上一頁(yè) 1 2 3 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 吉木乃县| 射阳县| 曲周县| 永修县| 土默特右旗| 井研县| 秦安县| 淮阳县| 洛川县| 葫芦岛市| 巨野县| 屏山县| 大方县| 洱源县| 兴安县| 延安市| 晋宁县| 东方市| 南城县| 太康县| 讷河市| 玉门市| 凤翔县| 来凤县| 新建县| 辽源市| 柏乡县| 随州市| 武安市| 兰溪市| 台安县| 巴青县| 抚松县| 化州市| 噶尔县| 紫阳县| 泰来县| 鄂托克前旗| 即墨市| 罗源县| 浮梁县|