<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32的存儲(chǔ)器映射詳解

          STM32的存儲(chǔ)器映射詳解

          作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
          存儲(chǔ)器映射是指把芯片中或芯片外的FLASH,RAM,外設(shè),BOOT,BLOCK等進(jìn)行統(tǒng)一編址。即用地址來(lái)表示對(duì)象。這個(gè)地址絕大多數(shù)是由廠(chǎng)家規(guī)定好的,用戶(hù)只能用而不能改。用戶(hù)只能在掛外部RAM或FLASH的情況下可進(jìn)行自定義。

          Cortex-M3支持4GB的存儲(chǔ)空間,它的存儲(chǔ)系統(tǒng)采用統(tǒng)一編址的方式,程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、寄存器被組織在4GB的線(xiàn)性地址空間內(nèi),以小端格式(little-endian)存放。由于Cortex-M3是32位的內(nèi)核,因此其PC指針可以指向2^32=4G的地址空間,也就是0x0000_0000——0xFFFF_FFFF這一大塊空間。見(jiàn)圖1:

          本文引用地址:http://www.ex-cimer.com/article/201611/318061.htm



          圖1 Cortex-M3的存儲(chǔ)器映射

          Cortex-M3內(nèi)核將0x0000_0000——0xFFFF_FFFF這塊4G大小的空間分成8大塊:代碼、SRAM、外設(shè)、外部RAM、外部設(shè)備、專(zhuān)用外設(shè)總線(xiàn)-內(nèi)部、專(zhuān)用外設(shè)總線(xiàn)-外部、特定廠(chǎng)商(見(jiàn)圖1)。這就導(dǎo)致了,使用該內(nèi)核的芯片廠(chǎng)家必須按照這個(gè)進(jìn)行各自芯片的存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)。



          圖2 Cortex-M3與中密度stm32的存儲(chǔ)器映射對(duì)比

          圖中可以很清晰的看到,STM32的存儲(chǔ)器結(jié)構(gòu)和Cortex-M3的很相似,不同的是,STM32加入了很多實(shí)際的東西,如:Flash、SRAM等。只有加入了這些東西,才能成為一個(gè)擁有實(shí)際意義的、可以工作的處理芯片——STM32。STM32的存儲(chǔ)器地址空間被劃分為大小相等的8塊區(qū)域,每塊區(qū)域大小為512MB(如:0x20000000~0x40000000)。對(duì)STM32存儲(chǔ)器知識(shí)的掌握,實(shí)際上就是對(duì)Flash和SRAM這兩個(gè)區(qū)域知識(shí)的掌握。

          不同類(lèi)型的STM32單片機(jī)的SRAM大小是不一樣的,但是他們的起始地址都是0x2000 0000,終止地址都是0x2000 0000+其固定的容量大小。SRAM的理解比較簡(jiǎn)單,其作用是用來(lái)存取各種動(dòng)態(tài)的輸入輸出數(shù)據(jù)、中間計(jì)算結(jié)果以及與外部存儲(chǔ)器交換的數(shù)據(jù)和暫存數(shù)據(jù)。設(shè)備斷電后,SRAM中存儲(chǔ)的數(shù)據(jù)就會(huì)丟失。

          STM32的Flash,嚴(yán)格說(shuō),應(yīng)該是Flash模塊。三個(gè)分區(qū)的稱(chēng)呼與datasheet保持一致。該Flash模塊包括:

          Flash主存儲(chǔ)區(qū)(Main memory)Flash:存放代碼的地方,如圖2中的FLASH區(qū)域:128KB(0x08000000~0x0801ffff)(不同容量的Flash終止地址不同);

          Flash信息區(qū)(Information block),該區(qū)域又可以分為Option Bytes和System Memory區(qū)域;System Memory:STM32在出廠(chǎng)時(shí),已經(jīng)固化了一段程序在System memory(medium-density devices的地址為:0x1FFF_F000,大小為2KB)存儲(chǔ)器中。這段程序就是一個(gè)固定好的,并且沒(méi)法修改的Boot Loader(見(jiàn)編程手冊(cè)PM0042這種描述)。Option Bytes:可以按照用戶(hù)的需要進(jìn)行配置(如配置看門(mén)狗為硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn));該區(qū)域除了互聯(lián)型所用型號(hào)地址都一樣:(0x1fff_f000~0x1fff_f80f)圖中終止地址有誤:應(yīng)為0x1fff_f80f,正好16個(gè)字節(jié)。

          Flash存儲(chǔ)接口寄存器區(qū)(Flash memory interface),用于片上外設(shè)。是圖2中從0x40000000開(kāi)始的PERIPHERALS區(qū)域。也稱(chēng)作外設(shè)存儲(chǔ)器映射,對(duì)該區(qū)域操作,就是對(duì)相應(yīng)的外設(shè)進(jìn)行操作。

          根據(jù)STM32的內(nèi)存映射圖,在代碼區(qū),0x00000000地址為啟動(dòng)區(qū),上電以后,CPU從這個(gè)地址開(kāi)始執(zhí)行代碼。0x08000000是用戶(hù)FLASH的起始地址,0x20000000是SRAM的起始地址。



          關(guān)鍵詞: STM32存儲(chǔ)器映射詳

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();