娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

STM32芯片存儲器映射概述

發(fā)布者:Lihua521最新更新時間:2024-09-27 來源: elecfans關(guān)鍵字:STM32芯片  存儲器映射  系統(tǒng)架構(gòu) 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

STM32系統(tǒng)構(gòu)架

當(dāng)你拿到一款芯片后,怎樣可以快速了解到它具有哪些功能?了解單片機(jī)的系統(tǒng)架構(gòu)是使用款芯片的基礎(chǔ),這些信息在芯片手冊上都會有詳細(xì)的說明,并且它們會被安排在最前面的章節(jié),目的就是讓用戶最開始就能夠關(guān)注到該款芯片具有哪些功能,特點(diǎn)。

圖片

STM32F103系統(tǒng)結(jié)構(gòu)

從上圖我們可以了解到STM32F103系列的主要系統(tǒng)組成單元:

  1. CPU核:使用ARM Cortex-M3內(nèi)核;

  2. 存儲器:

  • STM32F103系列微控制器采用經(jīng)典的哈佛架構(gòu),程序存儲和數(shù)據(jù)存儲采用獨(dú)立的存儲器空間;

  • ICode:指令代碼,Flash存儲器用于存儲程序;

  • DCode:數(shù)據(jù)代碼,SRAM用于存儲數(shù)據(jù);

  1. 外設(shè):

  • GPIO;

  • 定時器

  • ADC;

  • 通信接口:SPI、I2C、USART;

  • 其他接口:USB、CAN、RTC、DMA、SDIO、FSMC等;

  1. 總線架構(gòu):

  • AHB總線:高速總線,連接核心與部分外設(shè)。

  • APB1/APB2總線:連接外設(shè),時鐘較AHB低。

芯片存儲器映射

從上面的系統(tǒng)結(jié)構(gòu)圖中我們很容易就能看出內(nèi)核與存儲單元的關(guān)系,但更多的細(xì)節(jié)芯片手冊上并沒有給出。對于51系列單片機(jī)單片機(jī),因?yàn)槠鋬?nèi)核和存儲單元都比較簡單管理起來也非常容易,但STM32芯片內(nèi)部復(fù)雜程度都比51高幾個數(shù)量級,所以需要對存儲單元有特定的劃分管理,把它稱為存儲器映射,這些知識在51單片機(jī)中是不會涉及的,這一部分內(nèi)容在ARM公司的內(nèi)核手冊上才會有詳細(xì)的講解。我們都知道了STM32F103系列單片機(jī)采用的是的ARM Cortex-M3內(nèi)核,所以要了解這部分知識需要查看Cortex-M3內(nèi)核資料。

圖片上圖是Cortex-M3內(nèi)核資料中對給內(nèi)核芯片預(yù)定義的存儲器映射說明,接下來我們通過STM32F103系列單片機(jī)來逐步學(xué)習(xí)。

STM32單片機(jī)存儲器映射

STM32單片機(jī)存儲空間包含了用于程序代碼和數(shù)據(jù)存儲的系統(tǒng)存儲器區(qū)域,以及用于外設(shè)控制的外設(shè)寄存器區(qū)域。為了能夠直觀而有效地操作這些內(nèi)存資源,STM32采用存儲器映射的方式進(jìn)行內(nèi)存管理。什么是存儲器映射?其基本思想是將不同的內(nèi)存區(qū)域按邏輯功能映射到單片機(jī)的線性地址空間,從而實(shí)現(xiàn)通過訪問地址來操作存儲單元的目的。

要高效地使用STM32單片機(jī),正確理解和使用其存儲器映射方式是必要的。以下詳細(xì)介紹STM32內(nèi)存映射的組成結(jié)構(gòu)、典型布局以及編程方法,幫助初學(xué)者建立對存儲器映射的整體認(rèn)知,為后續(xù)STM32編程開發(fā)奠定基礎(chǔ)。

