一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)的RAM和FLASH認(rèn)識(shí)理解

汽車玩家 ? 來(lái)源:HACK實(shí)驗(yàn)室 ? 作者:HACK實(shí)驗(yàn)室 ? 2020-05-03 18:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近在一個(gè)問(wèn)答社區(qū)回答了一個(gè)問(wèn)題,關(guān)于單片機(jī)存儲(chǔ)器的,于是有了想專門寫(xiě)一篇關(guān)于單片機(jī)存儲(chǔ)器的想法。作為單片機(jī)內(nèi)部一個(gè)重要組成部分,存儲(chǔ)器占有很重要的地位,今天就來(lái)聊聊我對(duì)于單片機(jī)的內(nèi)部存儲(chǔ)器RAM和FLASH的一些認(rèn)識(shí)和理解。

1、先聊聊存儲(chǔ)器

存儲(chǔ)器是單片機(jī)結(jié)構(gòu)的重要組成部分,存儲(chǔ)器是用來(lái)存儲(chǔ)編譯好的程序代碼和數(shù)據(jù)的,有了存儲(chǔ)器單片機(jī)系統(tǒng)才具有記憶功能。按照存儲(chǔ)介質(zhì)的特性,可以分“易失性存儲(chǔ)器”和“非易失性存儲(chǔ)器”兩類。易失性存儲(chǔ)器斷電后,里面存儲(chǔ)的內(nèi)容會(huì)丟失;非易失性存儲(chǔ)器斷電后,數(shù)據(jù)可以依然保持。

單片機(jī)的RAM和FLASH認(rèn)識(shí)理解

存儲(chǔ)器分類

2、單片機(jī)的存儲(chǔ)器

如下圖所示是STM32F103RB系列單片機(jī)所使用的存儲(chǔ)器大小,F(xiàn)lash為128KB,RAM為20KB,這里的RAM是指SRAM。

單片機(jī)的RAM和FLASH認(rèn)識(shí)理解

STM32F103RB內(nèi)存大小

這兩個(gè)存儲(chǔ)器的寄存器輸入輸出端口被組織在同一個(gè)4GB的虛擬線性地址空間內(nèi)??稍L問(wèn)的存儲(chǔ)器空間被分成8個(gè)主要塊,每個(gè)塊為512MB。Flash用來(lái)存儲(chǔ)編譯好的程序文件,SRAM用來(lái)存儲(chǔ)運(yùn)行程序時(shí)所創(chuàng)建的臨時(shí)數(shù)據(jù)。所以如果不加入外置存儲(chǔ)器,那么程序里的東西就會(huì)出現(xiàn)在這兩個(gè)存儲(chǔ)器中。

下圖為STM32F103RB單片機(jī)的內(nèi)存映射圖(部分),可以看到畫(huà)紅圈的兩個(gè)就是SRAM和Flash存儲(chǔ)器。不知道大家有沒(méi)有注意,當(dāng)使用J-Flash軟件給stm32下載bin文件的時(shí)候需要填寫(xiě)起始地址,那個(gè)0x08000000其實(shí)就是Flash存儲(chǔ)器的起始地址。

單片機(jī)的RAM和FLASH認(rèn)識(shí)理解

STM32F103內(nèi)存映射圖

3、關(guān)于編譯器生成的文件

如果你玩過(guò)單片機(jī),那你應(yīng)該對(duì)Keil這款軟件不會(huì)感到陌生,下圖是我的那款OLED時(shí)鐘的軟件用Keil編譯后的編譯信息。

單片機(jī)的RAM和FLASH認(rèn)識(shí)理解

KEIL編譯信息

很多人并不一定知道Program Size的含義,我來(lái)給大家解釋一下。

Code:是程序中代碼所占字節(jié)大小;

RO-data:程序只讀的變量,也就是帶const的,和已初始化的字符串等;

RW-data:已初始化的可讀寫(xiě)全局/靜態(tài)變量;

ZI-data:未初始化的可讀寫(xiě)全局/靜態(tài)變量;

那么這個(gè)程序占用的Flash存儲(chǔ)器的空間大小是多少呢?程序所占Flash空間大小=Code+RO data+RW data=生成的bin文件大小。

那么這個(gè)程序占用的SRAM存儲(chǔ)器的空間大小是多少呢?程序固定占用RAM大小=RW data+ZI data。

這些信息除了在編譯器下方的信息欄里面看到,也可以在項(xiàng)目文件里的.map文件的最下面找到,如下圖:

單片機(jī)的RAM和FLASH認(rèn)識(shí)理解

.map文件信息

