在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

MCU的存儲器組織知識

Q4MP_gh_c472c21 ? 來源:未知 ? 作者:李倩 ? 2018-06-07 15:54 ? 次閱讀

首先說一下 MCU 的存儲器組織。

蒙圈,MCU 中常使用的存儲器類型有:FLASH、RAMROM(包括EEPROM)

在軟件角度來看,程序和數(shù)據(jù)的存儲分為以下幾個部分:

注:

1.代碼段和常量段都可以用于保存常量數(shù)據(jù),其主要區(qū)別是,如果常量可以作為匯編指令的一個操作數(shù),則該常量被編譯進代碼段。如果不能用一個匯編操作數(shù)表示,則存于常量段。如 "uchar a=0x05;" 中的 "0x05" 將被編譯成代碼 "mov #0x05, a";如果是 "uchar a[]={0x05, 0x06}" 則 "0x05,0x06" 被放置于常量段, 在初始化 a[] 的時候會有一段匯編指令用于將常量段中的內(nèi)容拷貝到 a[] 中。

軟件存儲區(qū)與硬件存儲器類型是怎么對應(yīng)的呢?

一般來講如下:

注:

1.MCU 中的 ROM 通常用于存儲制造商信息、控制器型號等信息;

2.對于 x86 體系結(jié)構(gòu)的系統(tǒng),因為沒有 Flash 類型的存儲器,所以,所有的軟件存儲區(qū)最終都加載到內(nèi)存中,但是其內(nèi)存是分段的,用戶對不同內(nèi)存段的訪問權(quán)限不同,其代碼段和常量段不可以被用戶修改,如果意外修改則拋出段錯誤異常。

知道了存儲器類型和各存儲區(qū)的劃分之后,讓我們來看以下三組程序:

1.

staticvoidProcStr(void)

{

ucharStr[]={"12345"};

}

這段程序中,Str[] 是一個局部數(shù)組,其大小為 6,占用的堆棧空間是 2 個字符;"12345" 是常量,被存儲在常量段;Str[] 的初始化過程,相當于從常量區(qū)拷貝 6 個字符的數(shù)據(jù)到棧中,這 6 個字符是"12345\0"。

2.

staticvoidProcStr(void)

{

ucharStr[]="12345";

}

這段程序中,Str[] 是一個局部數(shù)組,其大小為 6,占用的堆棧空間是 2 個字符;"12345" 是常量,被存儲在常量段;Str[] 的初始化過程,相當于從常量區(qū)拷貝 6 個字符的數(shù)據(jù)到棧中,這 6 個字符是 "12345\0"。

3.

staticvoidProcStr(void)

{

constuchar*Str="12345";

}

這段程序中沒有數(shù)組,唯一的Str 是一個局部指針,其大小為 4(在 32 位系統(tǒng)中),因此這段程序只占用 4(在 32 位系統(tǒng)中)個字符的堆棧空間;"12345"是常量,被存儲在常量段;Str 的初始化過程,是將指針Str 初始化為常量"12345"的地址,后續(xù)程序通過指針Str直接訪問常量段,無需內(nèi)存拷貝過程。

從以上分析可以看出,前兩種方法是一樣的,都需要為局部數(shù)據(jù)分配存儲空間,并將靜態(tài)存儲區(qū)的數(shù)據(jù)拷貝過來,而最后一種方法是通過指針直接訪問靜態(tài)數(shù)據(jù)而無需拷貝。如果字符串長度大于系統(tǒng)中指針的長度,第三種方法將在時間和空間上大大優(yōu)于前兩種方法(第三種方法極大的節(jié)省了堆棧空間,并減少了拷貝數(shù)據(jù)所用的時間)。

但是,對于 MCU 來說,并不總是第三種方法好,原因在于第三種方法是直接訪問常量段,由上面的表可知,對于將常量存儲于 Flash 的 MCU 來說,訪問常量段要比訪問 RAM 慢得多。因此,如果接下來要頻繁訪問這個字符串,那么,采用前兩種方法在速度上將會更優(yōu)一些,理由是前兩種方法只需要訪問一次 Flash,而第三種方法則每次都需要訪問 Flash。

當然,如果在接下來的程序中,需要修改字符串Str 中的內(nèi)容,那就只能采用前兩種方法,第三種方法將會提示錯誤。

特殊說明:今天講的一些內(nèi)容跟編譯器的特性相關(guān),不同編譯器,甚至相同編譯器的不同版本間存在一定差異。

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

    關(guān)注

    146

    文章

    17841

    瀏覽量

    360504
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7636

    瀏覽量

    166422
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1655

    瀏覽量

    49891

原文標題:嵌入式程序開發(fā)需要知道的存儲器知識

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