STM32存儲器映射概述

STM32單片機(jī)的內(nèi)存映射可以分為兩大部分:系統(tǒng)存儲器映射區(qū)域和外設(shè)寄存器映射區(qū)域。

系統(tǒng)存儲器區(qū)域主要包括:

  1. SRAM:用于存放數(shù)據(jù),包括全局變量、堆棧等

  2. Flash:用于存放程序代碼

外設(shè)寄存器區(qū)域則映射了各外設(shè)控制需要的寄存器,通過訪問這些寄存器可以配置外設(shè)工作模式或者獲取其工作狀態(tài)。

整個內(nèi)存映射采用線性連續(xù)的地址從低向高排布,從0x00000000開始,每個內(nèi)存區(qū)按照功能和大小順序映射。STM32內(nèi)存空間的總大小依型號不同有所區(qū)別,較大的可以達(dá)到GB級別。

典型存儲器映射布局

下面我們以STM32F103系列為例,介紹其典型的存儲器映射布局。

  1. Flash memory: 0x08000000 ~ 0x0807FFFF (512KB)

該區(qū)域存儲了程序代碼。起始地址固定為0x08000000,大小根據(jù)芯片容量不同而不同。

  1. SRAM: 0x20000000 ~ 0x2000FFFF (64KB)

該區(qū)域用于存儲運(yùn)行時的數(shù)據(jù),如全局變量、堆棧等。起始地址固定為0x20000000。

  1. 外設(shè)寄存器: 0x40000000 ~ 0x4000FFFF

用于映射控制外設(shè)的各種控制寄存器,可以通過訪問這些地址來配置外設(shè)。

  1. AHB外設(shè): 0x40020000 ~ 0x4002FFFF

包含了連接在AHB總線上的外設(shè),如GPIO、DMA等的控制寄存器。

  1. APB1外設(shè): 0x40000000 ~ 0x4000FFFF

包含連接在APB1總線上的外設(shè),如TIMER2、UART2等。

  1. APB2外設(shè): 0x40010000 ~ 0x400FFFFF

包含連接在APB2總線上的外設(shè),如TIMER1、SPI1等。

通過上述內(nèi)存布局可知,STM32內(nèi)存映射有明確的邏輯劃分,不同區(qū)域存放不同的數(shù)據(jù)或寄存器,各外設(shè)也按照所在總線分組排布。用戶可以通過編程手冊找到每個外設(shè)寄存器的確切地址。


基于存儲器映射的外設(shè)寄存器編程

知道了各外設(shè)寄存器的地址映射后,我們就可以通過直接讀寫地址來操作外設(shè),例如:


GPIOA_CRH = 0x40010800; //GPIOA控制寄存器地址


*(volatile uint32_t *)GPIOA_CRH |= 0x01; //配置PA8為輸出模式

但是直接地址操作不夠優(yōu)雅和靈活,更好的方法是利用硬件抽象層(HAL)提供的函數(shù)來訪問寄存器,例如:


GPIO_InitTypeDef GPIO_InitStruct; 


GPIO_InitStruct.Pin = GPIO_PIN_8;


GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;


HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

HAL庫會根據(jù)傳入的GPIO端口和引腳參數(shù),自動計算出對應(yīng)的寄存器地址,從而實(shí)現(xiàn)配置GPIO的功能。


這種基于內(nèi)存映射的編程方式,為用戶屏蔽了底層寄存器操作的細(xì)節(jié),提供了簡單易用的外設(shè)驅(qū)動接口。


存儲器映射工作原理

那么STM32是如何實(shí)現(xiàn)內(nèi)存映射,將不同區(qū)域的存儲單元映射到連續(xù)的線性地址空間中的呢?


主要是通過地址譯碼器根據(jù)地址某些Bit位的組合,對地址進(jìn)行解碼,選通出需要訪問的目標(biāo)存儲區(qū)域的信號,從而將訪問請求導(dǎo)向到正確的目的地。