4、數(shù)據(jù)在存儲(chǔ)器上的存儲(chǔ)結(jié)構(gòu)

程序在Flash上的存儲(chǔ)結(jié)構(gòu)如下圖所示,通過(guò)閱讀hex文件和MDK下調(diào)試綜合提煉出來(lái)的。其中,ZI-data對(duì)應(yīng)未初始化數(shù)據(jù)段,RW-data對(duì)應(yīng)已初始化數(shù)據(jù)段,Code對(duì)應(yīng)代碼段。

單片機(jī)的RAM和FLASH認(rèn)識(shí)理解

STM32的Flash存儲(chǔ)結(jié)構(gòu)

數(shù)據(jù)在SRAM上的結(jié)構(gòu),如下圖所示。這部分大家可以參考上面的內(nèi)存映射圖來(lái)理解。

單片機(jī)的RAM和FLASH認(rèn)識(shí)理解

STM32的SRAM存儲(chǔ)結(jié)構(gòu)

5、總結(jié)

至此我相信大家應(yīng)該對(duì)stm32單片機(jī)的內(nèi)部存儲(chǔ)有了更進(jìn)一步的認(rèn)識(shí)。其實(shí)如果想更深入的了解單片機(jī)的運(yùn)行軌跡,我建議大家來(lái)詳細(xì)研究一下stm32單片機(jī)的上電內(nèi)存讀取過(guò)程,如果搞明白了這塊收獲會(huì)是非常大的。后面有機(jī)會(huì)我也會(huì)對(duì)這塊進(jìn)行深入的總結(jié),并整理成文章發(fā)出來(lái),與大家一起分享。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44998

    瀏覽量

    650722
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1679

    瀏覽量

    151895
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1392

    瀏覽量

    117587
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    扒一扒單片機(jī)與存儲(chǔ)器的那些事

    單片機(jī)與存儲(chǔ)器的關(guān)系像什么?單片機(jī)里的存儲(chǔ)都是一樣的嗎?為什么有的單片機(jī)既有EEPROM又有Flash?
    的頭像 發(fā)表于 04-10 10:06 ?946次閱讀
    扒一扒<b class='flag-5'>單片機(jī)</b>與存儲(chǔ)器的那些事

    PLC和單片機(jī)到底有什么區(qū)別?

    在自動(dòng)化和嵌入式開(kāi)發(fā)領(lǐng)域,PLC和單片機(jī)是兩種常見(jiàn)的控制系統(tǒng)。雖然它們有許多相似之處,但它們的功能、應(yīng)用范圍、開(kāi)發(fā)成本等方面也存在顯著差異。本文將從多個(gè)角度詳細(xì)探討這兩者的不同之處,幫助大家更好地理解
    的頭像 發(fā)表于 04-07 11:58 ?2385次閱讀
    PLC和<b class='flag-5'>單片機(jī)</b>到底有什么區(qū)別?

    單片機(jī)科普總結(jié),建議收藏!

    單片機(jī)(MicrocontrollerUnit,MCU)作為嵌入式系統(tǒng)的核心之一,在現(xiàn)代電子產(chǎn)品中無(wú)處不在。從智能家居、汽車電子,到工業(yè)控制、醫(yī)療設(shè)備,單片機(jī)支撐著無(wú)數(shù)智能化應(yīng)用的發(fā)展。對(duì)于初學(xué)者
    的頭像 發(fā)表于 04-07 11:58 ?2127次閱讀
    <b class='flag-5'>單片機(jī)</b>科普總結(jié),建議收藏!

    普冉PY32MD320單片機(jī)介紹

    PY32MD320單片機(jī)采用了32 位 ARM Cortex-M0+內(nèi)核,最高工作頻率 48 MHz,帶64 KB Flash和8 KB SRAM存儲(chǔ)器。PY32MD320 單片機(jī)的工作溫度范圍為
    的頭像 發(fā)表于 03-13 16:02 ?840次閱讀
    普冉PY32MD320<b class='flag-5'>單片機(jī)</b>介紹

    單片機(jī)Debug工具性能對(duì)比 單片機(jī)調(diào)試常用命令

    單片機(jī)(Microcontroller Unit, MCU)調(diào)試是嵌入式開(kāi)發(fā)中的一個(gè)重要環(huán)節(jié),它幫助開(kāi)發(fā)者發(fā)現(xiàn)和修復(fù)代碼中的錯(cuò)誤,優(yōu)化程序性能。不同的單片機(jī)和開(kāi)發(fā)環(huán)境可能使用不同的調(diào)試工具和命令
    的頭像 發(fā)表于 12-19 09:56 ?1427次閱讀

    單片機(jī)編程語(yǔ)言有哪些選擇

    單片機(jī)(Microcontroller Unit,MCU)編程是指為單片機(jī)編寫(xiě)程序的過(guò)程,這些程序控制單片機(jī)的行為和功能。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng),如家用電器、汽車電子、工業(yè)控制等領(lǐng)
    的頭像 發(fā)表于 11-01 14:13 ?2445次閱讀

    單片機(jī)怎么寫(xiě)入程序

    單片機(jī)(Microcontroller Unit,MCU)是一種集成電路芯片,它將計(jì)算機(jī)的CPU、存儲(chǔ)器、輸入/輸出接口等功能集成在一個(gè)芯片上。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備中。編寫(xiě)單片機(jī)
    的頭像 發(fā)表于 10-21 11:21 ?2463次閱讀

    51單片機(jī)的主要邏輯功能部件是什么

    部件的操作。它包括算術(shù)邏輯單元(ALU),用于執(zhí)行算術(shù)和邏輯運(yùn)算。 2. 存儲(chǔ)器 程序存儲(chǔ)器(ROM):用于存儲(chǔ)程序代碼,通常是不可更改的內(nèi)存,如EPROM或閃存。 數(shù)據(jù)存儲(chǔ)器(RAM):用于存儲(chǔ)運(yùn)行時(shí)數(shù)據(jù),比如變量和臨時(shí)數(shù)據(jù)。51單片機(jī)的內(nèi)置
    的頭像 發(fā)表于 10-18 12:49 ?1154次閱讀

    單片機(jī)不工作的原因

    單片機(jī)不工作是一個(gè)復(fù)雜的問(wèn)題,可能涉及多個(gè)方面的因素。以下是對(duì)單片機(jī)不工作原因的詳細(xì)分析,旨在幫助技術(shù)人員或愛(ài)好者更好地理解和解決這一問(wèn)題。
    的頭像 發(fā)表于 10-17 18:11 ?3772次閱讀

    單片機(jī)的中斷機(jī)制

    單片機(jī)的中斷機(jī)制是一種重要的處理方式,它允許單片機(jī)在執(zhí)行主程序的過(guò)程中,能夠暫停當(dāng)前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機(jī)制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得單片機(jī)在各種應(yīng)用領(lǐng)域中得到廣泛應(yīng)用。以下是對(duì)
    的頭像 發(fā)表于 10-17 18:03 ?1987次閱讀

    單片機(jī)燒錄程序的線比單片機(jī)上的少還能燒錄嗎

    的存儲(chǔ)器通常分為兩類:ROM(只讀存儲(chǔ)器)和RAM(隨機(jī)存取存儲(chǔ)器)。ROM用于存儲(chǔ)程序代碼,而RAM用于存儲(chǔ)程序運(yùn)行過(guò)程中的數(shù)據(jù)。燒錄過(guò)程就是將程序代碼寫(xiě)入ROM中。 單片機(jī)燒錄方法 單片機(jī)
    的頭像 發(fā)表于 09-02 09:54 ?1100次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序是單片機(jī)開(kāi)發(fā)過(guò)程中非常重要的一步,它涉及到將編寫(xiě)好的程序代碼通過(guò)一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲(chǔ)器中,使單片機(jī)能夠按照預(yù)定的邏輯執(zhí)行任務(wù)。 一、硬件準(zhǔn)備
    的頭像 發(fā)表于 09-02 09:47 ?2783次閱讀

    提高M(jìn)SP430G系列單片機(jī)Flash擦寫(xiě)壽命的方法

    電子發(fā)燒友網(wǎng)站提供《提高M(jìn)SP430G系列單片機(jī)Flash擦寫(xiě)壽命的方法.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 11:51 ?0次下載
    提高M(jìn)SP430G系列<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>Flash</b>擦寫(xiě)壽命的方法

    單片機(jī)boot0和boot1怎么設(shè)置

    單片機(jī)的啟動(dòng)模式通常包括從內(nèi)部ROM啟動(dòng)、從外部ROM啟動(dòng)、從外部Flash啟動(dòng)等。 不同的啟動(dòng)模式對(duì)應(yīng)不同的Boot0和Boot1設(shè)置。 Boot0和Boot1的設(shè)置方法 Boot0和Boot1通常通過(guò)
    的頭像 發(fā)表于 08-22 09:50 ?5813次閱讀

    NOR Flash與NAND Flash的區(qū)別詳解 #單片機(jī) #pcb設(shè)計(jì) #人工智能

    單片機(jī)
    深圳市雷龍發(fā)展有限公司
    發(fā)布于 :2024年07月23日 16:47:40