收藏 人收藏

    評論

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

    #硬聲創(chuàng)作季 #嵌入式 #MCU存儲器設(shè)計片選譯碼技術(shù)

    mcu存儲器
    學(xué)習(xí)電子知識
    發(fā)布于 :2022年11月02日 21:12:32

    MCU存儲器組織

    首先說一下 MCU存儲器組織。蒙圈,MCU 中常使用的存儲器類型有:FLASH、RAM、ROM(包括EEPROM)在軟件角度來看,程序和
    發(fā)表于 08-08 17:10

    存儲器是如何組織的?是如何與處理總線連接的?

    第一套在8086的微計算機系統(tǒng)中,存儲器是如何組織的?是如何與處理總線連接的?#BHE信號起什么作用?答:8086 為 16 位處理,可訪問 1M 字節(jié)的
    發(fā)表于 07-26 06:06

    STM32存儲器組織程序

    STM32 存儲器存儲器組織1. FLASH2. SRAM3. 啟動一 存儲器組織程序存儲器
    發(fā)表于 08-02 06:06

    集成鐵電存儲器MCU有何作用

    集成鐵電存儲器MCU,由于在MCU上集成了鐵電存儲器,該產(chǎn)品數(shù)據(jù)寫入速度比基于閃存和EEPROM的MCU快100倍,功耗降低250倍。它還
    發(fā)表于 11-10 08:28

    CPU結(jié)構(gòu)執(zhí)行單元BIU寄存存儲器組織結(jié)構(gòu)

    前言 ′???`微機系統(tǒng)的構(gòu)成外設(shè)CPU結(jié)構(gòu)執(zhí)行單元BIU寄存存儲器組織結(jié)構(gòu) 尋址方式總結(jié) ′?`
    發(fā)表于 12-10 07:56

    存儲器與通用寄存的相關(guān)資料下載

    基礎(chǔ)知識梳理一、 存儲器與通用寄存1. 存儲器每一天清晨,當我們在夢中醒來的時候,記憶就會填充大腦的空白,我們會想起最近做過的一些重要的事情,當然也有些小的事情無法準確的記憶起,但這
    發(fā)表于 12-13 06:29

    聊聊存儲器的相關(guān)知識

    虛擬地址物理地址等眾多地址及MMU相關(guān)知識先聊聊存儲器STM32單片機存儲器關(guān)于編譯生成的文件數(shù)據(jù)在存儲器上的
    發(fā)表于 02-11 07:51

    相變存儲器(PCM)技術(shù)基礎(chǔ)知識

    相變存儲器(PCM)技術(shù)基礎(chǔ)知識 相變存儲器(PCM)是一種非易失存儲設(shè)備,它利用材料的可逆轉(zhuǎn)的相變來存儲信息。同一物質(zhì)可以在諸如固體、液
    發(fā)表于 11-23 09:19 ?3308次閱讀

    EE-17:ADSP-2187L存儲器組織

    EE-17:ADSP-2187L存儲器組織
    發(fā)表于 04-27 14:54 ?1次下載
    EE-17:ADSP-2187L<b class='flag-5'>存儲器</b><b class='flag-5'>組織</b>

    MCU存儲器介紹

    SRAM(StaticRandom-AccessMemory):靜態(tài)隨機存儲器,所謂的“靜態(tài)”,是指這種存儲器只要保持通電,里面儲存的數(shù)據(jù)就可以恒常保持。DRAM(Dynamic Random
    發(fā)表于 10-28 09:51 ?11次下載
    <b class='flag-5'>MCU</b>的<b class='flag-5'>存儲器</b>介紹

    MCU片內(nèi)非易失性存儲器操作應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《MCU片內(nèi)非易失性存儲器操作應(yīng)用筆記.zip》資料免費下載
    發(fā)表于 09-22 10:00 ?0次下載
    <b class='flag-5'>MCU</b>片內(nèi)非易失性<b class='flag-5'>存儲器</b>操作應(yīng)用筆記

    存儲器工作原理及如何選擇存儲器品牌

    存儲器是用來存儲程序和各種數(shù)據(jù)信息的記憶部件,更通俗地說,存儲器就是用來存放數(shù)據(jù)的地方。存儲器可分為主存儲器(簡稱主存或內(nèi)存)和輔助
    的頭像 發(fā)表于 10-11 16:58 ?4299次閱讀

    淺談MCU中集成新型存儲器的選擇

    基于上述因素,越來越多的MCU大廠開始選擇在MCU中集成新型存儲器,比如相變存儲器(PCM)、磁RAM(MRAM)和阻變存儲器(RRAM)等
    發(fā)表于 12-01 20:28 ?1115次閱讀

    AT32 MCU如何設(shè)定啟動存儲器為主存擴展

    AT32 MCU如何設(shè)定啟動存儲器為主存擴展
    的頭像 發(fā)表于 10-18 17:50 ?933次閱讀
    AT32 <b class='flag-5'>MCU</b>如何設(shè)定啟動<b class='flag-5'>存儲器</b>為主存擴展
    主站蜘蛛池模板: 免费观看做网站爱 | 91x视频 | 日本理论午夜中文字幕第一页 | 最好看的2019中文字幕免费高清 | 天天干夜夜曰 | 国产精品午夜自在在线精品 | 天天在线天天综合网色 | 最新eeuss影院第256页 | 日本一区二区三区视频在线 | 韩国最新三级网站在线播放 | 2021久久精品国产99国产精品 | 天天干天天玩 | 在线天堂在线 | 日韩免费一级片 | 久久夜色精品国产飘飘 | 香蕉视频在线免费播放 | 最近2018年中文字幕免费图片 | 国产日日干 | 国产乱通伦 | 99热1| 丁香六月色婷婷综合网 | 黄色在线视频免费看 | 五月天婷婷视频在线观看 | 在线观看视频在线观看 | 国产高清视频在线免费观看 | 2019天天干夜夜操 | 3p性小说| 成人xx视频免费观看 | 日本亚洲卡一卡2卡二卡三卡四卡 | 天天干天天透 | 一区二区三区在线看 | 深爱激情五月婷婷 | 黄色日比 | 黑色丝袜美美女被躁视频 | 最近2018中文字幕免费看手机 | 婷婷综合激情 | 日韩种子 | 亚洲日本高清 | 丁香色综合| 色婷婷色综合激情国产日韩 | tom影院亚洲国产一区二区 |