久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1726|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

關(guān)于keil5編譯idata數(shù)據(jù)出錯(cuò)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是為什么啊,我使用的是stc89c52rc,ram明明512,我也使用了idata將數(shù)據(jù)存放在高128地址位置,為什么顯示data還是超了

51hei截圖20230526103829.png (193.3 KB, 下載次數(shù): 63)

51hei截圖20230526103829.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1079982 發(fā)表于 2023-5-26 12:58 | 只看該作者
已解決,我子函數(shù)內(nèi)置了一些數(shù)組,導(dǎo)致子函數(shù)的數(shù)組搶占了data所以空間溢出
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2023-5-26 13:59 | 只看該作者
你確定直接可訪問RAM是512個(gè)字節(jié)?哪么指令中要用幾位表達(dá)訪問它的地址呢?
回復(fù)

使用道具 舉報(bào)

地板
ID:1079982 發(fā)表于 2023-5-26 15:04 | 只看該作者
yzwzfyz 發(fā)表于 2023-5-26 13:59
你確定直接可訪問RAM是512個(gè)字節(jié)?哪么指令中要用幾位表達(dá)訪問它的地址呢?

主要問題是我子函數(shù)的數(shù)組溢出,idata可以將數(shù)據(jù)存放在高位。
回復(fù)

使用道具 舉報(bào)

5#
ID:752974 發(fā)表于 2023-5-26 16:20 | 只看該作者
樓主沒有明白板凳的意思,idata部分是128byte。
回復(fù)

使用道具 舉報(bào)

6#
ID:883242 發(fā)表于 2023-5-26 19:17 | 只看該作者
munuc_w 發(fā)表于 2023-5-26 16:20
樓主沒有明白板凳的意思,idata部分是128byte。

錯(cuò),idata可以訪問RAM的全部256byte空間,只是高128byte只能用idata來(lái)訪問,高128byte的data空間是SFR,不能當(dāng)成RAM來(lái)用。
回復(fù)

使用道具 舉報(bào)

7#
ID:624769 發(fā)表于 2023-5-27 14:16 來(lái)自手機(jī) | 只看該作者
Hephaestus 發(fā)表于 2023-5-26 19:17
錯(cuò),idata可以訪問RAM的全部256byte空間,只是高128byte只能用idata來(lái)訪問,高128byte的data空間是SFR, ...

人家都是錯(cuò)的,你都是對(duì)的。
SFR用的是高位data空間么?只是借用了直接訪問方式的地址而已!
回復(fù)

使用道具 舉報(bào)

8#
ID:883242 發(fā)表于 2023-5-27 14:48 | 只看該作者
188610329 發(fā)表于 2023-5-27 14:16
人家都是錯(cuò)的,你都是對(duì)的。
SFR用的是高位data空間么?只是借用了直接訪問方式的地址而已!

c51的基本語(yǔ)法你去查幫助文件。data空間就是直接訪問,idata空間是R0/R1/SP間接尋址。
回復(fù)

使用道具 舉報(bào)

9#
ID:123289 發(fā)表于 2023-5-27 17:13 | 只看該作者
本帖最后由 yzwzfyz 于 2023-5-29 08:19 編輯