例如,地址的31-24bit用于區(qū)分代碼區(qū)域和外設(shè)區(qū)域,0-15bit含有偏移量;地址譯碼器根據(jù)地址Bit位組合,將訪問請求定向到與之對應(yīng)的存儲單元上。


內(nèi)存保護(hù)機(jī)制

為了數(shù)據(jù)安全,STM32還增加了存儲區(qū)域?qū)懭氡Wo(hù)機(jī)制。


主要手段是利用內(nèi)存保護(hù)單元(MPU)進(jìn)行存儲區(qū)域訪問控制。MPU可以進(jìn)行區(qū)域劃分,配置每個區(qū)域的訪問權(quán)限,從而實(shí)現(xiàn)對區(qū)域讀寫操作的保護(hù),防止程序異常修改關(guān)鍵存儲內(nèi)容。


結(jié)語

本文介紹了STM32存儲器映射的基本結(jié)構(gòu)、典型布局及相關(guān)原理,并講解了基于存儲器映射訪問外設(shè)寄存器的編程方法。存儲器映射方式抽象并簡化了STM32的龐大內(nèi)存空間,有助于用戶直觀而高效地使用這塊“位帶區(qū)”。希望本文能幫助讀者建立STM32存儲器映射的概念框架,并為后續(xù)編程項(xiàng)目提供基礎(chǔ)理論支持。關(guān)于“位帶”操作,我將會在以后的文章中做單獨(dú)進(jìn)行介紹。使用“位帶”操作可以讓我們的代碼更高效,這也是每一位STM32單片機(jī)開發(fā)者不可或缺的技能。


關(guān)鍵字:STM32芯片  存儲器映射  系統(tǒng)架構(gòu) 引用地址:STM32芯片存儲器映射概述

上一篇:STM32定時器溢出的工作原理是什么?
下一篇:STM32操作系統(tǒng)系列使用C語言的教程

推薦閱讀最新更新時間:2025-05-07 12:44

