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

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

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

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

一些單片機(jī)常見的存儲知識

strongerHuang ? 來源:typedef ? 作者:typedef ? 2022-08-10 08:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文分享一些單片機(jī)常見的存儲相關(guān)的基礎(chǔ)知識。

1. 兩種存儲器

FLASH

Flash Memory(閃速存儲器)是一種安全、快速的存儲體,具有體積小、容量大、成本低、掉電不丟失等一系列優(yōu)點(diǎn),已成為嵌入式系統(tǒng)中數(shù)據(jù)和程序最主要的載體。

Flash是區(qū)塊結(jié)構(gòu),即在物理結(jié)構(gòu)上分成若干個(gè)物理塊,區(qū)塊之間相互獨(dú)立。

Flash寫操作必須先擦后寫,F(xiàn)lash只能將數(shù)據(jù)位由1寫成0,不能從0寫成1,所以在對存儲器寫之前必須先執(zhí)行擦除操作,擦操作的最小單位是一個(gè)區(qū)塊,而不是一個(gè)字節(jié)。

RAM

RAM(Random Access Memory)又稱隨機(jī)存取存儲器,也叫內(nèi)存,是與CPU直接交換數(shù)據(jù)的內(nèi)部存儲器。速度很快,斷電RAM不保留數(shù)據(jù)。

RAM主要用來存儲程序中用到的全局變量、堆棧等。

2. 三種存儲區(qū)

map中三種內(nèi)存

編譯完工程會生成一個(gè).map 的文件,該文件的最后說明了ROM和RAM占用空間大小,如下圖所示:

252d55bc-1844-11ed-ba43-dac502259ad0.png

其中ROM就是程序燒錄到FLASH中的大小,RW就是占用RAM大小.

RO

RO (Read Only ): 只讀區(qū)域, 需要長久保存,燒錄到Flash中,下文的text段和constdata段屬于此屬性區(qū)

RW

RW (Read Write): 可讀可寫,通常為全局變量和靜態(tài)變量,下文中的.data段和.bss屬于RW區(qū)

ZI

ZI (Zero Init): 沒有進(jìn)行初始化或者初始化為0,系統(tǒng)上電時(shí)會主動把此區(qū)域數(shù)據(jù)進(jìn)行0初始化,下文的.bss段就是. 另外, 可翻看Keil工具編譯的map文件,Heap和Stack區(qū)也進(jìn)行了Zero的屬性標(biāo)注, 因此,Heap和Stack也可認(rèn)為是ZI區(qū)域

ROM與RAM數(shù)據(jù)比較

數(shù)據(jù)段 說明 RAM ROM
.bss -- true false
.data true true
RO-data 常量 false true
.text -- false true
stack 局部變量等 true false
heap malloc true false

3. 六段段

253ea222-1844-11ed-ba43-dac502259ad0.png

程序運(yùn)行時(shí)的5段

.text

.text代碼段: 用來放程序代碼(code), 在代碼編譯完成后, 長久只讀存放于此,屬于圖中的代碼段

.constdata

.constdata只讀常量數(shù)據(jù)段: const限定的數(shù)據(jù)類型存放在此,屬于圖中的常量存儲區(qū)

.data

用來存放初始化不為0的全局變量(global)和靜態(tài)變量(static),它是可讀可寫的,屬于圖中的靜態(tài)存儲區(qū)

.bss

.bss的英文是Block Started by Symbol,翻譯過來就是由符號開始的塊。此部分類似于數(shù)據(jù)部分,只是它不占用可執(zhí)行文件中的空間。

bss通常是指用來存放程序中沒有初始化或初始化為0的全局變量和靜態(tài)變量的一塊內(nèi)存區(qū)域,可讀可寫,屬于圖中的靜態(tài)存儲區(qū),如果變量未初始化,系統(tǒng)會將變量初始化為0

heap

heap堆區(qū): 通常我們說的動態(tài)內(nèi)存分配,使用malloc/free進(jìn)行申請和釋放,屬于動態(tài)存儲區(qū).

stack

stack棧區(qū): 在代碼執(zhí)行時(shí)用來保存函數(shù)的局部變量和參數(shù),屬于動態(tài)存儲區(qū).

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

    關(guān)注

    6076

    文章

    45501

    瀏覽量

    670842
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1749

    瀏覽量

    155565
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4801

    瀏覽量

    90090

