STM32F1 Cortex M3核心 儲存器對映

2021-08-25 14:03:22 字數 2393 閱讀 2865

本文參考《cm3權威指南》第五章 儲存器系統

《stm32_參考手冊》2.4 啟動配置

cortex m3核心規定的儲存器對映如下圖所示。就好像arm公司打造了乙個櫃子,從上到下有這幾個抽屜,它規定了每個抽屜放的東西的種類,具體放什麼放多少它不管(只要不超過抽屜的大小),由每個晶元廠商自己決定。

圖1 cortex m3儲存器對映

我們來看看st公司打造的stm32f1系列晶元是如何在這些抽屜放置東西的。

**抽屜

在**這個抽屜,stm32f1布置了flash模組,用來儲存**,相當於電腦的硬碟,具體展開如下圖所示。主儲存器(圖中flash區)起始起止為0x0800 0000,終止位址依flash大小而定,圖中0x0807 ffff為512k的終止位址。然後經過一段保留區,從0x1ffff000 – 0x1fff f7ff為系統儲存器,是不可擦除的rom區,儲存isp程式,最後option bytes這個區域是16個位元組,是控制flash區域的暫存器。有同學說我漏了一塊,對,從0x0000 0000的這塊是我要著重講解的一塊。

圖2 stm32f1**區抽屜

在講這塊之前,首先要講一下stm32f1的三種啟動模式,如下圖所示。

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

下面講解boot memoryspace(aliased to flash or systen memory depending onboot pins)。其實這塊空間是預留的,不存資料,或者它壓根不存在。在不同的啟動方式下,這塊區域會被對映到其他區域:

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

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

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

圖3 stm32f1三種啟動模式

片上sram抽屜

在sram這個抽屜,stm32f1布置了sram,相當於電腦的記憶體,具體展開如下圖所示。

圖4 stm32f1片上sram抽屜

在這個抽屜中,stm32f1只放了64k的sram儲存空間,其餘的空間保留(空著)。這裡需要說明一下,雖然其餘那些空間被保留,沒有儲存器與之對應,但是位帶別名區的位址仍然可以操作來改變64k位址中的對應位。

片上外設抽屜

在這個抽屜中,放置了stm32f1的外設,包括gpio、uart、adc等所有外設的控制、狀態、資料暫存器都在這個抽屜中。當然,抽屜很大肯定裝不滿,裝不滿的空間就預留著。

圖5 stm32f1片上外設抽屜

片外ram抽屜

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

圖6 stm32f1片外ram抽屜

片外外設抽屜

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

圖7 stm32f1片外外設抽屜

其餘的抽屜,stm32f1就沒動過了。最後,stm32f1的儲存器完整對映如下圖所示,大家可以和圖1對比了解這個過程。

圖8 stm32f1儲存器對映

**:

CortexM4 stm32f411 除錯介面

origin 簡述 對stm32f411所支援的除錯介面及其方式進行簡單的學習。除錯介面 stm32f411的除錯介面硬體示意如下 這裡寫描述 在除錯模式下,mcu核在某條特定指令獲取 斷點 或者是資料獲取時 watch point 時可以被停住,mcu核的內部狀態以及外部狀態均可被測量,在測量完成...

STM32F4與STM32F1的區別

作為cortex m3市場的最大佔有者,st公司在2011年又推出基於cortex m4核心的stm32f4系列產品,相對與stm32f1 f2等cortex m3產品,stm32f4最大的優勢,就是新增了硬體fpu單元以及dsp指令,同時,stm32f4的主頻也提高了很多,達到168mhz 可獲得...

STM32F1與STM32F4間CAN通訊除錯

can通訊的除錯不單是軟體上的除錯,也需要對硬體進行檢查。在調通之前一直有兩個疑惑干擾判斷 結論在文末 1.不同的can晶元是否存在不相容。2.不同型號的stm32是否can通訊是否存在差異。stm32f1與stm32f4之間can通訊的除錯過程 僅以stm32f1作介紹 標準庫 1.確定引腳與資源...