STM32芯片存儲器映射概述
STM32系統(tǒng)構(gòu)架 當(dāng)你拿到一款芯片后,怎樣可以快速了解到它具有哪些功能?了解單片機(jī)的系統(tǒng)架構(gòu)是使用款芯片的基礎(chǔ),這些信息在芯片手冊上都會有詳細(xì)的說明,并且它們會被安排在最前面的章節(jié),目的就是讓用戶最開始就能夠關(guān)注到該款芯片具有哪些功能,特點(diǎn)。 STM32F103系統(tǒng)結(jié)構(gòu) 從上圖我們可以了解到STM32F103系列的主要系統(tǒng)組成單元: CPU核:使用ARM Cortex-M3內(nèi)核; 存儲器: STM32F103系列微控制器采用經(jīng)典的哈佛架構(gòu),程序存儲和數(shù)據(jù)存儲采用獨(dú)立的存儲器空間; ICode:指令代碼,F(xiàn)lash存儲器用于存儲程序; DCode:數(shù)據(jù)代碼,SRAM用于存儲數(shù)據(jù); 外設(shè): GPIO;
[單片機(jī)]
<font color='red'>STM32</font><font color='red'>芯片</font><font color='red'>存儲器</font><font color='red'>映射</font>概述
嵌入式系統(tǒng)架構(gòu)之ARM處理器 
ARM公司于1991年成立于英國劍橋,主要出售芯片設(shè)計技術(shù)的授權(quán)。目前,采用ARM技術(shù)智能財產(chǎn)(IP)核心的處理器,即我們通常所說的ARM 處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場,基于ARM技術(shù)的處理器應(yīng)用約占據(jù)了32位RISC微處理器 75%以上的市場,ARM技術(shù)不止逐步滲入到我們生活的各個方面,我們甚至可以說,ARM于人類的生活環(huán)境中,已經(jīng)是不可或缺的一環(huán)。 目前市面上常見的ARM處理器架構(gòu),可分為ARM7、ARM9以及ARM11,新推出的Cortex系列尚在進(jìn)行開發(fā)驗(yàn)證,市面上還未有相關(guān)產(chǎn)品推出。ARM也是嵌入式處理器中首先推出多核心架構(gòu)的廠商。 ARM首個多核心架構(gòu)為AR
[單片機(jī)]
嵌入式<font color='red'>系統(tǒng)架構(gòu)</font>之ARM處理器 
STM32——ST-LINK通過BIN文件燒錄STM32芯片
提供2種下載方式 KEIL編譯下載 KEIL 5 在開發(fā)中還算是比較強(qiáng)大的一種平臺。在開發(fā)中通過編譯再下載會顯得很方便。 盡管這個是老生常談的問題,但還是在這里補(bǔ)全這個設(shè)置步驟 1.點(diǎn)擊“魔法棒” 2.Debug 設(shè)置 ST官方下載方式 有時候,我們通過各種途徑得到了一個bin或者h(yuǎn)ex文件(比如使用了 embed在線編譯器 生成bin文件),那么我們應(yīng)該怎么樣把它燒錄到板子中呢? 下面介紹由ST官方下載器燒錄bin或者h(yuǎn)ex到開發(fā)板的過程 燒錄文件:BIN、或者HEX文件 燒錄方式:ST-LINK 燒錄芯片:STM32F429I 燒錄準(zhǔn)備:   1.開發(fā)板自帶的一根USB線   2.官
[單片機(jī)]
<font color='red'>STM32</font>——ST-LINK通過BIN文件燒錄<font color='red'>STM32</font><font color='red'>芯片</font>
基于STM32芯片和TFT-LCD的便攜式心電圖儀設(shè)計
便攜式心電圖設(shè)備的出現(xiàn)使心電信號能夠在更多場合進(jìn)行采集,它既可以實(shí)現(xiàn)可移動化,又可以實(shí)時的對心電信號進(jìn)行分析。通過內(nèi)置大容量存儲器件能夠?qū)颊哌M(jìn)行長時間的實(shí)時監(jiān)護(hù),并記錄患者的心電數(shù)據(jù),通過USB接口與PC機(jī)進(jìn)行數(shù)據(jù)傳輸,以提交到專業(yè)醫(yī)療機(jī)構(gòu)做進(jìn)一步分析和診斷。 1、系統(tǒng)整體設(shè)計概述 系統(tǒng)原理框圖可以用圖1表示。心電信號由電極獲取,送入心電采集電路,經(jīng)前置放大、主放大、高低通濾波、電平抬升后,得到符合要求的心電信號,并送入到STM32的ADC進(jìn)行AD轉(zhuǎn)換。為了更好地抑制干擾信號,在電路中還引入了右腿驅(qū)動電路。系統(tǒng)控制芯片采用STM32,TFT-LCD的觸摸功能加上少量按鍵可以建立良好的人機(jī)交互環(huán)境,可以通過LCD實(shí)時顯示和回放
[單片機(jī)]
基于<font color='red'>STM32</font><font color='red'>芯片</font>和TFT-LCD的便攜式心電圖儀設(shè)計
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 彰化县| 中阳县| 莒南县| 拜泉县| 民丰县| 广西| 洛阳市| 山丹县| 江油市| 苏尼特左旗| 烟台市| 东乡| 梓潼县| 瑞安市| 兰坪| 滦平县| 江城| 屏山县| 朔州市| 承德市| 东乡族自治县| 罗源县| 五家渠市| 通渭县| 凭祥市| 莱阳市| 孟连| 团风县| 宿迁市| 东丽区| 达孜县| 西平县| 五莲县| 集贤县| 皋兰县| 黄梅县| 柯坪县| 肥东县| 阿拉尔市| 仙游县| 达州市|