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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32學習 存儲器和總線構架

          STM32學習 存儲器和總線構架

          作者: 時間:2016-11-28 來源:網絡 收藏
          主系統(tǒng)由以下部分構成:

          1.四個驅動單元:

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

          Cortex-M3內核,DCode總線和系統(tǒng)總線(S-Bus),通用DMA1和通用DMA2

          2四個被動單元

          內部SRAM,內部閃存存儲器,F(xiàn)SMC,AHB到APB的橋,它鏈接所有的APB設備。

          程序存儲器,數(shù)據存儲器,寄存器和輸入輸出端口被組織在同一個4GB的線性地址空間內。數(shù)據字節(jié)以小端格式存放在存儲器中。

          可訪問的存儲器空間被分成8個主要塊,每一個塊為512M。

          STM32F10XX內置64K字節(jié)的靜態(tài)SRAM,它可以以字節(jié),半字,或字訪問。

          SRAM的起始地址是0x2000000

          Cortex-M3存儲器映像包括兩個位段區(qū)。這兩個位段區(qū)將別外存儲區(qū)中的每個字映射到位段存儲器區(qū)的一個位,在別名存儲區(qū)寫入一個具有對位段區(qū)的目標位執(zhí)行讀-改-寫操作的相同效果。

          閃存的指令和數(shù)據訪問是通過AHB總線完成的。預取模塊是用于通過ICODE總線讀取指令的。仲裁是作用在閃存接口,并且DCODE總線上的數(shù)據訪問優(yōu)先。

          閃存編程一次可以寫入16位。

          閃存擦除操作可以按頁面擦除或完全擦除。全擦除不影響信息塊。

          啟動配置:

          STM32F10XX里,可以通過BOOT[1:0]引腳選擇三種不同啟動模式。

          在啟動延時之后,CPU從地址0x0000 0000獲取堆棧頂?shù)牡刂?,并從啟動存儲器?x0000 0004指示的地址開始執(zhí)行代碼。

          因為固定的存儲器映像,代碼區(qū)始終從地址0x0000 0000開始,而數(shù)據區(qū)(SRAM)始終從地址0x2000 0000開始。

          BOOT1一般接地。

          根據選 定的啟動模式,主閃存存儲器,系統(tǒng)存儲器或SRAM可以按揭曉以下方式訪問:

          1 從主閃存存儲器啟動:主閃存存儲器被映射到啟動空間(0x0000 0000),但能夠 在它原有的地址(0x0800 0000)訪問它,即閃存存儲器的內容可以在兩個地址區(qū)域訪問,0x0000 0000或0x0800 0000

          2 從系統(tǒng)存儲器啟動:系統(tǒng)存儲器被映射到啟動空間,但能夠在它原有的地址(0x1fff f000)訪問。

          3 從內置SRAM啟動:只能在0x2000 0000開始的地址區(qū)訪問SRAM.

          STM32的工作電壓為2.0~3.6V



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();