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

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] 閑來無事,研究了下變量在MCU中存儲位置ps:MCU中能存放數(shù)據(jù)的地方有三處:register、rom、ram涉及標(biāo)準(zhǔn)C關(guān)鍵字:register:定義和申請一個register級變量 auto::定義自動變量,缺省時為編譯器

閑來無事,研究了下變量MCU中存儲位置
ps:MCU中能存放數(shù)據(jù)的地方有三處:register、rom、ram

涉及標(biāo)準(zhǔn)C關(guān)鍵字:register:定義和申請一個register級變量
auto::定義自動變量,缺省時為編譯器默認(rèn)
const:定義常量

涉及IAR預(yù)定義: __no_init:說明變量不需初始化
section .text段:存放代碼
section .rodata段:存放只讀數(shù)據(jù)
section .noinit段:存放不需初始化數(shù)據(jù)
section .bss段:存放默認(rèn)初始化數(shù)據(jù)
section .data段:存放已初始化數(shù)據(jù)
CSTACK段:棧
HEAP段:堆

//屬性:宏變量
//位置:是在預(yù)編譯期間被匯編進(jìn)section .text段(一般放在rom里)
//操作:運行中已不存在
#definero_def 0x11111111UL

//屬性:常量,只讀變量
//位置:直接存在section .rodata段(一般放在rom里)
//操作:程序中訪問時均是在section .rodata段中?。ㄋ俣容^慢)
const uint32_t ro_var = 0x22222222;

//屬性:未初始化全局變量
//位置:是存在section .noinit: DATA段(一般放在ram里)
//操作:程序中訪問時均是在section .noinit: DATA段中存?。ㄋ俣容^快)
__no_init uint32_t ni_global_var;

//屬性:默認(rèn)0初始化全局變量
//位置:是存在section .bss段(一般放在ram里)
//操作:啟動時將bss段清零;程序中訪問時均是在section .bss段中存?。ㄋ俣容^快)
uint32_t zi_global_var;

//屬性:已初始化全局變量
//位置:初始化值存在section .data_init段(一般放在rom里),變量本身是存在section .data段(一般放在ram里)
//操作:啟動時將初值從.data_init段復(fù)制到.data段;程序中訪問時均是在section .data段中存取(速度較快)
uint32_t i_global_var = 0x33333333;

void test_variable(void)
{
//屬性:已初始化寄存器變量
//位置:其初始化值存在section .text段(一般放在rom里),變量本身存在cpu的register里
//操作:如果申請成功,程序中訪問時均是在cpu的register中存?。ㄋ俣茸羁欤?;如果申請失敗,則是普通局部變量
registeruint32_t i_register_var = 0x44444444;

//屬性:已初始化局部變量
//位置:其初始化值存在section .rodata段(一般放在rom里),變量本身存在CSTACK里(一般放在ram里)
//操作:定義時將初值從.rodata段復(fù)制到CSTACK中;程序中訪問時均是在CSTACK段中存取(速度較快),一說局部變量入棧只是簡單的移動SP指針,空出局部變量的位置而已.尋址是用SP的偏移量作為相對地址
uint32_t i_local_iArray[4] = {0x55555555, 0x66666666, 0x77777777, 0x88888888};

//屬性:動態(tài)內(nèi)存申請
//位置:賦值是存在section .text段, 申請的內(nèi)存區(qū)是存在HEAP里(一般放在ram里)
//操作:程序中訪問時均是在HEAP段中存?。ㄋ俣容^快)
uint32_t *zi_local_p;
p = (uint32_t *)malloc(4);
...
}

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

本屆年會將在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)舉行,面向嵌入式設(shè)計工程師推出25門技術(shù)課程

關(guān)鍵字: 嵌入式 MCU 模擬

中國北京(2025年9月2日)—— 業(yè)界領(lǐng)先的半導(dǎo)體器件供應(yīng)商兆易創(chuàng)新GigaDevice(股票代碼 603986)受邀出席2025智能汽車基礎(chǔ)軟件生態(tài)大會暨第四屆中國汽車芯片大會,并與國內(nèi)領(lǐng)先的AUTOSAR車用操作系...

關(guān)鍵字: 汽車電子 MCU 智能汽車

2025年8月26日,?Elexcon深圳國際電子展?在?深圳會展中心(福田)1號館?(展臺號:1L30)盛大舉行。作為全球電子產(chǎn)業(yè)鏈的重要盛會,展會匯聚創(chuàng)新技術(shù)與行業(yè)解決方案。米爾電子MYIR攜RZ系列核心板、開發(fā)板等...

關(guān)鍵字: 核心板 開發(fā)板 MCU

針對HMI應(yīng)用所需的段碼式LCD和電容式觸控進(jìn)行優(yōu)化,為電磁爐提供精準(zhǔn)控制;支持通過雙區(qū)閃存實現(xiàn)便捷、安全的OTA

關(guān)鍵字: MCU 智能家電 電磁爐

聚焦工業(yè)4.0及能源管理應(yīng)用對主控MCU的高性能需求,極海正式發(fā)布APM32F425/427系列高性能拓展型MCU,集合運算性能、ADC性能、Flash控制器性能與通信接口四大維度革新,進(jìn)一步增強了EMC性能,重新定義C...

關(guān)鍵字: MCU 工業(yè)應(yīng)用 極海

MarketsandMarkets預(yù)測,到2027年,全球嵌入式AI市場規(guī)模將超過200億美元,年復(fù)合增長率高達(dá)30%。這一增長背后,是對高算力、低功耗、實時性和安全性的迫切需求,以及技術(shù)碎片化與跨界融合的復(fù)雜挑戰(zhàn)。在這...

關(guān)鍵字: Renesas AI 瑞薩電子 嵌入式AI MCU MPU

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

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

全新產(chǎn)品滿足DLMS Suite2表計應(yīng)用安全法規(guī),提供豐富的通信選項、電容式觸摸界面,以及支持軟件更新的雙區(qū)閃存

關(guān)鍵字: MCU 閃存 恒溫器

由于邊緣AI是指在邊緣設(shè)備上部署和運行AI模型,而不是將數(shù)據(jù)傳輸?shù)街醒敕?wù)器進(jìn)行處理。這種方式具有低延遲、高響應(yīng)速度、保護隱私和降低數(shù)據(jù)傳輸成本等優(yōu)勢。微控制器(MCU)作為電子設(shè)備的主控制芯片,在邊緣AI的發(fā)展中扮演著...

關(guān)鍵字: MCU AI
關(guān)閉