免播放器在线 I 欧美性粗暴 I 日本成人激情视频 I 成人性生交大片免费看96 I 精品无码成人网站久久久久久 I 亚洲福利网 I 国产麻豆亚洲精品一区二区 I 激情五月婷婷久久 I 国产三级一区 I 激情网站五月天 I 请鬼在线观看免费高清恐怖 I 日本高清不卡码 I 一级黄色录像影片夫妻性生活影片 I 91中文字幕网 I av不卡网站 I 青青草97国产精品免费观看 I 亚洲一区二区三区欧美 I 超碰97人人模人人爽人人喊 I 欧美视频免费播放 I 在线网站黄色 I 福利网址在线观看 I 91超碰caoporn97人人 I 亚洲三级在线中文字幕 I 色综合福利 I 黄色美女视频 I 国产毛片不卡野外视频 I 亚洲精品第一国产综合野 I 91天堂在线视频 I 国产性猛交xx乱视频 I 狠狠狠色丁香综合婷婷久久 I 又色又爽又激情的59视频 I 大胆美女人体午夜电影 I 申鹤乳液狂飙 I 国产91一区二区三区 I 欧美日韩中文字幕精品

咨詢電話: 152-3782-8699

— 產(chǎn)品知識(shí) —

NEWS CENTRES
聯(lián)系我們/CONTACT US
全國(guó)免費(fèi)客服電話 152-3782-8699
開(kāi)封市盛達(dá)水表有限公司

地址:開(kāi)封市魏都路中段109號(hào)

電話:152-3782-8699

郵箱:497343898@qq.com

產(chǎn)品知識(shí)

單片機(jī)中空間和堆棧的意義

發(fā)布時(shí)間:2018-11-15 09:19:59

    關(guān)于單片機(jī)的知識(shí),體積龐大且結(jié)構(gòu)復(fù)雜。初學(xué)者很容易陷入困境,*終失去對(duì)單片機(jī)的興趣。因此在學(xué)習(xí)單片機(jī)時(shí)一定要對(duì)基礎(chǔ)知識(shí)進(jìn)行特別的鞏固。在本文中,小編將為大家介紹單片機(jī)地址空間以及堆棧的相關(guān)知識(shí),下面大家就隨小編來(lái)一起看一看吧。

Data:可尋址片內(nèi)ram0x00-0x7f

Bdata:可位尋址片內(nèi)ram

Idata:可尋址片內(nèi)ram,允許訪問(wèn)全部?jī)?nèi)部ram0x00-0xff

Padata:分頁(yè)尋址訪問(wèn)片外ram

Xdata:可尋址片外ram0x0000-0xffff

    code--程序存儲(chǔ)區(qū)單片機(jī)存儲(chǔ)器分ROM跟RAM之分,RAM存放中間結(jié)果,數(shù)據(jù)和經(jīng)常變換的代碼,ROM存放code。51單片機(jī)采用的是哈弗結(jié)構(gòu),即數(shù)據(jù)跟代碼擁有單獨(dú)的地址空間。存儲(chǔ)器可以分為程序存儲(chǔ)器(eerom,flash之類),內(nèi)部數(shù)據(jù)存儲(chǔ)器(ram),SFR,位地址空間和外部數(shù)據(jù)存儲(chǔ)器。內(nèi)部數(shù)據(jù)存儲(chǔ)器在物理上分為內(nèi)部SRAM和特殊功能寄存器,而內(nèi)部分為低(0x00-0x7f)和(0x80-0xff),高128字節(jié)地址重復(fù),需要不同的訪問(wèn)方式。SFR用直接尋址方式,SRAM需要間接。這里SFR是寄存器,硬件上是中央處理器的內(nèi)部組成部分,訪問(wèn)速度很快。在低128B的SRAM,0x00-0x1f是4個(gè)通用工作寄存器,每組有R0-R7。使用哪一組,可以通過(guò)PSW中的RS1,RS0來(lái)配置。位尋址是在0x20-0x2f。

    程序內(nèi)存可以分為幾個(gè)區(qū),棧區(qū)(stack)、堆區(qū)(Heap)、全局區(qū)(static)、文字常亮區(qū)、程序代碼區(qū)。程序編譯之后,全局變量,靜態(tài)變量已經(jīng)分配好內(nèi)存空間,在函數(shù)運(yùn)行時(shí),程序需要為局部變量分配棧空間,當(dāng)中斷來(lái)時(shí),也需要將函數(shù)指針入棧,保護(hù)現(xiàn)場(chǎng),以便于中斷處理完之后再回到之前執(zhí)行的函數(shù)。棧是從高到低分配,堆是從低到高分配。一般說(shuō)的堆棧指的棧。堆棧又分硬堆棧和軟堆棧,硬堆棧即SP,從片內(nèi)RAM的頂部向下生長(zhǎng)。軟堆棧在硬堆棧跟全局變量區(qū)之間的空間,C51函數(shù)調(diào)用通過(guò)R0-R7和棧來(lái)實(shí)現(xiàn)。

    為什么單片機(jī)啟動(dòng)時(shí),不需要用bootloader將代碼從ROM搬移到RAM,而ARM則需要。這里可以先看看單片機(jī)程序執(zhí)行的過(guò)程,單片機(jī)執(zhí)行分三個(gè)步驟,取執(zhí)行---分析指令----執(zhí)行指令。取指令的任務(wù)是:根據(jù)PC的值從程序存儲(chǔ)器讀出指令,送到指令寄存器。然后分析執(zhí)行。這樣單片機(jī)就從內(nèi)部程序存儲(chǔ)器去代碼指令,從RAM存取相關(guān)數(shù)據(jù)。要知道RAM取數(shù)的速度是遠(yuǎn)高于ROM的,但是單片機(jī)因?yàn)楸旧磉\(yùn)行頻率不高,所以從ROM取指令慢并不影響。而ARM不同,cpu運(yùn)行的頻率高,遠(yuǎn)大于從ROM讀寫(xiě)的速度,所以一般有操作系統(tǒng),都需要將代碼部分拷貝到RAM中再執(zhí)行。

    本文針對(duì)單片機(jī)的地址和堆棧分別進(jìn)行了介紹。給出了一些必須進(jìn)行理解的名詞定義,并在文章*后給出了一種單片機(jī)啟動(dòng)時(shí)為何不需要將代碼從ROM搬移到RAM的解釋。希望大家在閱讀過(guò)本文之后能夠有所收獲。

相關(guān)推薦

?
X

截屏,微信識(shí)別二維碼

微信號(hào):15237828699

(點(diǎn)擊微信號(hào)復(fù)制,添加好友)

  打開(kāi)微信

在線咨詢

銷售熱線

銷售熱線:152-3782-8699