www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > typedef
[導(dǎo)讀]Flash Memory(閃速存儲(chǔ)器)是一種安全、快速的存儲(chǔ)體,具有體積小、容量大、成本低、掉電不丟失等一系列優(yōu)點(diǎn),已成為嵌入式系統(tǒng)中數(shù)據(jù)和程序最主要的載體。

兩種存儲(chǔ)器,三種內(nèi)存大小,六段段

1. 兩種存儲(chǔ)器FLASH

Flash Memory(閃速存儲(chǔ)器)是一種安全、快速的存儲(chǔ)體,具有體積小、容量大、成本低、掉電不丟失等一系列優(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,所以在對(duì)存儲(chǔ)器寫之前必須先執(zhí)行擦除操作,擦操作的最小單位是一個(gè)區(qū)塊,而不是一個(gè)字節(jié)。

RAM

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

RAM主要用來(lái)存儲(chǔ)程序中用到的全局變量、堆棧等。

2. 三種存儲(chǔ)區(qū)

map中三種內(nèi)存

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

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

RO

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

RW

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

ZI

ZI (Zero Init): 沒(méi)有進(jìn)行初始化或者初始化為0,系統(tǒng)上電時(shí)會(huì)主動(dòng)把此區(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ù)段 說(shuō)明 RAM ROM
.bss -- true false
.data true true
RO-data 常量 false true
.text -- false true
stack 局部變量等 true false
heap malloc true false

.text

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

.constdata

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

.data

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

.bss

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

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

heap

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

stack

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



聲明:該篇文章為本站原創(chuàng),未經(jīng)授權(quán)不予轉(zhuǎn)載,侵權(quán)必究。
換一批
延伸閱讀

自2014年ST公司推出STM32CubeMX以來(lái),這款圖形化配置工具憑借“一鍵生成初始化代碼”“跨IDE兼容”“中間件集成”等特性,迅速成為78%的STM32開發(fā)者首選工具。然而,伴隨其普及的爭(zhēng)議始終未息:STM32C...

關(guān)鍵字: STM32CubeMX ST公司

在工業(yè)自動(dòng)化領(lǐng)域,Modbus協(xié)議憑借其開放性和易用性成為設(shè)備通信的"通用語(yǔ)言"。然而,當(dāng)工程師面對(duì)Modbus RTU、ASCII和TCP三種變體時(shí),如何根據(jù)具體場(chǎng)景做出最優(yōu)選擇?本文將從編碼機(jī)制、通信效率、錯(cuò)誤檢測(cè)等...

關(guān)鍵字: Modbus協(xié)議 TCP

在工業(yè)自動(dòng)化、能源管理等實(shí)時(shí)性要求嚴(yán)苛的場(chǎng)景中,Modbus通信系統(tǒng)的響應(yīng)延遲直接關(guān)系到設(shè)備控制的精度與系統(tǒng)穩(wěn)定性。從智能電表的功率調(diào)節(jié)到機(jī)器人關(guān)節(jié)的同步控制,微秒級(jí)的響應(yīng)偏差都可能引發(fā)連鎖故障。本文從硬件架構(gòu)、軟件設(shè)計(jì)...

關(guān)鍵字: Modbus 通信系統(tǒng)

在新能源發(fā)電、電動(dòng)汽車、數(shù)據(jù)中心等直流供電系統(tǒng)中,過(guò)壓故障是導(dǎo)致設(shè)備損壞的主要誘因之一。據(jù)統(tǒng)計(jì),電力電子設(shè)備故障中約35%與過(guò)壓事件相關(guān),其中直流側(cè)過(guò)壓占比達(dá)62%。本文以基于TVS二極管與MOSFET的復(fù)合型直流過(guò)壓保...

關(guān)鍵字: 直流過(guò)壓 保護(hù)電路

在工業(yè)物聯(lián)網(wǎng)(IIoT)與邊緣計(jì)算快速發(fā)展的背景下,Modbus協(xié)議憑借其輕量化特性成為微控制器(MCU)設(shè)備互聯(lián)的首選方案。然而,在資源受限的MCU(如STM32F0系列、ESP8266等,RAM通常小于32KB,F(xiàn)l...

關(guān)鍵字: 微控制器 Modbus 工業(yè)物聯(lián)網(wǎng)

在工業(yè)控制系統(tǒng)中,Modbus RTU協(xié)議的CRC校驗(yàn)如同通信網(wǎng)絡(luò)的"免疫系統(tǒng)",某石化廠DCS系統(tǒng)曾因CRC計(jì)算錯(cuò)誤導(dǎo)致0.3%的數(shù)據(jù)包丟失,引發(fā)連鎖控制故障。本文將深入解析CRC-16/MODBUS算法原理,對(duì)比軟件...

關(guān)鍵字: Modbus RTU CRC 算法

在工業(yè)自動(dòng)化領(lǐng)域,Modbus協(xié)議憑借其簡(jiǎn)潔高效的設(shè)計(jì),已成為設(shè)備間通信的"通用語(yǔ)言"。某智能電網(wǎng)項(xiàng)目通過(guò)Modbus RTU協(xié)議實(shí)現(xiàn)2000臺(tái)電表的數(shù)據(jù)采集,通信成功率高達(dá)99.97%,這背后正是對(duì)消息結(jié)構(gòu)的精準(zhǔn)把控。...

關(guān)鍵字: Modbus 工業(yè)自動(dòng)化

在工業(yè)物聯(lián)網(wǎng)設(shè)備開發(fā)中,Modbus從站功能已成為微控制器(MCU)的標(biāo)配能力。某智能電表項(xiàng)目通過(guò)在STM32上實(shí)現(xiàn)Modbus RTU從站,成功將設(shè)備接入現(xiàn)有SCADA系統(tǒng),開發(fā)周期縮短40%。本文將系統(tǒng)解析MCU實(shí)現(xiàn)...

關(guān)鍵字: 微控制器 Modbus 協(xié)議棧優(yōu)化

在嵌入式系統(tǒng)中,F(xiàn)lash存儲(chǔ)器因其非易失性、高密度和低成本特性,成為代碼存儲(chǔ)和關(guān)鍵數(shù)據(jù)保存的核心組件。然而,MCU驅(qū)動(dòng)Flash讀寫時(shí),開發(fā)者常因?qū)τ布匦岳斫獠蛔慊虿僮髁鞒淌韬?,陷入性能下降、?shù)據(jù)損壞甚至硬件損壞的陷...

關(guān)鍵字: MCU驅(qū)動(dòng) Flash

在嵌入式開發(fā)中,STM32的時(shí)鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點(diǎn)。然而,看似簡(jiǎn)單的時(shí)鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時(shí)鐘源選擇、PLL配置、總線時(shí)鐘分配等關(guān)鍵環(huán)...

關(guān)鍵字: STM32 時(shí)鐘系統(tǒng)
關(guān)閉