原文標(biāo)題:單片機(jī)存儲相關(guān)知識

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    嵌入式單片機(jī)開發(fā)學(xué)習(xí)路徑

    嵌入式系統(tǒng)是現(xiàn)代科技的重要組成部分,廣泛應(yīng)用于智能家居、汽車電子、工業(yè)控制、醫(yī)療設(shè)備等領(lǐng)域。學(xué)習(xí)嵌入式單片機(jī)開發(fā)不僅能提升個(gè)人技能,還能開拓職業(yè)發(fā)展路徑。本文將為你提供條詳細(xì)的嵌入式單片機(jī)開發(fā)學(xué)習(xí)
    發(fā)表于 02-09 15:42

    小白也能聽懂的單片機(jī)知識路徑

    在科技飛速發(fā)展的今天,單片機(jī)作為電子技術(shù)的核心組件,扮演著越來越重要的角色。對于想要踏入這個(gè)領(lǐng)域的初學(xué)者來說,了解并掌握單片機(jī)知識是邁向成功的第步。 第
    發(fā)表于 02-04 16:44

    單片機(jī)低功耗的處理

    如果個(gè)電路里面只有個(gè)單片機(jī)以及單片機(jī)最基本的外圍電路,那么它的功耗是很低的,特別是一些專門用于低功耗產(chǎn)品的
    發(fā)表于 01-21 08:25

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

    :它是單片機(jī)內(nèi)部的核心部件,決定了單片機(jī)的主要功能特性,由運(yùn)算器和控制器兩大部分組成。 存儲器:8051單片機(jī)在系統(tǒng)結(jié)構(gòu)上采用了哈佛型,將程序和數(shù)據(jù)分別存放在兩個(gè)
    發(fā)表于 01-16 06:57

    請問單片機(jī)常見的硬件抗干擾技術(shù)有哪些?

    形成干擾的基本要素有哪些? 單片機(jī)常見的硬件抗干擾技術(shù)有哪些?
    發(fā)表于 01-07 07:15

    單片機(jī)的入門準(zhǔn)備

    單片機(jī)入門篇 1、學(xué)好電子技術(shù)基礎(chǔ)知識,如電路基礎(chǔ)、模擬電路、數(shù)字電路和微機(jī)原理。這幾門課程都是弱電類專業(yè)的必修課程,學(xué)會這些后能保證你看懂單片機(jī)電路、知道電路的設(shè)計(jì)思路和工作原理; 2、學(xué)習(xí)
    發(fā)表于 12-22 07:39

    單片機(jī)學(xué)習(xí)的8個(gè)知識點(diǎn)分享

    電阻進(jìn)行連接。 3、端口不夠用 單片機(jī)中經(jīng)常會遇見端口不夠用的問題,可通過以下方法來解決: ①利用單片機(jī)的內(nèi)部資源:單片機(jī)內(nèi)部通常有一些可用的端口,如PWM、UART等??梢岳眠@些
    發(fā)表于 11-20 07:58

    C語言和單片機(jī)C語言有什么差異

    單片機(jī)c語言相對于普通C語言增加了一些基本的指令,還有變量的賦值是16進(jìn)制,當(dāng)然單片機(jī)c語言只牽涉到普通c語言非?;A(chǔ)部分。 主要的差異具體體現(xiàn)在: 1、單片機(jī)中C的語法
    發(fā)表于 11-14 07:55

    學(xué)單片機(jī)的誤區(qū)

    任何單片機(jī)程序的編寫。根本就不要學(xué)去C語言的高級用法,即使你用C語言的最基礎(chǔ)的語句能夠完成程序的編寫,底層運(yùn)行的機(jī)制是學(xué)習(xí)重中之重! 等你積累自己編寫定的代碼量以后,你再回過頭去學(xué)習(xí)C語言的一些高級
    發(fā)表于 11-14 07:46

    32位單片機(jī)PY32F003的特性概述

    邏輯、數(shù)據(jù)采集和通信應(yīng)用來說是足夠的。定位非常明確,可以作為一些8位/32位單片機(jī)的直接替代和競爭產(chǎn)品。
    的頭像 發(fā)表于 11-07 16:02 ?1245次閱讀
    32位<b class='flag-5'>單片機(jī)</b>PY32F003的特性概述

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

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

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

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

    低功耗單片機(jī)各型號的對比及選型參考

    不同品牌、不同系列的低功耗單片機(jī)在功耗控制、性能表現(xiàn)、外設(shè)配置等方面各有特點(diǎn),通過低功耗單片機(jī)各型號的對比,能幫助開發(fā)者更精準(zhǔn)地匹配應(yīng)用需求。本文將圍繞主流低功耗單片機(jī)型號展開對比,并介紹在
    的頭像 發(fā)表于 07-22 18:25 ?1478次閱讀

    C51單片機(jī)及C語言知識點(diǎn)必備秘籍

    單片機(jī)關(guān)鍵知識點(diǎn)覽: 系列 1:單片機(jī)簡敘 2:單片機(jī)引腳介紹 3:
    發(fā)表于 05-15 14:00

    單片機(jī)存儲器的那些事

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