1、51系列的RAM分外部分和內(nèi)部。
外部的用16位地址訪問,訪問空間是65536,就叫X-RAM吧。對(duì)于8位機(jī)來(lái)說,相應(yīng)的操作指令至少3個(gè)字節(jié)(命令碼、地址低、地址高),取指至少分3次。這樣速度稍慢。
2、51設(shè)立了一個(gè)內(nèi)部的可直接快速訪問RAM,只用8位地址,就叫I-RAM吧,所以尋址空間只能有256個(gè),訪問內(nèi)部RAM的指令只要兩個(gè)字節(jié)(命令碼、地址),這樣速度快。
3、單片機(jī)需要用到許多寄存器(A,B,SP,……),由于寄存器本身的性質(zhì)也是RAM,只不過利用率高一些,所以就從內(nèi)部的256RAM中,切出了一部分,也就是高128個(gè)字節(jié),用于給這些特殊寄存器安家,就叫S-RAM吧。
4、這種借用內(nèi)部RAM的方式,不僅僅發(fā)生在高128字節(jié),其中00-07,08-0F,10-17,18-1F,也被借去來(lái)表示R0-R7,且可以有四種切換方式。(由PSW切換)
5、這種借用的好處是,不必另制寄存器了,但占用了用戶的資源。為了補(bǔ)上高128字節(jié)的空間,后期的51,又增加了128個(gè)字節(jié)的內(nèi)部RAM(8052及之后的產(chǎn)品),來(lái)填補(bǔ)被特殊寄存器占用的地方。
這就發(fā)生了一個(gè)矛盾:當(dāng)訪問高128字節(jié)地址時(shí)(80-8F)時(shí),究竟是訪問補(bǔ)充的用戶RAM呢,還是特殊寄存器呢?
51想了一個(gè)招:用直接訪問指令與間接訪問指令來(lái)區(qū)分。在選擇上,考慮到特殊寄存器使用頻率高,就把直接訪問指令用于訪問特殊寄存器了。
所以:用戶在使用RAM時(shí),就出現(xiàn)了高128字節(jié)要用間接指令訪問!而低128字節(jié)間接、直接都可以。
對(duì)于用匯編編程的要注意這個(gè),對(duì)于用C編程,由編譯平臺(tái)來(lái)控制,但程序員必須將變量的存儲(chǔ)位置(方式)做個(gè)定義,以便編譯平臺(tái)作區(qū)分。
6、當(dāng)你對(duì)特殊寄存器非常了解時(shí),也可以將它當(dāng)作普通RAM看待使用。這里強(qiáng)調(diào)非常了解!!用C寫程序的人,不要這樣做,風(fēng)險(xiǎn)太大。
7、51與其它類型的單片機(jī)比,最靈活的就是有位尋址!同理,8位機(jī)的指令,可以訪問256個(gè)位。51對(duì)這256個(gè)位做了安排。當(dāng)然是在256+128個(gè)字節(jié)的內(nèi)部RAM中選出256個(gè)位了。
選出的256個(gè)位是:
7.1、80-8F特殊寄存器中,能被8整除的地址(只有16個(gè)字節(jié),共計(jì)128位)。如P0=80H中的各個(gè)位。而PCON=87H是不可以位尋址的。現(xiàn)在知道為什么特殊寄存器中有的位,是不可以定義成BIT的了吧,就是那些不能被8整除的地址寄存器。
在位地址對(duì)應(yīng)上:用128~256對(duì)應(yīng)80H.0[P0.0],80H.1[P0.1],80H.2[P0.2],……88H.x[TCON.x]……90H.x[P1.x]……F8H.7[STC有利用,基本51未用]。
7.2、20-2F這16個(gè)字節(jié),計(jì)128位。在位地址對(duì)應(yīng)上:用0~127對(duì)應(yīng)20H.0~2FH.7。
8、在用匯編編程時(shí),常用一個(gè)指令修改8個(gè)位,這是常用的技巧。
9、STC在51系列的發(fā)展上下了很大功夫,STC對(duì)51做了重大改進(jìn):
9.1、在80-FFH空間上,將基本51未用到的利用了起來(lái),在其中增插了許多特殊寄存器,如雙DPTR中的第二個(gè)DPTR,PWM……,如何定義的,請(qǐng)看STC的手冊(cè),長(zhǎng)長(zhǎng)見識(shí)。
9.2、當(dāng)80-FFH空間被STC用滿后,又將XRAM中的一部分用來(lái)做特殊寄存器,如PWM-N,乘法器,除法器……如何定義的,需要看STC的手冊(cè),去長(zhǎng)知識(shí)。
9.3、對(duì)取指方案作了改進(jìn),加入了隊(duì)列取指方案,使得原來(lái)需要12個(gè)機(jī)器周期取一條令指方案,提升到1-6個(gè)周期。但STC可以選擇保留了原方案,且設(shè)置為默認(rèn)。這就是有STC系列,有1T/12T選擇的原因。
……
回復(fù)

使用道具 舉報(bào)

10#
ID:1079982 發(fā)表于 2023-6-3 15:08 | 只看該作者
yzwzfyz 發(fā)表于 2023-5-27 17:13
1、51系列的RAM分外部分和內(nèi)部。
外部的用16位地址訪問,訪問空間是65536,就叫X-RAM吧。對(duì)于8位機(jī)來(lái)說, ...

講的很詳細(xì),謝謝佬
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美日韩精品久久亚洲区 | 久久久久久综合 | 国产成人免费视频网站高清观看视频 | 欧美日韩在线视频一区二区 | 久久综合av | 精品视频一二区 | 欧美日韩一区二区在线 | 成人在线精品 | 一区二区在线看 | 91久色| 99pao成人国产永久免费视频 | 操操日 | 亚洲精品小视频在线观看 | 一区二区免费视频 | 在线欧美视频 | 精品一二三区 | 欧美一区二区三区在线观看视频 | 国产精品久久久久久久久久久免费看 | 国内精品久久久久久 | 久草资源 | 欧美一级大片免费观看 | 国产欧美一区二区三区日本久久久 | 最近免费日本视频在线 | 自拍第一页 | 欧美一区二区三区在线观看 | www.操com| 国产精品久久久久久久免费观看 | 日韩国产在线观看 | 国产美女自拍视频 | 国产精品免费av | 国产精品成人一区二区三区夜夜夜 | 国产精品99久久久久 | 国产精品久久久久久久久久久久 | 青草青草久热精品视频在线观看 | www.99热 | 精品婷婷 | 免费看91 | 免费黄色的网站 | 国产91丝袜在线播放 | 亚洲视频中文字幕 | 成人精品国产一区二区4080 |