後天大圓滿之微控制器儲存器對映

2021-09-03 03:34:54 字數 2247 閱讀 1148

很多硬體架構已經對儲存器對映進行了劃分,比如今天作為典型介紹的cortex-m3體系架構,即使允許半導體廠商進行特定功能儲存區域的重新定義,總體的儲存器對映大框架也是不變的。

512mb表示遵循m3架構的mcu最大可能的**容量即inflash大小,0x0000 0000表示最低起始位址,該區主要存放code也可以寫入資料,有指定的匯流排去讀取指令,訪問資料。掉電該區域不會丟失資料,相當於電腦的硬碟。

結合例項來stm32f104vet6來說明,它將**區規劃如下:

boot memoryspace(0x0-0x7ffff),這塊空間是預留的,不存資料,或者它壓根不存在。在不同的啟動方式(參見附1)下,這塊區域會被對映到其他區域

1).從主儲存器啟動:boot space 是主儲存器的別名。以0x08000000 對應的記憶體為例,則該塊記憶體既可以通過0x00000000 操作也可以通過0x08000000 操作,且都是操作的同一塊記憶體。

2).從系統儲存器啟動:boot space 是system memory的別名。以0x1ffffff0對應的記憶體為例,則該塊記憶體既可以通過0x00000000 操作也可以通過0x1ffffff0操作,且都是操作的同一塊記憶體。

3).從sram 啟動:sram 只能通過0x20000000進行操作,與上述兩者不同。從sram 啟動時,需要在應用程式初始化**中重新設定向量表的位置。

保留區。

主儲存器(圖中flash區,主快閃儲存器)起始起止為0x0800 0000,終止位址依flash大小而定,圖中0x0807 ffff為512k的終止位址,儲存**。

保留區

系統儲存器,從0x1ffff000 – 0x1fff f7ff,是不可擦除的rom區,儲存isp程式

option bytes這個區域是16個位元組,是控制flash區域的暫存器

附1:

stm32f1的三種啟動模式(與前面介紹0x0位址有關)

3).片上sram啟動:從內建sram啟動(0x2000 0000-0x3fffffff),既然是sram,自然也就沒有程式儲存的能力了,這個模式一般用於程式除錯

片上sram起始位址為0x2000 0000大小為64kb,512m表示該架構mcu最大可能的記憶體容量為512m,片上sram起始位址最低0x2000_ 0000該位置主要存放資料也可以寫入code,有指定的匯流排去讀取指令,訪問資料。掉電該區域會丟失**和資料,但是執行**比flash要快很多,一般比inflash**貴,容量做的小得多。

gpio、uart、adc、tim,rcc,sdio、dma等所有外設的控制、狀態、資料暫存器都在這個區中。

可以自己擴充套件外部記憶體(外部sdram)、norflash、nandflash、lcd,但必須在stm32的fsmc控制器下進行,這個控制器的作用就是將內部ahb匯流排和外部擴充套件記憶體的匯流排進行轉化,利用這個控制器,我們可以很方便的控制lcd,這裡就不展開了。這1g的抽屜可以放下圖的東西。這片空間stm32並沒有放東西,stm32指定我們可以在其中擴充套件記憶體nor/psram1、nor/psram2……並接受fsmc控制器的控制。

在該區,放置了fsmc控制器的一些暫存器,就是在這些暫存器的配合下,fsmc控制器得以有效控制片外ram進行讀寫操作。

[2] 嵌入式網路那些事 

微控制器之認識微控制器

1 什麼是微控制器?微控制器就是一塊整合晶元,專業語言講微控制器就是在一塊矽片上整合了微處理器 儲存器以及各種輸入 輸出介面的晶元。2 什麼是51微控制器?51核心擴充套件出來的微控制器,即相容intel 8051指令系統的整合晶元。51微控制器的標識資訊及封裝型別,如stc 89c51 stc指晶...

微控制器之ADC

我們在前面的導航鍵中涉及到了ad轉換,但我們不知道是如何轉換以及其原理作用,我們這篇就來詳細的解釋一下 需要知道的一些知識點 ad資料採集電路及採集步驟說明 其中 比較流程ad應用程式設計要點adc資料採集的步驟 特別說明 1 數碼管所顯示的adc轉換結果並不是電壓值,而是電壓進行轉換後所得的乙個值...

微控制器之串列埠通訊

13 54 08 雖然自己還有很多的不懂,但是我可以慢慢的學習,一點點的積累。微控制器串列埠通訊有以下的知識。電平轉換 微控制器ttl電平,邏輯0為電壓0v,邏輯1為電壓 5v。rs 232電平特性 邏輯1 mark 3v 15v 邏輯0 space 3 15v 在rts cts dsr dtr和d...