91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

存儲(chǔ)器是單片機(jī)結(jié)構(gòu)的重要組成部分,存儲(chǔ)器是用來存儲(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)。可訪問的存儲(chǔ)器空間被分成8個(gè)主要塊,每個(gè)塊為512MB。Flash用來存儲(chǔ)編譯好的程序文件,SRAM用來存儲(chǔ)運(yùn)行程序時(shí)所創(chuàng)建的臨時(shí)數(shù)據(jù)。所以如果不加入外置存儲(chǔ)器,那么程序里的東西就會(huì)出現(xiàn)在這兩個(gè)存儲(chǔ)器中。

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

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

STM32F103內(nèi)存映射圖

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

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

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

KEIL編譯信息

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

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

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

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

ZI-data:未初始化的可讀寫全局/靜態(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)如下圖所示,通過閱讀hex文件和MDK下調(diào)試綜合提煉出來的。其中,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)存映射圖來理解。

單片機(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)行軌跡,我建議大家來詳細(xì)研究一下stm32單片機(jī)的上電內(nèi)存讀取過程,如果搞明白了這塊收獲會(huì)是非常大的。后面有機(jī)會(huì)我也會(huì)對(duì)這塊進(jìn)行深入的總結(jié),并整理成文章發(fā)出來,與大家一起分享。

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

    關(guān)注

    6076

    文章

    45495

    瀏覽量

    670281
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1748

    瀏覽量

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

    關(guān)注

    8

    文章

    1399

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    單片機(jī)中有FLASH為啥還需要EEROM?

    單片機(jī)里明明有FLASH,為啥還要再塞個(gè)EEPROM?不少剛接觸嵌入式的小伙伴估計(jì)都有過這樣的疑惑:FLASH能存程序,容量大,讀取又快,干嘛還要加個(gè)讀寫慢、容量小的EEPROM?這不是多此一舉嘛。其實(shí),這倆兄弟各有所長,分工明
    的頭像 發(fā)表于 03-05 13:39 ?26次閱讀
    <b class='flag-5'>單片機(jī)</b>中有<b class='flag-5'>FLASH</b>為啥還需要EEROM?

    單片機(jī)里的程序運(yùn)行方式

    我們想要理解單片機(jī)是如何運(yùn)行程序的,我們首先需要了解單片機(jī)的組成,我們這里以80C51單片機(jī)為例來理解程序在
    發(fā)表于 01-16 06:57

    單片機(jī)Flash是什么類型

    最近看到交流群小伙伴在討論單片機(jī)Flash的話題,比如:Flash類型、速度等。 我們平時(shí)在單片機(jī)開發(fā)過程中也會(huì)遇到各種各樣的Flash,比
    發(fā)表于 01-04 07:10

    Infineon SEMPER NOR Flash與HYPERRAM? 2.0 Gen2 Flash+RAM MCP產(chǎn)品解析

    Infineon SEMPER NOR Flash與HYPERRAM? 2.0 Gen2 Flash+RAM MCP產(chǎn)品解析 引言 在汽車集群和工業(yè)HMI應(yīng)用中,通常會(huì)使用NOR Flash來存儲(chǔ)
    的頭像 發(fā)表于 12-20 16:20 ?1201次閱讀

    單片機(jī)程序的執(zhí)行

    上是不是只要Flash就可以了呢(直接相當(dāng)于PC上的DDRRAM)?這樣成本也會(huì)比一個(gè)RAM,一個(gè)Flash低,更節(jié)省成本,對(duì)于生產(chǎn)商更劃算)。 對(duì)于單片機(jī)的程序執(zhí)行時(shí)指令和數(shù)據(jù)的存
    發(fā)表于 12-04 06:20

    廣州唯創(chuàng)電子單片機(jī)語音芯片:智能設(shè)備的聲音靈魂與技術(shù)核心

    一、揭開單片機(jī)語音芯片的神秘面紗1.從基礎(chǔ)概念認(rèn)識(shí)核心技術(shù)在智能化設(shè)備普及的今天,單片機(jī)語音芯片已成為人機(jī)交互的重要橋梁。要理解這一技術(shù),首先需要明確其兩大核心組成部分:
    的頭像 發(fā)表于 11-25 09:07 ?798次閱讀
    廣州唯創(chuàng)電子<b class='flag-5'>單片機(jī)</b>語音芯片:智能設(shè)備的聲音靈魂與技術(shù)核心

    請(qǐng)問單片機(jī)RAM空間不夠用了怎么辦?

    單片機(jī)RAM空間不夠用了怎么辦?
    發(fā)表于 11-25 08:09

    單片機(jī)燒錄原理是怎樣的?輝芒微單片機(jī)燒錄程序詳細(xì)步驟講解

    燒錄(Programming)就是把 .hex/.bin 文件里的機(jī)器碼搬運(yùn)進(jìn)單片機(jī)片內(nèi) Flash 的過程。輝芒微(FMD)單片機(jī)內(nèi)部有一塊 自舉 BootROM,上電時(shí)會(huì)先跑這段程序;如果檢測
    的頭像 發(fā)表于 09-17 16:14 ?2307次閱讀
    <b class='flag-5'>單片機(jī)</b>燒錄原理是怎樣的?輝芒微<b class='flag-5'>單片機(jī)</b>燒錄程序詳細(xì)步驟講解

    單片機(jī)原理及應(yīng)用詳解

    單片機(jī)(Microcontroller Unit, MCC) ?是一種集成計(jì)算機(jī)核心功能(CPU、存儲(chǔ)器、I/O接口等)的微型芯片,廣泛應(yīng)用于嵌入式系統(tǒng)中。以下是其原理及應(yīng)用的詳細(xì)介紹: 一、單片機(jī)
    的頭像 發(fā)表于 08-11 13:57 ?2281次閱讀

    嵌入式系統(tǒng)中,FLASH 中的程序代碼必須搬到 RAM 中運(yùn)行嗎?

    嵌入式系統(tǒng)里,FLASH 中的程序代碼并非必須搬到 RAM 中運(yùn)行,這得由硬件配置、實(shí)際性能需求和應(yīng)用場景共同決定。就像很多低端單片機(jī),無論是依賴片內(nèi) Flash 還是外掛的 SPI
    的頭像 發(fā)表于 08-06 10:19 ?1357次閱讀
    嵌入式系統(tǒng)中,<b class='flag-5'>FLASH</b> 中的程序代碼必須搬到 <b class='flag-5'>RAM</b> 中運(yùn)行嗎?

    單片機(jī)的儲(chǔ)存優(yōu)點(diǎn)是什么

    場景。深圳市安凱星科技有限公司在單片機(jī)應(yīng)用開發(fā)中,充分利用這些儲(chǔ)存優(yōu)點(diǎn),為拓邦、朗科、安徽龍多等客戶打造了高效穩(wěn)定的解決方案。 1.集成度高,節(jié)省硬件空間 單片機(jī)將程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)與 CPU、I/O 接
    的頭像 發(fā)表于 07-31 10:09 ?694次閱讀

    怎么測單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開發(fā)、程序調(diào)試和性能優(yōu)化具有重要意義。測量
    的頭像 發(fā)表于 07-25 11:39 ?783次閱讀

    單片機(jī)怎么驅(qū)動(dòng)電機(jī)?

    在各類自動(dòng)化設(shè)備和智能裝置中,電機(jī)是重要的執(zhí)行部件,而單片機(jī)作為控制核心,需要通過特定的方式驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。單片機(jī)驅(qū)動(dòng)電機(jī)并非直接連接即可,而是要根據(jù)電機(jī)類型和功率,搭配合適的驅(qū)動(dòng)電路,才能實(shí)現(xiàn)穩(wěn)定
    的頭像 發(fā)表于 07-25 09:31 ?895次閱讀

    單片機(jī)怎么燒程序

    單片機(jī)燒程序是將編寫好的程序代碼寫入單片機(jī)內(nèi)部存儲(chǔ)單元,讓單片機(jī)按照預(yù)設(shè)邏輯工作的過程,是單片機(jī)應(yīng)用開發(fā)中不可或缺的環(huán)節(jié)。無論是簡單的燈光控制程序,還是復(fù)雜的工業(yè)控制算法,都需要通過燒
    的頭像 發(fā)表于 07-23 11:47 ?1273次閱讀

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

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