熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2021-4-27 15:41
正文摘要:就是圖中畫(huà)圈的地方,這不就說(shuō)明52rc單片機(jī)的ram空間有256嗎?為什么keil編譯時(shí)我的data大于128就不能編譯了?這不就說(shuō)明ram中有128的空間浪費(fèi)了嗎?而且我使用的也是stc的芯片包,也使用了對(duì)應(yīng)的芯片 |
| 一般都是256kb |
|
過(guò)分了,什么程序能占用這么多RAM,示波器嗎? |
xiaobendan001 發(fā)表于 2025-9-8 07:32 錯(cuò),堆棧不超過(guò)128byte,不占用data空間,只占用idata空間。 |
MirrAKe 發(fā)表于 2021-4-28 17:54 至于xdata容量多大,就看寫(xiě)進(jìn)去是否能正常讀出進(jìn)行測(cè)試。 xdata容量超芯片容量且沒(méi)超尋址范圍 編譯器不會(huì)發(fā)現(xiàn)任何異常,而是運(yùn)行時(shí)指令無(wú)法讀寫(xiě)該XDATA地址出錯(cuò)。 |
wfqxgw 發(fā)表于 2021-4-27 22:31 速度與晶振頻率、指令周期有關(guān) 具體見(jiàn)數(shù)據(jù)手冊(cè)指令表 MOVX指令的執(zhí)行周期 不同系列有區(qū)別 |
xiaobendan001 發(fā)表于 2025-9-8 07:32 89c52rc是不是沒(méi)有xdata?下面是我換成xdata后的報(bào)錯(cuò),可以看到data已經(jīng)小于128: *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: _DATA_GROUP_ LENGTH: 0026H Program Size: data=124.0 xdata=74 code=4329 |
xiaobendan001 發(fā)表于 2025-9-8 07:32 是不是用得全局變量比較多導(dǎo)致的? ![]() |
noadmin 發(fā)表于 2025-9-7 15:42 CODE才4316,DATA就用這么多了。 DATA只有128,還要空出來(lái)一些用作堆棧。 片內(nèi)的高128要使用idata關(guān)鍵字標(biāo)識(shí)一下。否則編譯器不會(huì)自動(dòng)使用的。 能用局部變量的就用局部的吧。 實(shí)在不行換帶有XDATA的芯片吧 |
noadmin 發(fā)表于 2025-9-7 15:42 低RAM 地址是 00-7f。 高位RAM地址是 80-FF。高位RAM地址是復(fù)用的,不能直接訪問(wèn)。 |
|
在keil5中data為197就報(bào)了,我想知道這個(gè)值的上限是多少? *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: _DATA_GROUP_ LENGTH: 006FH Program Size: data=197.0 xdata=0 code=4316 |
|
直接尋址的是低128字節(jié)的內(nèi)部RAM。另外高的128字節(jié)是間接尋址, (注意):直接尋址的低128字節(jié)比較快,高的128字節(jié)是間接尋址,它尋址的速度比直接尋址要慢。 |
wfqxgw 發(fā)表于 2021-4-27 22:31 謝謝! |
angmall 發(fā)表于 2021-4-27 22:30 謝謝解答!我還有點(diǎn)問(wèn)提:就是我這個(gè)52rc編譯的時(shí)候也能用xdata啊?寫(xiě)進(jìn)去也能正常運(yùn)行,還有就是為啥keil編譯的時(shí)候不顯示idata用了多少,我看好像是和data算在一起了 |
| xdata是屬于片外的RAM了.速度很慢.一般先用data和idata |
MirrAKe 發(fā)表于 2021-4-27 22:26 這個(gè)idata和xdata是不一樣的 STC12 有xdata |
| 參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
|---|---|---|
|
| + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
zsw3721 發(fā)表于 2021-4-27 22:06 謝謝!我還有一個(gè)問(wèn)題就是這個(gè)idata和xdata是不是一樣的啊? |
| 手冊(cè)上說(shuō)的很清楚了,直接尋址的是低128字節(jié)的內(nèi)部RAM。想要用另外的128字節(jié),在定義變量時(shí)在變量名稱前加上idata。如unsigned char idata a[10]; |
| 參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
|---|---|---|
|
| + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)